第45章SQL Server和SQLTSQL语言.docx
- 文档编号:24031963
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:72
- 大小:444.70KB
第45章SQL Server和SQLTSQL语言.docx
《第45章SQL Server和SQLTSQL语言.docx》由会员分享,可在线阅读,更多相关《第45章SQL Server和SQLTSQL语言.docx(72页珍藏版)》请在冰豆网上搜索。
第45章SQLServer和SQLTSQL语言
第四章SQLServer和SQL语言
4.1SQLServer简介4.5SQL的数据查询
4.2创建数据库和基本表4.6SQL的数据更新
4.3SQL概述4.7视图
4.4SQL的数据定义
4.1SQLServer简介
4.1.1SQLServer概述
SQLServer是一个客户/服务器关系型数据库管理系统。
使用Transact-SQL在客户机和SQLServer之间发送请求。
SQLServer2000是Microsoft公司在2000年推出的SQLServer数据库管理系统。
2005年推出SQLServer2005。
1.SQLServer2000的常用版本有:
①企业版(EnterpriseEdition)支持SQLServer2000的所有特性,可作为大型Web站点、企业的数据库服务器。
②标准版(StandardEdition)用于小型的工作组或部门。
③个人版(PersonalEdition)用于单机系统或客户机。
④开发版(DeveloperEdition):
用于程序员开发应用程序,需要SQLServer2000作为数据存储设备。
SQLServer的软硬件平台要求:
①硬件要求:
目前的计算机CPU、内存和硬盘等都能满足SQLServer2000的要求。
②软件要求:
SQLServer2000标准版和企业版只能安装在服务器版的操作系统中。
Windows2000和WindowsXP操作系统,只能安装个人版和开发版的SQLServer2000。
表不同版本SQLServer2000对操作系统的要求
版本或组件
操作系统要求
企业版
WindowsServer版
标准版
WindowsServer版
个人版
Windows各个版本
开发版
WindowsServer版
WindowsWorkstation版
WindowsProfessional版
客户端
Windows各个版本
2.SQLServer2005的常用版本有:
SQLServer2005版本或组件
操作系统
企业版
Windows2000ServerSP4;Windows2000AdvancedServerSP4;Windows2000DatacenterEditionSP4;Windows2003ServerSP1和所有更高级的Windows操作系统。
标准版
Windows2000ProfessionalEditionSP4;Windows2000ServerSP4;Windows2000AdvancedServerSP4;Windows2000DatacenterEditionSP4;WindowsXPProfessionalEditionSP2;WindowsXPMediaEditionSP2;WindowsXPTabletEditionSP2;Windows2003ServerSP1和所有更高级的Windows操作系统。
工作组版
Windows2000ProfessionalEditionSP4;Windows2000ServerSP4;Windows2000AdvancedServerSP4;Windows2000DatacenterEditionSP4;WindowsXPProfessionalEditionSP2;WindowsXPMediaEditionSP2;WindowsXPTabletEditionSP2;Windows2003ServerSP1和所有更高级的Windows操作系统
开发版
Windows2000ProfessionalEditionSP4;Windows2000AdvancedServerSP4;Windows2000DatacenterEditionSP4;WindowsXPHomeEditionSP2;WindowsXPProfessionalEditionSP2;WindowsXPTabletEditionSP2;Windows2003ServerSP1和所有更高级的Windows操作系统
简易版
同工作组版
3.SQLServer2000的主要组件:
(1)企业管理器
•企业管理器是最主要的管理工具,可以完成绝大部分数据库管理工作。
主要为:
①注册和管理SQLServer服务器
②创建和管理数据库和数据库对象
③备份和还原数据库和事务日志
④设置任务调度、警报和提供服务器的控制功能
⑤创建与管理用户账号和组
(2)查询分析器
查询分析器是一个图形化的数据库编程接口。
通过查询分析器可以输入和执行各种Transact-SQL语句。
例如:
在“查询”窗口中输入语句:
SELECT学号,姓名,性别,出生日期
FROM学生
WHERE性别=‘女'
4.SQLServer2005的主要组件:
5系统数据库
•安装好后,系统自动创建6个系统数据库。
它们存放在MicrosoftSQLServer默认安装目录下的MSSQL\Data文件夹中,数据库文件的扩展名为.mdf,数据库日志文件的扩展名为.ldf。
P62
•SQLServer2005,当安装完成后系统会自动创建5个系统数据库。
其中4个在SQLServerManagementStudio环境中可见(master、model、tempdb、msdb)和1个逻辑上不单独存在,隐藏的系统数据库Resource。
(1)Master数据库
Master数据库记录了SQLServer系统的所有信息。
这些信息包括所有的登录信息、系统设置信息、SQLServer的初始化信息和其它系统数据库及用户数据库的相关信息。
Master数据库对应的主数据文件是Master.mdf,日志文件是Mastlog.ldf。
(2)Model数据库
Model数据库是所有用户数据库和Tempdb数据库的模板数据库。
当用户使用CREATEDATABASE命令建立新的数据库时,新数据库的第一部分总是通过复制Model数据库中的内容创建,剩余部分由空页填充。
Model数据库对应的主数据文件是Model.mdf,日志文件是Modellog.ldf。
(3)Msdb数据库
Msdb数据库是代理数据库,主要用于SQLServerAgent,为其警报、任务调度和记录操作员的操作提供存储空间。
Msdb数据库对应的主数据文件是Msdb.mdf,日志文件是Msdblog.ldf。
(4)Tempdb数据库
是一个临时数据库。
Tempdb数据库由整个系统的所有数据库使用。
它为所有的临时表、临时存储过程及其它临时操作提供存储空间。
SQLServer每次启动时,Tempdb数据库被重新建立。
当用户与SQLServer断开联系时,其临时表和存储过程被自动删除。
对应的主数据文件是Tempdb.mdf,日志文件是Templog.ldf。
(5)Pubs数据库和Northwind数据库
•Pubs数据库:
提供一个样本数据库作为学习工具。
•Northwind数据库:
提供一个样本数据库作为学习工具。
6.SQLServer2000的启动
•服务管理器是在服务器端运行的程序,其界面如图所示。
服务管理器用来启动、暂停、继续和停止数据库服务器的实时服务。
•在访问数据库之前,必须启动SQLServer数据库服务。
SQLServer数据库服务的启动有两种方法:
①启动Windows时自动启动,可以通过服务管理器进行设置。
②通过“开始|MicrosoftSQLServer|服务管理器”进行启动。
4.2创建数据库和基本表
4.2.1创建数据库
要创建数据库必须拥有创建数据库的权限。
在初始情况下,只有系统管理员可以创建数据库。
在数据库创建完成后,它的创建者自动成为其所有者。
1.创建数据库的工作主要是:
•确定数据库名称;
•确定数据文件的名称、存放位置和增长信息等;
•确定事务日志文件名称、存放位置和增长信息等。
创建数据库方法有三种:
•使用企业管理器创建数据库;
•使用Transact-SQL语言创建;
•使用向导创建数据库(略讲)。
本节介绍使用企业管理器创建数据库。
使用企业管理器创建数据库
(建立student数据库)如下图
4.2.2创建基本表
每个数据库最多可创建200万个基本表,用户创建基本表时,最多可以定义1024个字段。
•有两种方法创建基本表:
a.使用Transact-SQL创建基本表;
b.使用企业管理器创建基本表。
本节介绍使用企业管理器创建基本表。
1.创建基本表的主要工作:
•确定基本表名;
•确定每个字段的名称、数据类型、字段宽度、是否可为空等;
•确定每个表的主键。
(1)数据类型
常用的数据类型
数据类型
说明
数据类型
说明
Bit
二进制位类型
Money
货币类型
Tinyint
无符号单字节整型
Datetime
日期/时间型
Smallint
短整型,2个字节
Image
OLE对象
Int
长整型,4个字节
Varchar(n)
最长为n的可变长文本类型
Bigint
大整型,8个字节
Text(n)
长为n的可变长文本类型,长度最大231-1
Decimal,
Numeric
数值类型(固定精度和小数位)
Char(n),
固定长度为n的文本类型
Real
单精度浮点型,4字节
Binary
二进制类型
float
双精度浮点型,8字节
VarBinary
可变长二进制类型
2在企业管理器中创建基本表
选定数据库,在其下“表”项上打开快捷菜单(如下图),选择“新建表”菜单命令,进入其编辑器。
4.2.3管理数据库和基本表
1.删除数据库和基本表
选择要删除的数据库或表,按键盘上的“删除”键,或打开快捷菜单,选择“删除”菜单命令即可。
(电脑操作演示)
2.修改数据库和基本表结构(电脑操作演示)
3.录入数据(电脑操作演示)
4.2.4备份和恢复数据库
(1)备份数据库:
为数据库建立备份,以便数据库发生故障后,用备份恢复数据库。
•选择要备份的数据库,然后,
方法1:
打开快捷菜单,选择“所有任务”菜单项,再选择“备份数据库”菜单命令。
方法2:
选择“工具/备份数据库”菜单命令。
(2)恢复数据库:
(电脑操作演示)
4.2.5导入和导出数据
•数据的导入和导出指将其他SQLServer服务器上数据库或其他数据源数据(如Excel工作表)导入到本地SQLServer服务器上的数据库中,或反之。
•数据的导入和导出利用SQLServer提供的数据转换服务DTS来完成。
例如:
将教学数据库数据导出到Excel表格中(电脑操作演示)。
4.3SQL概述
SQL(StructuredQueryLanguage结构化查询语言)是1974年由Boyce和Chamberlin提出的,1975—1979年在IBM公司SanJoseRsearchLaboratary研制的SystemR上得以实现这种语言。
SQL语言的功能丰富,使用方式灵活,语言简洁易学。
1986年10月ANSI(美国国家标准局)批准SQL作为RDB语言的美国标准,此后不久,ISO(国际化标准组织)也做出同样的规定,把SQL标准公布,SQL成为国际标准。
此后,DB产品各个厂家纷纷推出各自的支持SQL的软件或与SQL的接口软件,不支持SQL语言的RDBS已不存在其生命力。
SQL标准不仅成为RDBS的主流语言,在软件工程,人工智能软件开发工具等也很具潜力。
SQL是一种介于关系代数和关系演算之间的结构化查询语言,但其功能并非仅是查询。
SQL是一个通用的功能极强的RDB语言。
4.3.1SQL的特点
数据查询(dataquery)1.综合统一
2.高级非过程化
SQL只需whattodo?
不需howtodo?
无需了解存取路径,由RDBS自动完成
3.面向集合的操作方式
操作对象,结果均为关系。
4.两种使用方法,统一的语法结构
①可以作为独立语言,由终端用户的联机交互方式使用(自含式)。
②可以作为子语言,嵌入到宿主语言中使用(嵌入式)。
两种使用方式,SQL语法结构一致。
5.语言简捷,易学易用
查询:
SELECT
定义:
CREATE、DROP、ALTER
操作:
INSERT、UPDATE、DELETE
控制:
GRANT、REVOKE
4.3.2SQL支持RDB的三级模式结构
1.SQL可以对视图,基本表进行查询等,在用户眼里,两者是一样的。
2.一个关系对应一个基本表,视图是导出的表,是虚表。
3.多个(一个)基本表对应一个存储文件,一个表可带若干索引。
4.4数据定义
SQL的数据定义功能有三个部分,定义基本表、视图、索引。
视图是由基本表导出的,是虚表;
索引是依附于基本表的
故,SQL通常不提供修改视图、索引,用户只需把原视图、索引删除,再建立新的即可。
SQL的数据定义语句
建立删除修改
表createtabledroptablealtertable
视图createviewdropview
索引createindexdropindex
本节先介绍基本表、索引,以后介绍视图。
4.4.1定义、删除、修改基本表
1.定义基本表
格式:
CREATETABLE〈表名〉(<列名1>
<数据类型>[列约束条件][,<列名2>
<数据类型>[列约束条件]…
[<表完整性约束条件>];
例:
建立一个S表由SNO、SNAME、SSEX、SAGE、SDEPT组成。
SNO不能为空、取值唯一,SNAME取值唯一。
CREATETABLES
(SNOCHAR(4)NOTNULLUNIQUE,
SNAMECHAR(8)UNIQUE,
SSEXCHAR
(2),
SAGEINT,
SDEPTCHAR(20))
例:
建立学生、课程、选课表
CREATETABLES
(SNOCHAR(4)NOTNULLUNIQUE,
SNAMECHAR(8),
SSEXCHAR
(2),
SAGESMALLINT,
SDEPTCHAR(20),
PRIMARYKEY(SNO))
CREATETABLEC
(CNOCHAR(4)PRIMARYKEY,
CNAMECHAR(8),
CCREDITSMALLINT)
CREATETABLESC
(SNOCHAR(4)NOTNULL,
CNOCHAR(4)NOTNULL,
GRADEINT,
PRIMARYKEY(SNO,CNO),
FOREIGNKEY(SNO)REFERENCESS(SNO),
FOREIGNKEY(CNO)REFERENCESC(CNO),
CHECK((GRADEISNULL)OR(GRADEBETWEEN0AND100)))
2.修改基本表
格式:
ALTERTABLE<表名>
[ADD<新列名><数据类型>[完整性约束]]
[DROP<完整性约束名>]
[MODIFY<列名><数据类型>];
例:
向S表增加“SCOME”一列、类型为DATE。
ALTERTABLESADDSCOMEDATETIME
3.删除基本表
格式:
DROPTABLE<表名>
例:
删除S表。
DROPTABLES
4.4.2建立与删除索引
1.建立索引
格式:
CREATE[UNIQUE][CLUSTER]
INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);
例:
为S表按SNO建立一个索引。
CREATEUNIQUEINDEXS1ONS(SNO)
2.删除索引
格式:
DROPINDEX〈索引名〉
例:
删除索引S1。
DROPINDEXS.S1
4.5SQL的数据查询
在关系代数中最常用
ПA1,A2,…A3(σF(R1×R2×…×Rn))
SQL针对这样简单的查询语句给出:
SELECTA1,A2,…An
FROMR1,R2,…Rn
WHEREF
较完整的查询语句的格式:
SELECT[ALL][DISTINCT]<目标列1>[,<目标列2>]…
FROM<表名/视图名>[,<表名/视图名>]
[WHERE<条件表达式>]
[GROUPBY<列名1>[HAVING<条件表达式>]]
[ORDERBY<列名2>][ASC/DESC];
其含义:
从指定表/视图查找满足条件的目标列,有GROUPBY则按指定列分组且满足其条件,有ORDERBY则输出时,按列的升/降序排列。
建立三个表:
S、C、SC进行查询
4.5.1单表查询
1.选择表中若干列
例:
查全体学生的学号、姓名。
SELECTSNO,SNAME
FROMS
例:
查全体学生的姓名、学号。
SELECTSNAME,SNO
FROMS
例:
查全体学生的详细情况。
SELECT*
FROMS
例:
查全体学生的姓名、出生年。
SELECTSNAME,2010-SAGE
FROMS
2、选择表中若干元组。
带条件的查询,其中条件为:
算术比较运算符:
<,>=,>,<=,=,<>
逻辑比较运算符:
ANDORNOT
确定范围:
BETWEENAND、NOTBETWEENAND
集合:
IN、NOTIN
字符串:
LIKE、NOTLIKE
空值:
ISNULL,ISNOTNULL
例:
查选修了课程的学生的学号。
SELECTDISTINCTSNO
FROMSC
例:
查计算机系的学生的姓名。
SELECTSNAME
FROMS
WHERESDEPT=‘CS’
例:
查年龄小于20的学生的姓名和年龄。
SELECTSNAME,SAGE
FROMS
WHERESAGE<20
例:
查年龄在20—23之间的学生的姓名和年龄。
SELECTSNAME,SAGE
FROMS
WHERESAGEBETWEEN20AND23
例:
查IS、MA、CS系的学生的姓名。
SELECTSNAME
FROMS
WHERESDEPTIN('IS','MA','CS')
或WHERESDEPT=’IS’ORSDEPT=’MA’ORSDEPT=’CS’
3.字符匹配
[NOT]LIKE‘<匹配串>’[ESCAPE‘<换码字符>’]
含义:
查找指定的属性列值与<匹配串>相匹配的元组。
匹配串中可以包含%和_通配符。
%:
任意长字符。
相当与DOS中的*
_:
任一字符。
相当与DOS中的?
当查找的字符本身就含有%_时,用<换码字符>\,表示在\后的字符是%_,不是通配符。
例:
查所有姓刘的学生的姓名、学号。
SELECTSNAME,SNO,SSEX
FROMS
WHERESNAMELIKE‘刘%’
例:
查所有名子中的第二个字是“阳”的学生的姓名、学号。
SELECTSNAME,SNO
FROMS
WHERESNAMELIKE‘__阳%’
例:
查以“DB_”开头,且倒数第三个字符为I的课程的详细情况。
SELECT*
FROMC
WHERECNAMELIKE‘DB\_%I__’ESCAPE‘\’
例:
查缺少成绩的学生的学号、课程号。
SELECTSNO,CNO
FROMSC
WHEREGRADEISNULL
例:
查CS系,年龄小于20的学生的姓名。
SELECTSNAME
FROMS
WHERESDEPT=’CS’ANDSAGE<20
4.对查询结果排序
例:
查选修了“C3”的学生的学号及成绩,结果按成绩的降序排列。
SELECTSNO,GRADE
FROMSC
WHERECNO=’C3’
ORDERBYGRADEDESC
例:
查全体学生的基本情况,结果按系的升序,同一系的学生按年龄的降序排列。
SELECT*
FROMS
ORDERBYSDEPT,SAGEDESC
5.使用集函数
COUNT([DISTINCT/ALL]*)统计元组个数
COUNT([DISTINCT/ALL]<列名>)统计一列中值的个数
SUM([DISTINCT/ALL]<列名>)统计一列中的总和(数值型)
AVG([DISTINCT/ALL]<列名>)统计一列中的平均值(数值)
MAX([DISTINCT/ALL]<列名>)求一列中的最大值
MIN([DISTINCT/ALL]<列名>)求一列中的最小值
例:
查全体学生的总数。
SELECTCOUNT(*)
FROMS
例:
查选修了课程的学生的总数。
SELECTCOUNT(DISTINCTSNO)
FROMSC
例:
计算选修“C1”的学生的平均成绩。
SELECTAVG(GRADE)
FROMSC
WHERECNO='C1'
例:
计算选修“C1”的学生的最高成绩。
SELECTMAX(GRADE)
FROMSC
WHERECNO=’C1’
6.对查询结果分组
例:
求各个课程号及相应的选课人数。
SELECTCNO,COUNT(SNO)
FROMSC
GROUPBYCNO
例:
查询选修了3门课以上的学生的学号。
SELECTSNO
FROMSC
GROUPBYSNOHAVINGCOUNT(*)>3
4.5.2连接查询
例:
查每个学生及选课情况。
SELECT*
FROMS,SC
WHERES.SNO=SC.SNO
例:
结果中会出现两个SNO,为避免可以:
SELECTS.SNO,SNAME,SSEX,SAGE,
SDEPT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第45章SQL Server和SQLTSQL语言 45 SQL Server SQLTSQL 语言