SQL数据库设计教学大纲(精选12篇)
一、课程说明:
Microsoft SQL Server是目前最流行的大中型关系数据库管理系统,该课程以SQL语言为工具,很好的实现了对巨量数据进行数字化管理,使学生全面了解数据库技术,为学习其它数据库技术打下坚实的基础。
二、教学目的及要求:
计算机应用专业技能提高课程,通过本课程的学习掌握SQL SERVER 2008的使用方法,了解未来数据库发展的趋势。
该课程以SQL语言的角度全面阐述SQLServer2008的基础知识。通过学习,使学生了解并掌握SQLServer2008的SSMS管理工具;然后以建立一个学生数据库管理系统为主线,从最基础的搜集信息入手,一步步地引导学生学会如何保证数据库的安全,如何创建表、主键、索引等,并掌握如何备份和还原数据库;为今后学习其它数据库管理系统打下一定的基础。
本课程的任务是系统地向学生讲授数据库管理和设计方法,并通过实例分析和上机练习,使学生熟练掌握数据库查询、增加、删除和修改的基本方法和技巧。注意培养学生严密的逻辑思维能力和严格的科学工作作风,以使学生今后适应现代科学技术发展的需要。
三、教学重点及难点:
重点:数据库查询 难点:数据库安全管理
四、与其它课程的关系:
先修课程:C语言程序设计、VB语言程序设计、数据结构、数据库原理及应用。后续课程:Oracle数据库设计、HTML程序设计、ASP.NET 2005(C#)、JavaEE(Struts 2)
五、学时、学分:
学时: 54(讲课 36,上机 18)学分 2
六、教学内容:
第1章数据库的基本概念
2课时
第 1周 1.1数据库基本概念
1.1.1数据库与数据库管理系统 1.1.2数据模型
1.1.3关系型数据库语言 1.2数据库设计 1.2.1概念结构设计 1.2.2逻辑结构设计 1.2.3数据库物理设计 1.3数据库应用系统 1.3.1数据库的连接方式
1.3.2客户-服务器(C/S)模式应用系统 1.3.3三层客户-服务器(B/S)模式应用系统 1.4SQL Server 2008环境习题1 第2章数据库创建
2课时
第 2周 2.1SQL Server数据库基本概念 2.1.1逻辑数据库 2.1.2物理数据库 2.1.3系统数据库和用户数据库 2.2界面方式创建数据库 2.2.1数据库的创建
2.2.2数据库的修改和删除
2.3命令方式创建数据库
2课时
第3周 2.3.1创建数据库 2.3.2修改数据库 2.3.3删除数据库 2.3.4数据库快照习题2 第3章表与表数据操作
3.1表结构和数据类型 3.1.1表和表结构 3.1.2数据类型 3.1.3表结构设计 3.2界面方式操作表 3.2.1创建表 3.2.2修改表结构 3.2.3删除表
3.3命令方式操作表
3.3.1创建表 3.3.2创建分区表 3.3.3修改表结构 3.3.4删除表
3.4界面方式操作表数据
3.4.1插入记录 3.4.2删除记录 3.4.3修改记录
3.5命令方式操作表数据 3.5.1插入记录 3.5.2删除记录 3.5.3修改记录 3.5.4更新记录习题3 第4章数据库的查询和视图
4.1关系运算 4.2数据库的查询 4.2.1选择列
4.2.2WHERE子句 4.2.3FROM子句 4.2.4连接
4.2.5GROUP BY子句
4.2.6HAVING子句 4.2.7ORDER BY子句
2课时
2课时
2课时
2课时
第4周 第 5周第 6周第 7周 4.2.8SELECT语句的其他语法
4.3视图
2课时
第 8周 4.3.1视图概念 4.3.2创建视图 4.3.3查询视图 4.3.4更新视图
4.3.5修改视图的定义 4.3.6删除视图
4.4游标
2课时
第9周 4.4.1游标概念 4.4.2声明游标 4.4.3打开游标 4.4.4读取数据 4.4.5关闭游标 4.4.6删除游标习题4 第5章T-SQL语言
5.1SQL语言与T-SQL语言 5.2常量、变量与数据类型 5.2.1常量 5.2.2数据类型 5.2.3变量
5.3运算符与表达式
5.4流程控制语句
5.4.1BEGIN…END语句块 5.4.2条件语句 5.4.3CASE语句
5.4.4无条件转移语句 5.4.5循环语句 5.4.6返回语句 5.4.7等待语句 5.4.8错误处理语句 5.5系统内置函数
5.5.1系统内置函数介绍 5.5.2常用系统标量函数 5.6用户定义函数
5.6.1用户函数的定义与调用 5.6.2用户定义函数的删除习题5 第6章索引与数据完整性
6.1索引
6.1.1索引的分类 6.1.2索引的创建 6.1.3重建索引
2课时
2课时
2课时
第 10周 第 11周 第 12周 6.1.4索引的删除 6.2数据完整性
6.2.1数据完整性的分类 6.2.2实体完整性的实现 6.2.3域完整性的实现 6.2.4参照完整性的实现习题6 第7章存储过程和触发器
2课时
第 13周 7.1存储过程
7.1.1存储过程的类型
7.1.2存储过程的创建与执行 7.1.3存储过程的修改 7.1.4存储过程的删除
7.1.5界面方式操作存储过程
7.2触发器
7.2.1触发器的类型 7.2.2触发器的创建 7.2.3触发器的修改 7.2.4触发器的删除
7.2.5界面方式操作触发器习题7 第8章备份与恢复
8.1备份和恢复概述
8.1.1备份和恢复需求分析 8.1.2数据库备份的基本概念 8.1.3数据库恢复概念 8.2备份操作和备份命令 8.2.1创建备份设备 8.2.2备份命令
8.2.3使用对象资源管理器进行备份 8.3恢复操作和恢复命令 8.3.1检查点
8.3.2数据库的恢复命令
8.3.3使用图形向导方式恢复数据库 8.4复制数据库 8.5附加数据库习题8 第9章系统安全管理
9.1SQL Server 2008的安全机制
9.1.1SQL Server 2008的身份验证模式 9.1.2SQL Server 2008的安全性机制 9.2建立和管理用户账户 9.2.1界面方式管理用户账户 9.2.2命令方式管理用户账户
2课时
2课时
2课时
第 14周第 15周第16周 9.3角色管理
9.3.1固定服务器角色 9.3.2固定数据库角色 9.3.3自定义数据库角色 9.3.4应用程序角色 9.4数据库权限的管理 9.4.1授予权限 9.4.2拒绝权限 9.4.3撤销权限
9.5数据库架构的定义和使用 9.5.1使用界面方式创建架构 9.5.2使用命令方式创建架构习题9 第10章SQL Server 2008与XML
10.1XML概述 10.1.1XML简介 10.1.2XML基本语法
10.2 XML在SQL Server 2008中的应用 10.2.1XML数据类型
10.2.2SQL Server 2008中导入XML数据10.2.3XQuery的基本用法 10.2.4FOR XML子句的使用习题10 第11章其他概念
11.1事务
11.1.1事务与ACID属性 11.1.2多用户使用的问题 11.1.3事务处理 11.1.4事务隔离级 11.2锁定
11.2.1锁定粒度 11.2.2锁定模式
11.3SQL Server 2008自动化管理 11.3.1SQL Server代理 11.3.2操作员 11.3.3作业 11.3.4警报
11.3.5数据库邮件 11.3.6维护计划向导
11.4SQL Server 2008服务 11.4.1集成服务 11.4.2报表服务 11.4.3分析服务习题11
2课时
2课时第17周第18周七、教材及参考书:
(一)教材:
1《SQL Server实用教程》郑阿奇主编
电子工业出版社
(二)参考书:
《SQL Server实用教程(第3版)》
郑阿奇主编
清华大学出版社 《SQL Server实训
》郑阿奇,刘启芬,顾韵华编
清华大学出版社 《SQL Server2008数据库管理》屠建飞编
随着Internet的普及,网上办公已经渗透到各行各业,科研项目申报方式也有了新的网络解决方案。传统的科研申报方式是每年定期开展科研申报计划,申报者填写申报材料并提出书面申请,审批部门分类审批,然后以信函等方式把审批结果反馈给申报者。这些工作看似简单,但当申报项目增多时,将既会耗费大量人力和时间。而且由于申报者必须在每年固定的那段时间内申报项目,容易造成好的科研项目的流失,而使用网络科研项目申报系统,可以随时申请科研项目,审批周期得到缩短,具有高效性。
1 系统原理
系统基于SQL Server的数据库管理技术,采用先进开放的客户及服务器(C/S)架构,应用系统基于Dreamweaver网页编程,确保系统具有高超的性能和管理水平,保证了数据的安全。系统具有“网上注册登录个人信息”、“网上项目申报”、“查询项目申报”等功能,可以对学生的科研思想与计划进行灵活有效的科研立项,有效地防止学生好的科研思想的流失,同时也可以实现学生个人科研信息成果的网上积累,从中可以看出学生科研训练的进行情况,激发学生的科研热情。系统的数据流程图如图1所示。
2 系统功能
科研成果申报系统,具备的功能有:申报流程,科研申报,科研审批,公共信息查询。用户(申报人,审批员)通过不同的身份验证后登陆,在完成个人信息的完善后进行不同的操作:申报人可以查询项目申报,科研项目修改,申报科研项目;审批员可以浏览未入库项目浏览,已入库项目,将科研项目入库,将科研项目打回,查看用户信息,添加用户信息,删除用户信息;同时,所有成员均可根据对应权限查看给定的项目或成果的详细信息。
3 数据库系统设计
数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能有效地储存数据,满足各种用户的信息需求和处理要求。在数据库的设计中,涉及到数据设备、表空间、表、完整性约束、各个表之间的关系、视图、数据库存储过程、数据库触发器和缺省值等一系列数据库对象的定义,是整个数据库设计的核心部分[1]。
在应用程序中,有时需要单击某个链接或按钮时,弹出新窗口,可以用JavaScript“
摘要:系统采用SQL构建数据库核心,Dreamwaver设计具体交互页面。用户可根据身份验证的不同,提交科研申请项目或审批科研项目。系统会将最终结果返回给双方终端,数据入库。由于该系统采用网上的不定期申报审批,因此节约大量人力时间,效率较高。
关键词:科研,申报,SQL Server,Dreamwaver
参考文献
[1][美].Rosem Z,等.C++Builder数据库与Web数据库[M].浦东电子出版社,2002.
[2]宋坤,李严,等.SQL Server数据库开发实例解析[M].机械工业出版社,2005.
[3]Madhu Siddalingaiah,等.JAVA开发人员指南[M].机械工业出版社,2000.
关键词:SQL数据库;开发;设计
中图分类号:TP311.138文献标识码:A文章编号:1007-9599 (2013) 06-0000-02
1前言
SQL是一种数据库语言,使用方便、简单易学、功能强大,使用者在操作SQL数据库的过程中不用去考虑“怎么做”,只需要按照自己的意愿给计算机发出“做什么”的命令即可。SQL数据库的应用极为广泛,能够与绝大多数的数据库相通兼容,已经成为了数据库操作的基础。本文以某企业营销数据库为例,就SQL数据库的设计进行探讨。
2SQL数据库的性能调整
2.1系统规划
在整个SQLServer2000数据库中,数据库服务器处于核心地位,整个SQLServer2000数据库直接被数据库服务器的性能高低影响。为了给SQLServer2000数据库更好的性能,可以调整和优化SQL Server2000数据库的许多方面,如备份与恢复、复制、硬件、SQL Server配置、SQL索引、SQL语句、数据库设计其他。
2.2优化SQL语句
SQL语句的优化是一个较为复杂的过程,涉及到诸多缓解,而其实质就是在结果正确的基础前提下,尽量减少表扫描的I/O次数,避免表搜索的发生,将计算机能够识别的语句用优化器进行优化。
2.3存储过程调整
一般都是采用PROCEDURE(属于Transact-SQL语句)来创建SQL Server数据库的存储过程,修改的时候还可以用ALTER PROCEDURE语句。SQL Server数据库的存储过程主要包括看过程参数的说明和过程名称两个部分。
2.4高性能恢复与备份
为了有效地确定应该选择何种还原策略和备份策略,应该及时地对数据的可用性要求进行确定。
3SQL数据库的开发与设计
3.1项目组的建立
现代企业管理中较为重要的理念就是项目管理思想,营销数据库要建立好的管理思想必须要建立一个全面管理、领导、组织、规划SQL数据库开发与管理工作的项目小组,同时还要基于职能范围和工作量的需要来相应设置一些职能小组,以便在组织结构上对于SOL数据库的开发与设计进行保障。
3.2相关人员设备的配置
相关人员配置主要是2类人员,分别是数据库开发管理技术人员和专业人员,二者相互协调,共同解决SOL数据库的开发与设计的技术操作及实际开发问题,用现实的数据库系统资料将营销人员的需求进行转化。与此同时,还应配备好如服务器、电脑等相应的设备保障。硬件和软件条件齐全才能保证数据库的创建和管理能顺利开展。
3.3SQL数据库的创建
SQL数据库的创建之初就要给定开发方向,制定相应的企业营销数据库适用范围、任务和功能。应该要让数据库开发人员和营销人员都树立起营销数据库的重要性,在企业营销过程中获得客户情况的惟一途径就是建立和管理好营销数据库,数据库的编制务必做到高质量、详尽、准确、全面。首先分析SQL数据库的结构,依据3个内容进行统计:第一,行为特征数据。如购买频率、平均消费金额、历史购买记录、特殊爱好、家庭结构、生活方式等;第二,基本情况数据,包括电子邮件、传真、电话、姓名、地址、性别、教育程度、职业、收入、婚姻状况、年龄等;第三,互动性行为特征,如购买方式、送货方式、支付方式等。
3.4新建SQL数据库的方法
在对象资源管理器里面,右键点击数据库,新建数据库,就可以了;或者在查询分析器里面运行代码也可以:例如创建一个数据库:
USE master
GO
--判断是否存在bankDB数据库
IF EXISTS(SELECT*FROM sysdatabases WHERE name='bankDB')
DROP DATABASE bankDB
GO
--在D盘创建bank文件夹
EXEC xp_cmdshell'mkdir D:bank',NO_OUTPUT
-- 创建数据
CREATE DATABASE bankDB
ON PRIMARY
(
NAME='bankDB_data',
FILENAME='D:\bank\bankDB_data',
SIZE=5MB,
MAXSIZE=500MB,
FILEGROWTH=15%
)
LOG ON
(
NAME='bankDB_log',
FILENAME='D:\bank\bankDB_log',
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=5%
)
3.5典型数据库对象
事务对象:事务对象用于管理数据库的事务,将多个操作合并为一个单一的事务处理。该对象缓存了对数据源的改变,使应用程序有机会选择提交或者回退以往的操作。事务能够提高应用访问数据库的性能,但是OLE DB数据服务器并不要求支持该对象。该对象包括如下接口:
CoType TTransaction{
[mandatory]interface IConnectionPointContainer;
[mandatory]interface ITransaction;
[optional] interface ISupportErrorInfo;
}
命令对象:命令对象用于对数据源发送文本命令。对于支持SQL的数据源,SQL命令同命令对象一起执行,包括两种数据定义语言和产生行集对象的查询,对于其它不支持SQL的数据源,命令对象给数据源发送其它类型的文本命令。但是对于数据提供程序来说,不一定必须支持这个命令对象。一个单独的会话能够产生多个命令对象。该对象包括如下接口:
CoType TCommand{
[mandatory]interface IAccessor;
[mandatory]interface IColumnsInfo;
[mandatory]interface ICommand;
[mandatory]interface ICommandProperties;
[mandatory]interface ICommandText;
[mandatory]interface IConvertType;
[optional]interface IColumnsRowset;
[optional]interface ICommandPrepare;
[optional]interface ICommandWithParameters;
[optional]interface ISupportErrorInfo;
}
4结语
SQL数据库的应用极为广泛,本文就SQL数据库在某企业的设计和开发做了分析和探讨,并对SQL数据库的性能调整进行了分析,在以后的研究中值得进一步深入研究。
参考文献:
[1]丁燕云,魏娟.浅析SQL数据库的性能优化问题[J].科技信息(学术研究),2007(34):112-115.
[2]谷震离.SQL Server数据库应用程序性能优化方法[J].计算机工程与设计,2006(15):102-105.
[3]谷震离,侯迎春.SQL Server数据库性能优化方法[J].商丘职业技术学院学报,2006(05):176-177.
[4]董建华.SQL Server数据库的性能优化技术研究[J].科技广场,2007(05):102-105.
[作者简介]肖念(1984.9-),女,湖北孝感人,武汉信息传播职业技术学院,专职教师,硕士研究生,计算机应用。
1、实验目的:
(1)了解SQL Server数据库的逻辑结构和物理结构;
(2)掌握使用SQL语句修改数据库的方法;
2、实验准备:
(1)要明确能够修改数据库的用户必须是系统管理员,或者是被授权使用CREATE DATABASE语句的用户;
(2)修改数据库必须要明确:除存储位置,即物理文件名不能修改外,其它项均可以修改,包括数据库名、数据库大小和增长量等数据;
(3)了解使用SQL语句修改数据库的方法。
3、实验内容:
(1)删除实验三中创建的数据库;
(2)用自己名字创建一个数据库,包含一个主数据文件data1和一个日志文件log1,最大值都是5M;增长量分别为10%和1M;存储在自己的文件夹下;
(3)添加一个数据文件data2,最大值为3M;
(4)添加一个日志文件log2,最大值为4M;
(5)添加一个文件组group1;
(6)添加一个次数据文件data3放在文件组group1中;
(7)修改数据文件data2,将最大值改为5M;
(8)删除日志文件log1;
(9)删除次数据文件data3、data2;
(10)修改文件组,将group1改名为group2;
(11)删除文件组group2;
(12)将log2的增长量改为1M。
(13)缩小该数据库的大小,保留自由空间1M,保留释放的文件空间。
(14)将数据库的日志文件log2缩小到3M。
四、数据更新
1、实验目的熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、更新、删除操作。
2、实验内容
在本实验中,主要内容是如何用SQL语句对数据进行更新。
使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。
使用UPDATE语句可以修改指定表中满足WHERE子句条件的元组,有三种修改的方式:修改某一个元组的值;修改多个元组的值;带子查询地修改语句。
使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询地删除语句。
3、实验步骤
在数据库University_Mis上按下列要求进行数据更新。
(1)使用SQL语句向Students表中插入元组(Sno:S78;Sname:李迪;Semail:LD@zjut.edu.cn;Scredit:0;Ssex:男)。
(2)对每个课程,求学生的选课人数和学生的平均成绩,并把结果存入。
(3)在Students表中使用SQL语句将姓名为李迪的学生的学号改为S70。
(4)在Teachers表中使用SQL语句将所有教师的工资加500元。
(5)将姓名为刘华的学生的课程“数据库原理及其应用”的成绩加上6分。
(6)在Students表中使用SQL语句删除姓名为李迪的学生信息。
(7)删除所有选修课程JAVA的选修课记录。
操作步骤:
在进行操作之前,建议备份好注册表以及重要的数据库文件。
首先,我们尝试用IsUninst.exe卸载程序来安全卸载Windows中的程序和与其相关的组件:
(1)运行Regedit.exe,然后找到以下注册表项:
HKEY_LOCAL_MACHINESOFTWAREMICROSOFTwindowsCurrentVersionUninstall
(2)Uninstall项下,找到要删除的Microsoft SQL Server2000 实例的产品代码。
(3)在任务栏上,单击【开始】按钮,然后单击【运行】按钮。在运行对话框中,复制并粘贴以下命令,例如:
C:WINNTIsUninst.exe-f “C:Program FilesMicrosoft SQL ServerMSSQL$Server1Uninst.is”
-c”C:Program FilesMicrosoft SQL ServerMSSQL$Server1sqlsun.dll”-Mssql.miff I=Il
其中:MSSQL Serverl表示安装的实例名为Serverl。
如果以上方法不奏效,则我们必须手工来进行删除操作。
(1) 删除以下注册表子项:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServer
HKEY_LOCAL_MACHINESOFTWAREMicrosoft Microsoft SQL Server
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSQLServer
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSQLSERVER AGENT
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices MSSQLServerADHelper
(2) 手工删除安装目录,默认情况下位于:
C:Program FilesMicrosoft SQL Server
(3) 卸载Microsoft Search 服务,还需要删除:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSearch
(4) 卸载Microsoft 全文查询,还需要删除:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSFTPSVC
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSCNTRS
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSEARCH
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSGATHERVER
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSGTHRSVC
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSINDEX
(5) 如果要卸载的是命名实例,则在相应的注册表键的MSSQLServer,SQLSERVERAGENT和MSSQLServerADHelper后加上“/”和相应的实例名,
SQL查询语句虽然看起来简单,但就是这些看起来比较简单的语句可以构建出一系列复杂的嵌套查询结构使得查询千变万化,学生困扰之处也在于此。本文介绍的“填空法”法,运用了一种独特的方法,将目标要求的关键字信息,像填空一样将相关数据填入SQL查询语句中。只要让学生理解了这种方法,就可以快速的在脑海里面构建并发散出更复杂的查询语句结构。在实际运用中灵活组合,以求达到学以致用的效果。
目标信息的搜集与归纳
学习填空法,首先需要将题目中的目标信息搜集起来,并对搜集起来的信息进行归纳。信息的搜集是指我们确定构建SQL语句的目标结果,然后归纳用户取得目标结果所需要的约束条件,其中目标结果是指客户或自己所需要列出的最终结果,而约束条件是指为了得到目标结果而产生的一系列条件,这两样就是我们需要填空的东西。比如数据库中有基本表“货品”和”提供商”。“货品”表包含的字段分别是:编号,货品名称,价格,.”提供商”表包含的字段是:提供商编号,货品名称,提供商所在地区。表根据该表提出一道查询语句。
题目1:查询所有价格大于40的货品名称。首先我们要分析这道题中的信息有哪些。首先可以明确的是该查询构建的最终目标结果是货品名称,那么这个“货品名称”就是目标结果;而对于这些货品的约束条件是“价格大于40”。经过这样的判断,我们知道了我们需要填空的两个答案,其中目标结果是“货品名称”;约束条件为:价格大于40。开始填空:该题的SQL查询语句为select名称from货品where价格>40
其中我们需要填空的地方为”货品名称” (目标结果) 和“价格>40” (约束条件) 货品 (表名称) 。
题目2:查询在提供商为贵州地区的货品名称和价格。同理,我们首先分析要出题目要查询的信息:目标结果是“货品名称”和“价格”,约束条件是:贵州地区的提供商”。得到这两个填空答案以后我们就可以轻易的将两个信息填写到SQL语句中:
select货品.货品名称,货品.价格from货品,提供商where货品.货品名称=提供商.货品名称and提供商.提供商所在地区like‘%贵州%’
(在这里要解释一下like和%,在这里是指凡是在提供商这个字段里面只要出现贵州二字的所有元组都被视为符合条件的元组,两个%号分别放在贵州左右侧的目的是忽略其他字符,只匹配贵州二字)。
所以,准确的得到目标结果和约束条件是构建SQL语句的基础,只有把这两个空填好准确才能保证SQL语句构建的准确。所以在教学中,要学生注意几个问题:一是不要漏掉任何的信息;二是要正确划分目标结果和约束条件;三是要按照表格的结构(字段)来提取和归纳信息。二、正确进行”填空法“教学是目的在SQL语言中,查询语句的基本格式(入门语句)是:
select<目标字段>from<数据源>where<元组选择条件>“填空法”很简单:就是将目标结果填在select语句后面的<目标字段>位置上,然后约束条件组成了where语句的<元组选择条件>,最后剩下from语句后的<数据源>(也就是表名称,如果是多表查询用逗号将表的名称隔开)由两种信息涉及到的所有数据表共同构成。只要学生掌握了这一原则,就可以轻松的解决简单的SQL查询语句问题了。
现在, 回过头来我们来看看题目1:查询所有价格大于40的货品名称。解题时, 首先将目标结果“货品”, 填入select语句后面的<目标字段>位置上。再将已知信息“价格>40”填入where语句后<元组选择条件>相应位置上;最后将这两个信息共同的数据表“货品”表填入from语句后<数据源>相应位置上。就形成了最后的答案。题目2:查询在提供商为贵州地区的货品名称和价格。这个查询目与第一各查询最大的不同就在于信息来自“货品”和“”提供商”两个表。在SQL查询语句中, 如果查询时候要用到多个表的话, 就要对相关的表进行连接。所以在写语句的时候要在where语句中对“货品”表和“提供商”表进行连接, 而连接最重要的一点就是两张表必须有一个相同的字段, 有共同的字段作为两表之间关联的桥梁。而我们观察到两张表具有相同数据的字段为货品名称, 因此可以使用这个字段来进行表之间的数据连接。现在我们来构建这个查询。其中目标结果是“货品名称”和“价格”, 对应的<目标字段>两个字段之间用逗号隔开并制定取出数据的表为”货品”表因此这里写成“货品.货品名称, 货品.价格“;约束条件为两个, 分别为货品.货品名称=提供商.货品名称 (这里用于构建两表之间桥梁条件) 和 (中间加了and) 提供商.提供商所在地区like‘%贵州%’, 在这里大家都注意到一旦涉及到多表查询, 字段前面都加了表名称, 因为约束条件字段都不在一个表里面, 因此必须告诉计算机字段所在表的名称。否则计算机无法判断到底在那个表中获取数据。
在这里不得不提到一个小小的细节问题, 细节也是同学们特别容易忽视的地方, 在书写SQL语句的时候, 要特别注意的几个细节, 第一:大家注意到题目中的SQL语句里面有非常多的标点符号, 这些符号非常的特殊, 比如括号, 引号等, 这些符号都必须使用英文半角输入法输入, 很多的同学在实际书写代码的时候, 都会或多或少的出现问题, 比如括号、引号不配对等等, 这些都会导致一系列的错误, 特别要小心, 还有些时候因为数据类型的不同, 可能还会导致一些匪夷所思的查询结果。第二, 在数据库中对字段命名尽量不要使用中文命名, 在实际应用中往往中文命名看起来非常一目了然, 但这种方便也经常给我们带来麻烦, 中文命名字段, 也会导致很多匪夷所思的问题。第三, 注意字段所用的数据类型, 比如字符型和数值型, 两种类型都可以写入数字, 但不同的是, 字符型的数据往往用来记录一些数据, 而数值型的数据是可以用来进行计算的, 比如在字符型的数据中, 我们用来记录电话号码等数据, 比如“085183004496”这么一个一个数据, 如果使用数值型的数据类型来进行存储, 那会导致一个错误, 以“0”开头的数据类型“0”是会被省略掉的, 达不到数据存储的最终目的, 还有就是字符型数据在进行最终计算的时候, 比如1234+0234得到的结果将会是一个数据并集, 其结果是12340234, 实际上是把两个数据进行了连接, 并没有运算, 而数值型的数据1234+0234 (此处0会被省略掉) 得到的实际结果是数学运算结果1468。
“填空法”对学生接触数据库查询语句的初期比较形象, 易于学生接受, 但对于构建复杂的SQL语句并不适用。让学生掌握这种方式的主要目的是能够快速的看明白简单的SQL语句, 可以通过这种方法去理解和掌握SQL查询语句, 并举一反三, 对其他计算机语言类课程起到一个补充作用, 提高学生的学习兴趣。
摘要:当前而言, 数据库技术在人们心目中有着重要的地位, 而SQL查询语句是重中之重。然而, 对于初学数据库的学生而言, SQL查询语句是他们走进数据库世界必须通过的大一也是门槛“较高的大门之一。如何使用简单的命令来完成复杂多变的查询成为困扰学生的一个难题。该文从解决SQL查询语句的入门学习难点入手, 详细介绍了如何让学生利用”填空法“法来编写SQL查询语句。
【关键词】SQL Server;教学目标;任务驱动教学法
1引言
数据库是计算机应用专业学生必学的一门专业课程,SQL Server是行业内较为流行使用的数据库管理系统之一,为了满足学生就业需要,不少院校都使用SQL Server作为数据库教学的使用教材。学好这门课程,真正掌握数据库技术相关知识技能,对学生以后从事软件项目开发,系统维护等相关工作有着重要意义。然而在实际教学中,要让学生在有限的教学课时内掌握SQL Server数据库相关知识技能不是件容易的事。笔者针对SQL Server课程的特点和教学内容,通过实际教学的不断摸索与总结,认为任务驱动教学法比较适用于这门课程的教学。
2任务驱动教学法的优点
任务驱动教学法就是教师将课程要完成的教学内容设计成一个或多个具体的任务,学生通过完成这些任务来掌握所教授知识技能,培养学生解决实际问题的能力,达到教学目标。任务驱动教学法具有以下优点:
2.1从教师角度看,可以使授课内容、教学目标更加明确
教师在备课时,首先要为一个知识点或几个知识设计一个任务,这样就把一门课的知识切割开,使每节课的授课内容理更清晰明了,目标性更强。
2.2从学生的角度看,可以激发兴趣提高学习效率
传统的教学方式是教师按照教材的章节顺序依次讲解知识内容,然后学生再来完相关练习,这样使学生的学习具有盲目性,学生在听教师讲解知识内容时不知道相关知识的用途价值,最终导致学生产生厌学情绪,从而影响教学效果。使用任务驱动教学法则在课堂开始时就由教师提出任务问题,再分析寻找解决完成任务的方法,在这个过程中学生带着任务在听课,就会专注于课堂,积极思考,这样提高学习的主动性积极性,还能培养学生分析问题、解决问题的能力,也培养了学生独立探索精神。学生每解决一个任务就学会理解掌握了一个或几个知识点,通不断的完成教师提出的任务,就能掌握更多的知识技能,从而实现一门课程的学习目标,学习效率也会明显提高。
3任务教学法在SQL Server课程教学中的具体应用
3.1任务的设计
设计任务是任务驱动教学法的重要环节,教师在设计任务时首先应该认识到SQL Server课程具有理论性和实践性很强的特点,一些概念理论以及SQL语句操作数据等知识对学生来说,理解上有一定的难度,因此在教学过程中,不能按照教材的编写顺序讲授知识点,而是围绕教学主要目标任务来讲授相关的知识点,尽量淡化理论知识、抽象概念,弱化知识难度,把要求学生掌握的知识点和技能巧妙地隐含在相关的教学任务中。另外在设计任务时应尽量设计一些学生在现实学习生活可能感受得到,比较熟悉了解实用任务。
笔者认为学生学习完SQL Server课程后至少要掌握以下知识技能:第一要会使用SQL Server创建一些简单实用的数据库;第二要掌握使用SQL(结构化查询语言)来操作数据中的记录,如查询、添加、删除、修改记录等,受篇幅限制学生要掌握的其它SQL Server知识技能不在些讨论。针对上述两点基本要求,笔者在以往的SQL Server教学中设计了以下任务:
任务1创建学生个人信息管理和成绩管理数据库,名称叫做StudentDb,该数据库中包含3个表:studentinfo(学生信息表)、course (课程表)、score(成绩表),三个表的结构如下:
任务1的主要目的是:第一,让学生了解设计数据库的分析方法、分析过程;第二,学会使用SQL Server创建数库操作方法;第三,帮助学生理解数据库理论中的相关概念,如:字段、字段类型、字段长度、记录、表、主键等相关概念。
任务2在SQL Server中的查询分析器中使用相应的SQL语句来完成以各项操作
3.1.1使用insert into语句分别向学生表、课程表、成绩表添加一定数量的记录。
insert into 语法
insert into 表名称 values (值1, 值2,....)
也可以指定所要插入数据的列:
insert into 表名称(列1, 列2,...) values (值1, 值2,....)
3.1.2使用select语句实现相关的数据查询。
Select基本语法
Select列1, 列2,...from 表名称 where 查询条件
任务设计如:查询所有来自于玉溪市的学生信息、查询某个学生某门功课的成绩等,由于select语句功能强大使用灵活,不能在此列举所有可能的任务,教师可根学生情况和课时情况临时选择不同难度的任务。
3.1.3使用update语句修改表记录
语法:update 表名称 set 列名称 = 新值 WHERE 列名称 = 某值
任务设计如:将课程中编号为“103”的课程名称修改为“JavaScript程序设计”、将张三的英语课成绩修改为75分等类似的任务。由于在实际场景中我们可能要修改表中的各种数据,在此不列举所有可能任务,同样教师可根学生情况和课时情况临时选择不同难度的任务。
3.1.4使用delete语句删除表中记录
语法:delete from 表名称 where 列名称 = 值
任务设计如:假如某个学生已经退学,我们要从学生信息表中删除他的记录;又如取消某门课程授课,我们要从课程表中删除该课程的记录等类似的任务。
任务2是一个大型任务,其中包含多个小任务,教师在教学时可根据学生的学习掌握情况设计适当难度的任务,根据课时安排选择适当的任务数量。要尽量设计一些符合实际使用场景的小任务,以激发学生的学习兴趣。这个任务的总体目的是:让学生熟练掌握SQL常用语句的功能、语法,了解SQL Server的用途,同时培养学生解决实际问题的能力。
3.2任务驱动教学法实施注意事项
3.2.1给学生描述任务场景。例如任务2中有关select查询语句的使用,我们可以把要完成的作为描述成:有一天,班上的某同学要到学生成绩管理处查他的所有课种的成绩,这样的任务场景对学生来特别熟悉,也比较实用感兴趣。
3.2.2要详细分析任务,补充新知识新技能。教师做了任务场景描述后,要以提出问题的形式来引导学生对任务进行分析,或将任务进行必要分解。在分析问题的过程中,要启发帮助学生寻找解决问题的思路。同时要讲解完成任务所需的知识技术。
3.2.3教师要做好角色转换。任务驱支教学法中教师的解色从知识的传输者变为指导者。在教学过程中,教师不再是一开始上课就讲授新知识点,而是引导全体学生积极参与解决事先所设置的教学任务,当学生遇到问题时,要及时引导、启发学生思路,为学生提供帮助。
3.2.4要强调学生自主性学习。在任务驱动教学过程中,学生应根据教师提出的任务开展自主性学习,可以通过和其他同学讨论、交流和协作,拓宽思路,亲自动手操作实践,从知识的被动接受者变为主动建构者。
4结束语
教学实践表明,任务驱动教学法是一种比较适合SQL Server课程教学的方法,在教学过程中只要设计合理、有效任务,学生在完成各项任务时,就能够循序渐进地掌握相关知识技能,这种方法消除学生学习目标不明确、不知道知识用途的现象,激发了学生学习的热情,有利于培养学生独立分析问题、解决问题的能力。
参考文献:
[1]李占宣.任务驱动教学法在数据库教学中的应用[J].教育探索,2010,(12).
1 数据库设计
要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案。在实际工作中,许多SQL Server方案往往是由于数据库设计得不好导致性能很差。所以,要实现良好的数据库设计就必须考虑这些问题。
1.1 逻辑库规范化问题
一般来说,逻辑数据库设计会满足规范化的前3级标准:
1.第1规范:没有重复的组或多值的列。
2.第2规范:每个非关键字段必须依赖于主关键字,不能依赖于1个组合式主关键字的某些组成部分。
3.第3规范:1个非关键字段不能依赖于另1个非关键字段。
遵守这些规则的设计会产生较少的列和更多的表,因而也就减少了数据冗余,也减少了用于存储数据的页。但表关系也许需要通过复杂的合并来处理,这样会降低系统的性能。某种程度上的非规范化可以改善系统的性能,非规范化过程可以根据性能方面不同的考虑用多种不同的方法进行,但以下方法经实践验证往往能提高性能。
1.如果规范化设计产生了许多4路或更多路合并关系,就可以考虑在数据库实体(表)中加入重复属性(列)。
2.常用的计算字段(如总计、最大值等)可以考虑存储到数据库实体中。
比如某一个项目的计划管理系统中有计划表,其字段为:项目编号、年初计划、二次计划、调整计划、补列计划…,而计划总数(年初计划+二次计划+调整计划+补列计划)是用户经常需要在查询和报表中用到的,在表的记录量很大时,有必要把计划总数作为1个独立的字段加入到表中。这里可以采用触发器以在客户端保持数据的一致性。
3.重新定义实体以减少外部属性数据或行数据的开支。相应的非规范化类型是:
(1)把1个实体(表)分割成2个表(把所有的属性分成2组)。这样就把频繁被访问的数据同较少被访问的数据分开了。这种方法要求在每个表中复制首要关键字。这样产生的设计有利于并行处理,并将产生列数较少的表。
(2)把1个实体(表)分割成2个表(把所有的行分成2组)。这种方法适用于那些将包含大量数据的实体(表)。在应用中常要保留历史记录,但是历史记录很少用到。因此可以把频繁被访问的数据同较少被访问的历史数据分开。而且如果数据行是作为子集被逻辑工作组(部门、销售分区、地理区域等)访问的,那么这种方法也是很有好处的。
1.2 生成物理数据库
要想正确选择基本物理实现策略,必须懂得数据库访问格式和硬件资源的操作特点,主要是内存和磁盘子系统I/O。这是一个范围广泛的话题,但以下的准则可能会有所帮助。
1.与每个表列相关的数据类型应该反映数据所需的最小存储空间,特别是对于被索引的列更是如此。比如能使用smallint类型就不要用integer类型,这样索引字段可以被更快地读取,而且可以在1个数据页上放置更多的数据行,因而也就减少了I/O操作。
2.把1个表放在某个物理设备上,再通过SQL Server段把它的不分簇索引放在1个不同的物理设备上,这样能提高性能。尤其是系统采用了多个智能型磁盘控制器和数据分离技术的情况下,这样做的好处更加明显。
3.用SQL Server段把一个频繁使用的大表分割开,并放在2个单独的智能型磁盘控制器的数据库设备上,这样也可以提高性能。因为有多个磁头在查找,所以数据分离也能提高性能。
4.用SQL Server段把文本或图像列的数据存放在1个单独的物理设备上可以提高性能。1个专用的智能型的控制器能进一步提高性能。
2 与SQL Server相关的硬件系统
与SQL Server有关的硬件设计包括系统处理器、内存、磁盘子系统和网络,这4个部分基本上构成了硬件平台,Windows NT和SQL Server运行于其上。
2.1 系统处理器(CPU)
根据自己的具体需要确定CPU结构的过程就是估计在硬件平台上占用CPU的工作量的过程。从以往的经验看,CPU配置最少应是1个80586/100处理器。如果只有2~3个用户,这就足够了,但如果打算支持更多的用户和关键应用,推荐采用Pentium Pro或PⅡ级CPU。
2.2 内存(RAM)
为SQL Server方案确定合适的内存设置对于实现良好的性能是至关重要的。SQL Server用内存做过程缓存、数据和索引项缓存、静态服务器开支和设置开支。SQL Server最多能利用2GB虚拟内存,这也是最大的设置值。还有一点必须考虑的是Windows NT和它的所有相关的服务也要占用内存。
Windows NT为每个WIN32应用程序提供了4GB的虚拟地址空间。这个虚拟地址空间由Windows NT虚拟内存管理器(VMM)映射到物理内存上,在某些硬件平台上可以达到4GB。SQL Server应用程序只知道虚拟地址,所以不能直接访问物理内存,这个访问是由VMM控制的。Windows NT允许产生超出可用的物理内存的虚拟地址空间,这样当给SQL Server分配的虚拟内存多于可用的物理内存时,会降低SQL Server的性能。
这些地址空间是专门为SQL Server系统设置的,所以如果在同一硬件平台上还有其它软件(如文件和打印共享,应用程序服务等)在运行,那么应该考虑到它们也占用一部分内存。一般来说硬件平台至少要配置32MB的内存,其中,Windows NT至少要占用16MB。1个简单的法则是,给每一个并发的用户增加100KB的内存。例如,如果有100个并发的用户,则至少需要32MB+100用户*100KB=42MB内存,实际的使用数量还需要根据运行的实际情况调整。可以说,提高内存是提高系统性能的最经济的途径。
2.3 磁盘子系统
设计1个好的磁盘I/O系统是实现良好的SQL Server方案的一个很重要的方面。这里讨论的磁盘子系统至少有1个磁盘控制设备和1个或多个硬盘单元,还有对磁盘设置和文件系统的考虑。智能型SCSI-2磁盘控制器或磁盘组控制器是不错的选择,其特点如下:
(1)控制器高速缓存。
(2)总线主板上有处理器,可以减少对系统CPU的中断。
(3)异步读写支持。
(4)32位RAID支持。
(5)快速SCSI—2驱动。
(6)超前读高速缓存(至少1个磁道)。
3 检索策略
在精心选择了硬件平台,又实现了1个良好的数据库方案,并且具备了用户需求和应用方面的知识后,现在应该设计查询和索引了。有2个方面对于在SQL Server上取得良好的查询和索引性能是十分重要的,第1是根据SQL Server优化器方面的知识生成查询和索引;第2是利用SQL Server的性能特点,加强数据访问操作。
3.1 SQL Server优化器
Microsoft SQL Server数据库内核用1个基于费用的查询优化器自动优化向SQL提交的数据查询操作,
数据操作查询是指支持SQL关键字WHERE或HAVING的查询,如SELECT、DELETE和UPDATE。基于费用的查询优化器根据统计信息产生子句的费用估算。
了解优化器数据处理过程的简单方法是检测SHOWPLAN命令的输出结果。如果用基于字符的工具(例如isql),可以通过键入SHOW SHOWPLAN ON来得到SHOWPLAN命令的输出。如果使用图形化查询,比如SQL Enterprise Manager中的查询工具或isql/w,可以设定配置选项来提供这一信息。
SQL Server的优化通过3个阶段完成:查询分析、索引选择、合并选择。
1.查询分析
在查询分析阶段,SQL Server优化器查看每一个由正规查询树代表的子句,并判断它是否能被优化。SQL Server一般会尽量优化那些限制扫描的子句。例如,搜索和/或合并子句。但是不是所有合法的SQL语法都可以分成可优化的子句,如含有SQL不等关系符“”的子句。因为“”是1个排斥性的操作符,而不是1个包括性的操作符,所在扫描整个表之前无法确定子句的选择范围会有多大。当1个关系型查询中含有不可优化的子句时,执行计划用表扫描来访问查询的这个部分,对于查询树中可优化的SQL Server子句,则由优化器执行索引选择。
2.索引选择
对于每个可优化的子句,优化器都查看数据库系统表,以确定是否有相关的索引能用于访问数据。只有当索引中的列的1个前缀与查询子句中的列完全匹配时,这个索引才被认为是有用的。因为索引是根据列的顺序构造的,所以要求匹配是精确的匹配。对于分簇索引,原来的数据也是根据索引列顺序排序的。想用索引的次要列访问数据,就像想在电话本中查找所有姓为某个姓氏的条目一样,排序基本上没有什么用,因为你还是得查看每一行以确定它是否符合条件。如果1个子句有可用的索引,那么优化器就会为它确定选择性。
所以在设计过程中,要根据查询设计准则仔细检查所有的查询,以查询的优化特点为基础设计索引。
(1)比较窄的索引具有比较高的效率。对于比较窄的索引来说,每页上能存放较多的索引行,而且索引的级别也较少。所以,缓存中能放置更多的索引页,这样也减少了I/O操作。
(2)SQL Server优化器能分析大量的索引和合并可能性。所以与较少的宽索引相比,较多的窄索引能向优化器提供更多的选择。但是不要保留不必要的索引,因为它们将增加存储和维护的开支。对于复合索引、组合索引或多列索引,SQL Server优化器只保留最重要的列的分布统计信息,这样,索引的第1列应该有很大的选择性。
(3)表上的索引过多会影响UPDATE、INSERT和DELETE的性能,因为所有的索引都必须做相应的调整。另外,所有的分页操作都被记录在日志中,这也会增加I/O操作。
(4)对1个经常被更新的列建立索引,会严重影响性能。
(5)由于存储开支和I/O操作方面的原因,较小的自组索引比较大的索引性能更好一些。但它的缺点是要维护自组的列。
(6)尽量分析出每一个重要查询的使用频度,这样可以找出使用最多的索引,然后可以先对这些索引进行适当的优化。
(7)查询中的WHERE子句中的任何列都很可能是个索引列,因为优化器重点处理这个子句。
(8)对小于1个范围的小型表进行索引是不划算的,因为对于小表来说表扫描往往更快而且费用低。
(9)与“ORDER BY”或“GROUP BY”一起使用的列一般适于做分族索引。如果“ORDER BY”命令中用到的列上有分簇索引,那么就不会再生成1个工作表了,因为行已经排序了。“GROUP BY”命令则一定产生1个工作表。
(10)分簇索引不应该构造在经常变化的列上,因为这会引起整行的移动。在实现大型交易处理系统时,尤其要注意这一点,因为这些系统中数据往往是频繁变化的。
3.合并选择
当索引选择结束,并且所有的子句都有了一个基于它们的访问计划的处理费用时,优化器开始执行合并选择。合并选择被用来找出一个用于合并子句访问计划的有效顺序。为了做到这一点,优化器比较子句的不同排序,然后选出从物理磁盘I/O的角度看处理费用最低的合并计划。因为子句组合的数量会随着查询的复杂度极快地增长,SQL Server查询优化器使用树剪枝技术来尽量减少这些比较所带来的开支。当这个合并选择阶段结束时,SQL Server查询优化器已经生成了1个基于费用的查询执行计划,这个计划充分利用了可用的索引,并以最小的系统开支和良好的执行性能访问原来的数据。
3.2 高效的查询选择
从以上查询优化的3个阶段不难看出,设计出物理I/O和逻辑I/O最少的方案并掌握好处理器时间和I/O时间的平衡,是高效查询设计的主要目标。也就是说,希望设计出这样的查询:充分利用索引、磁盘读写最少、最高效地利用了内存和CPU资源。
以下建议是从SQL Server优化器的优化策略中总结出来的,对于设计高效的查询是很有帮助的。
1.如果有独特的索引,那么带有“=”操作符的WHERE子句性能最好,其次是封闭的区间(范围),再其次是开放的区间。
2.从数据库访问的角度看,含有不连续连接词(OR和IN)的WHERE子句一般来说性能不会太好。所以,优化器可能会采用R策略,这种策略会生成1个工作表,其中含有每个可能匹配的执行的标识符,优化器把这些行标志符(页号和行号)看做是指向1个表中匹配的行的“动态索引”。优化器只需扫描工作表,取出每一个行标志符,再从数据表中取得相应的行,所以R策略的代价是生成工作表。
3.包含NOT、、或! =的WHERE子句对于优化器的索引选择来说没有什么用处。因为这样的子句是排斥性的,而不是包括性的,所以在扫描整个原来数据表之前无法确定子句的选择性。
4.限制数据转换和串操作,优化器一般不会根据WHERE子句中的表达式和数据转换式生成索引选择。例如:
paycheck * 12>36000 or substring(lastname,1,1)=“L”
如果该表建立了针对paycheck和lastname的索引,就不能利用索引进行优化,可以改写上面的条件表达式为:
paycheck<36000/12 or lastname like “L%”
5.WHERE子句中的本地变量被认为是不被优化器知道和考虑的,例外的情况是定义为储备过程输入参数的变量。
6.如果没有包含合并子句的索引,那么优化器构造1个工作表以存放合并中最小的表中的行。然后再在这个表上构造1个分簇索引以完成一个高效的合并。这种作法的代价是工作表的生成和随后的分族索引的生成,这个过程叫REFORMATTING。
所以应该注意RAM中或磁盘上的数据库tempdb的大小(除了SELECT INTO语句)。另外,如果这些类型的操作是很常见的,那么把tempdb放在RAM中对于提高性能是很有好处的。
4 性能优化的其他考虑
外连接:
全连接(full join)、左连接(left join)、右连接(right join)。
交叉联接(cross join)。
外连接与内连接不一样,外连接返回的查询结果中不仅包含符合条件的行,还包括左表(左外连接),右表(右外连接)或者两个连接表(全外连接)中的所有不符合条件的数据行。
1.左连接 (left [outer] join)
左外连接就是将左表的所有数据分别于右表的每条数据进行连接组合,返回的结果除内连接的数据外,还有左表中不符合条件的数据,并在右表的相应列中填上null值。
SQL语句如下:
select * from mt_pb_org o left join mt_pb_orgframe f on o.PB_ORGFRAMEID = f.PB_ORGFRAMEID;
等价语句:
select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid = f.pb_orgframeid(+);
2.右连接 (right [outer] join)
右外连接就是将右表中的所有数据分别与左表的每条数据进行连接组合,返回的结果除了内连接的数据外,还有右表中不符合条件的数据,并在左表相应的列中填上null值。
SQL语句如下:
select * from mt_pb_org o right join mt_pb_orgframe on o.pb_orgframeid = f.pb_orgframeid;
等价语句:
select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid(+) = f.pb_orgframeid;
3.全外连接 (full [outer] join)
全外连接就是将左表的所有数据分别与右表的每条数据进行连接组合,返回的结果除了内连接的数据外,还有两个表中不符合条件的数据,并在左表或者右表的相应列中填上null值。
SQL语句如下:
select * from mt_pb_org o full join mt_pb_orgframe o.pb_orgframeid = f.pb_orgframeid;
4.交叉连接(cross join)
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
SQL语句如下:
关键词:数据库 原理 实训
目前技工院校计算机专业毕业生就业主要而向机关、企业、事业、公司等应用计算机技术的相关领域,从事计算机及相关设备的使用与维护、办公应用、信息系统维护、数据库管理、网页设计与制作、多媒体制作、IT产品销售及售后服务等岗位的工作。根据笔者学院近儿年对毕业生的跟踪调查,发现绝大多数计算机专业毕业生的工作岗位集中在信息化系统操作员、信息化系统维护员、计算机网络维护管理员、网页设计技术员以及多媒体技术员。由于计算机行业对专业技术人员实操能力的要求,导致技校生在工作岗位上的发展状况在很大程度上取决于在校专业课程的实训质量,因此实训教学历来是技工院校计算机教学的“重中之重”。
对于数据库原理与SQL Server这门课程来说,应用是其教学开展的主要日标,而学生应用能力的培养主要通过实训教学。目前实训教学效果往往不尽如人意。为此,笔者学院不断开展计算机专业实训教学专项课改调研,将课程内容与实训教学环节重新分解、整合,收到了良好的实训教学效果。
一、数据库原理与SQL Server课程的特点
信息技术是现代经济社会的支柱,而网络技术和数据库技术义是信息技术的核心。以Internet/lntranet/Extranet为标志的计算机网络遍及全球,处理的信息量急速膨胀,数据传播速度越来越快,这一切都是以SQL Server为代表的成熟数据库技术作为基础的。目前SQL Server的最新版本已经发展到200s版本,但考虑到当前技校生的实际学情以及逻辑思维接受能力,因此在教学内容的选择上仍以SQLServer2000为主线,伞而介绍SQL Server2000的操作方法,包括SQL Server2000的安装、数据库管理技术、表管理技术、Transact-SQL程序设计、数据检索、索引、视图、存储过程、触发器设计、数据库的复制与恢复、数据安全性和完整性等内容,同时有选择地将数据库基础、数据模型、关系数据库规范设计、关系运算、数据库体系结构、数据库并发控制等相关内容分配到相应的部分。这样充分体现以数据库原理为指导,以应用SQL Server2000为目的的理实一体化教学模式。
二、影响计算机专业实训教学效果的因素
1.理论与实训教学未实现真正一体化
实现理论与实训教学一体化是技工院校计算机专业教学改革的主要方向与目标。但在实际教学过程中,不少教师从过去片而注重理论知识传授走向了片而强调实操能力,而真正的理实一体化是要将培养学生实践动手能力的系统与培养学生可持续发展能力的基础知识系统交义进行运用,真正为实现专业人才培养日标服务。
2.教师能力不足
现代职业教育对专业教师的能力提出了更高的要求。即教师必须既有扎实的理论和教学经验,义要有生产实践经验和动手操作技能;既要了解本专业及相关行业的发展趋势,又要具有运用新知识、新技术、新方法开展有效教学及教研的能力。而目前技工院校教师待遇普遍偏低,不仅无法吸引计算机专业优秀人才,而且每年都有中青年教学骨干流失,这在很大程度上降低了计算机专业教师队伍的整体水平,也直接影响了计算机实训教学的效果。
三、数据库原理与SQL Server实训教学的开展
1.突出能力的培养
应用能力的培养是计算机专业课程实训教学的主要目的。在数据库原理与SQL Server实训教学中,笔者学院在职业基本能力方而是培养学生数据库系统的基本操作能力,而在职业核心能力方而是培养学生数据库系统管理维护能力。针对学生今后就业有可能从事的“数据库管理员”这一岗位,在实训教学中要求学生熟悉数据库的原理及基本知识,熟悉使用主流数据库软件,熟练使用SQL查询语句等。
2.活用多种教学方法
SQL语言是结构化查询语言 (Structured Query Language) 的简称, 是当前流行的数据库语言。
SQL语言根据其功能分为:数据查询语言 (Data Query Language, DQL) 、数据操作语言 (Data Manipulation Language, DML) 、数据定义语言 (Data Definition Language, DDL) 及数据控制语言 (Data Control Language, DCL) 。Microsoft的一个最新数据访问技术Active X Data Objects (AD0) 。ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO支持建立客户端/服务器和基于Web的应用程序的关键功能。
二、用ADO控件实现对数据库的访问
在Visual Basic中对ADO 2.0对象进行访问, 可设置对合适的ADO类型库的访问。有两种ADO类型库。一种叫ADODB, 包含在MSADO15.DLL中。它以“Microsoft Active X Data Objects 2.0 Library”出现;另一种叫做ADOR, 包含在MSADOR15.DLL中。它以“Microsoft Active X Data Objects Recordset 2.0 Library”出现。在两种类型库中, 第一种类型库 (ADODB) 更大, 具有更多功能;它包含了主要的ADO对象, 而且可能是在大多数情况下希望使用的。第二种是只支持记录集的ADODB类型库的一个“轻量”子集。如果只想操作记录集的话, 那么可以选择使用该类型库。在本系统的开发中访问数据库, 所使用的是ADODB类型库.访问远程数据库通常有两种方法.但首要的工作是先创建一组可被ADODB对象引用的ADO对象, 即在模块中编写如下代码:
ODBC通过DSA (Data Source Administrator) 程序来管理, 它负责在ODBC注册表中创建一个指定的项。而在程序中调用ODBC时, ODBC驱动程序管理器激活正在使用的相应数据库的驱动程序。要在ODBC注册表中创建一数据源项, 打开Windows中的“控制面板”, 选择“32位ODBC”, 来安装和配置特定数据源所需要的驱动程序。在打开的“ODBC数据源管理器”中, 可以看到“用户DSN”、“系统DSN”、“文件DSN”、“ODBC驱动程序”等几个选项卡, 其中前面三个选项卡描述了DSN的三种类型:
(1) 用户DSN→用户DSN选项卡:用户DSN代表计算机的本地数据库, 只能应用在当前机器上, 由当前的一个用户使用, 并且只对用户可见。
(2) 系统DSN→系统DSN选项卡:储存了如何与数据提供者连接的信息, 当前计算机上的所有用户都可以使用系统DSN, 它并不仅限于单个用户。
(3) 文件DSN→文件DSN选项卡:文件DSN可以由所有安装了相同驱动程序的用户共享。这些数据源不只限于某一用户或单一计算机专用。当要建立一个与Web服务器一起使用的数据源时, 我们应该建立一个文件数据源, 建立这样的文件数据源后, 连接信息存储在一个实际的文件中, 不止一个用户可以访问这个文件。并且通过复制扩展名为.DSN的文件, 可以轻易地把应用从一个机器移植到另一个机器。
三、使用ODBC API访问数据源
ODBC API是一组函数, 它的连接是通过四个句柄来引用的, 它允许直接访问ODBC数据库, 而不需要Jet引擎的内部操作。通过ODBC API访问数据库的速度比使用Jet快许多倍, 但ODBC API需要进行许多程序设计和测试的工作, 所以通常不采用这种方法访问数据库。
(一) 基本检索语句:
说明:该语句完成将table_name的特定栏位资料全部列出来
说明:该语句完成1.'*'表示全部的栏位都列出来。2.where之後是接条件式, 把符合条件的资料列出来。
说明:order by是指定以某个栏位做排序, [desc]是指从大到小排列, 若没有指明, 则是从小到大排列
(二) 组合检索
组合检索是指所查询得资料来源并不只有单一的表格, 而是联合一个以上的
表格才能够得到结果的。
四、结合VB程序设计的部分检索语句:
书目查询后台代码, SQL语句:
五、结论
连接数据库使用的是直接用代码连接数据库, 这样简单、方便, 但在测试阶段发现, 新建数据库名必须与代码中的数据库名相同, 这使得系统的可移植性较差, 建议改为使用ODBC连接数据库, 虽然稍显麻烦, 但提高了系统的可移植性。
摘要:随着计算机技术的发展, 数据库检索越来越广泛, SQL语言具有功能强, 灵活等特点。它作为前台应用程序开发工具, 可以和后台数据库引擎通信、检索等, 普遍应用在网络数据库中。本文重点介绍SQL语言的数据库检索方法。
【SQL数据库设计教学大纲】推荐阅读:
sql数据库实验报告07-27
sql数据库期末考试题11-18
创建数据库教学设计09-26
数据库技术教学设计02-26
教学管理数据库的设计10-14
数据整理教学设计05-26
《数据处理》教学设计03-01
表格数据的处理教学设计10-11
《数据图表与分析》教学设计11-22