《第3章 关系数据库标准语言——SQL说课讲解》由会员分享,可在线阅读,更多相关《第3章 关系数据库标准语言——SQL说课讲解(96页珍藏版)》请在金锄头文库上搜索。
1、第3章 关系数据库标准语言SQL,3.1 SQL语言的基本概念与特点 3.2 了解SQL Server 2000 3.3 创建与使用数据库 3.4 创建与使用数据表 3.5 创建与使用索引 3.6 数据查询 3.7 数据更新 3.8 视图 3.9 数据控制,结构化查询语言 Structured Query Language,数据查询 数据定义 数据操纵 数据控制,3.1 SQL语言的基本概念与特点,3.1.1 SQL语言的发展及标准化 SQL语言的发展,Chamberlin,SEQUEL,SQL,大型数据库 Sybase INFORMIX SQL Server Oracle DB2 INGRE
2、S - 小型数据库 FoxPro Access,SQL语言支持的关系数据库的三级模式结构,3.1.3 SQL语言的主要特点,SQL语言是类似于英语的自然语言,简洁易用 SQL语言是一种非过程语言 SQL语言是一种面向集合的语言 SQL语言既是自含式语言,又是嵌入式语言 SQL语言具有数据查询、数据定义、数据操纵和数据控制四种功能,3.2 了解SQL Server 2000,SQL Server是一个关系数据库管理系统,企业版(Enterprise Edition) 标准版(Standard Edition) 个人版(Personal Edition) 开发者版(Developer Editio
3、n),3.2.1 SQL Server 2000的主要组件,3.2.2 企业管理器,由Enterprise Manager产生的SQL脚本是一个后缀名为.sql的文件 企业管理器的管理工作,文本文件,管理数据库,管理数据库对象,管理备份,管理复制,管理登录和许可,管理SQL Server Agent,管理SQL Server Mail,3.2.3 查询分析器,使用查询分析器的熟练程度是衡量一个SQL Server用户水平的标准。,3.3 创建与使用数据库,数据文件1,事务日志文件,数据库,数据文件n,存放数据库数据和数据库对象的文件 主要数据文件(.mdf ) +次要数据文件(.ndf ),只
4、有一个,可有多个,记录数据库更新情况,扩展名为.ldf 当数据库破坏时可以用事务日志还原数据 库内容,文件组 文件组(File Group)是将多个数据文件集合起来形成的一个整体 主要文件组+次要文件组 一个数据文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用 日志文件不分组,它不能属于任何文件组,3.3.1 SQL Server的系统数据库,Model,Msdb,Tempdb,系统默认数据库,系统信息 : 磁盘空间 ;文件分配和使用 ;系统级的配置参 数;登录账号信息 ;SQL Server初始化信息; 系统中其他系统数据库和用户数据库的相关信息,Model数据库存储了所有用户数
5、据库和Tempdb数 据库的创建模板 通过更改Model数据库的设置可以大大简化数据 库及其对象的创建设置工作,存储计划信息以及与备份和还原相关的信息,Tempdb数据库用作系统的临时存储空间 存储临时表,临时存储过程和全局变量值 ,创建临 时表 ,存储用户利用游标说明所筛选出来的数据,Master,3.3.2 SQL Server的实例数据库,重建实例数据库 安装目录MSSQLInstall中: Instpubs.sql Instnwnd.sql,实例数据库,pubs,Northwind,虚构的图书出版公司的基本情况,包含了一个公司的销售数据,3.3.3 创建用户数据库,用Enterpris
6、e Manager 创建数据库 用SQL命令创建数据库 CREATE DATABASE database_name ON ,.n , ,.n LOG ON ,.n COLLATE collation_name FOR LOAD | FOR ATTACH ,例3-1 用SQL命令创建一个教学数据库Teach,数据文件的逻辑名称为Teach_Data,数据文件物理地存放在D:盘的根目录下,文件名为TeachData.mdf,数据文件的初始存储空间大小为10MB,最大存储空间为50MB,存储空间自动增长量为5MB;日志文件的逻辑名称为Teach_Log,日志文件物理地存放在D:盘的根目录下,文件名为
7、TeachLog.ldf,初始存储空间大小为10MB,最大存储空间为25MB,存储空间自动增长量为5MB。,CREATE DATABASE Teach ON (NAME=Teach_Data, FILENAME=D:TeachData.mdf, SIZE=10, MAXSIZE=50, FILEGROWTH=5) LOG ON (NAME=Teach_Log, FILENAME=D:TeachLog.ldf, SIZE=5, MAXSIZE=25, FILEGROWTH=5),3.3.4 修改用户数据库,用Enterprise Manager修改数据库 用SQL命令修改数据库 ALTER DA
8、TABASE database_name ADD FILE ,.n TO FILEGROUP filegroup_name | ADD LOG FILE ,.n | REMOVE FILE logical_file_name WITH DELETE | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILE | MODIFY NAME = new_dbname | MODIFY FILEGROUP filegroup_name filegroup_property | NAME = new_fil
9、egroup_name | SET ,.n WITH | COLLATE ,例3-2 修改Northwind数据库中的Northwind文件增容方式为一次增加2MB。,ALTER DATABASE Northwind MODIFY FILE (NAME = Northwind, FILEGROWTH = 2mb ),3.3.5 删除用户数据库,用Enterprise Manager删除数据库 用SQL命令删除数据库 DROP DATABASE database_name ,.n 例3-3 删除数据库Teach。 DROP DATABASE Teach,3.3.6 查看数据库信息,用Enterp
10、rise Manager查看数据库信息 用系统存储过程显示数据库信息 用系统存储过程显示数据库结构 用系统存储过程显示文件信息 用系统存储过程显示文件组信息,Sp_helpdb dbname= name,Sp_helpfile filename = name,Sp_helpfilegroup filegroupname = name,EXEC Sp_helpdb Northwind EXEC Sp_helpfile Northwind EXEC Sp_helpfilegroup,3.4 创建与使用数据表,3.4.1 数据类型,整数数据,精确数值,近似浮点数值,日期时间数据,bigint,int
11、,smallint,tinyint,numeric和decimal,float和real,datetime与smalldatetime,字符串数据,Unicode字符串数据,二进制数据,货币数据,char、varchar、text,nchar、nvarchar与ntext,binary、varbinary、image,money与smallmoney,标记数据,timestamp和uniqueidentifier,3.4.2 创建数据表,用Enterprise Manager创建数据表 相关属性定义 “字段名” “数据类型” 字段的“长度”、“精度”和“小数位数” “允许空” “默认值”,同一
12、表中不许有重名字段,系统默认为NULL,用SQL命令创建数据表 CREATE TABLE (,|) 例3-4 用SQL命令建立一个学生表S。 CREATE TABLE S (SNo CHAR(6), SN VARCHAR(8), Sex CHAR(2) DEFAULT 男, Age INT, Dept VARCHAR(20), DEFAULT ,缺省值为“男”,3.4.3 定义数据表的约束,正确性,有效性,相容性,数据的完整性,约束(Constraint) 默认(Default) 规则(Rule) 触发器(Trigger) 存储过程(Stored Procedure),SQL Server的数
13、据完整性机制,完整性约束的基本语法格式 CONSTRAINT ,NULL/NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY,CHECK,NULL/NOT NULL约束 NULL表示“不知道”、“不确定”或“没有数据”的意思 主键列不允许出现空值 CONSTRAINT NULL|NOT NULL 例3-5 建立一个S表,对SNo字段进行NOT NULL约束。 CREATE TABLE S (SNo CHAR(6) CONSTRAINT S_Cons NOT NULL, SN VARCHAR(8), Sex CHAR(2), Age INT, Dept VARCHAR
14、(20),可省略约束名称 : SNo CHAR(6) NOT NULL,UNIQUE约束(惟一约束) 指明基本表在某一列或多个列的组合上的取值必须惟一 在建立UNIQUE约束时,需要考虑以下几个因素: 使用UNIQUE约束的字段允许为NULL值。 一个表中可以允许有多个UNIQUE约束。 可以把UNIQUE约束定义在多个字段上。 UNIQUE约束用于强制在指定字段上创建一个UNIQUE索引,缺省为非聚集索引。 UNIQUE用于定义列约束 CONSTRAINT UNIQUE UNIQUE用于定义表约束 CONSTRAINT UNIQUE(,),例3-6 建立一个S表,定义SN为惟一键。 CREA
15、TE TABLE S (SNo CHAR(6), SN CHAR(8) CONSTRAINT SN_Uniq UNIQUE, Sex CHAR(2), Age INT, Dept VARCHAR(20) 例3-7 建立一个S表,定义SN+SEX为惟一键,此约束为表约束。 CREATE TABLE S (SNo CHAR(6), SN CHAR(8) UNIQUE, Sex CHAR(2), Age INT, Dept VARCHAR(20), CONSTRAINT S_UNIQ UNIQUE(SN, Sex),SN_Uniq可以省略 SN CHAR(8) UNIQUE,PRIMARY KEY约
16、束(主键约束) 用于定义基本表的主键,起惟一标识作用 PRIMARY KEY与UNIQUE 的区别: 一个基本表中只能有一个PRIMARY KEY,但可多个UNIQUE 对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现NULL值,而对于UNIQUE所约束的惟一键,则允许为NULL 对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现NULL值,而对于UNIQUE所约束的惟一键,则允许为NULL,不能为NULL,不能重复,PRIMARY KEY用于定义列约束 CONSTRAINT PRIMARY KEY PRIMARY KEY用于定义表约束 CONSTRAINT PRIMARY KEY (,) 例3-8 建立一个S表,定义SNo为S的主键,建立另外一个数据表C,定义CNo为C的主键。 CREATE TA