【教学课件】第3章SQL语言基础.ppt

上传人:小飞机 文档编号:5658509 上传时间:2023-08-06 格式:PPT 页数:51 大小:751KB
返回 下载 相关 举报
【教学课件】第3章SQL语言基础.ppt_第1页
第1页 / 共51页
【教学课件】第3章SQL语言基础.ppt_第2页
第2页 / 共51页
【教学课件】第3章SQL语言基础.ppt_第3页
第3页 / 共51页
【教学课件】第3章SQL语言基础.ppt_第4页
第4页 / 共51页
【教学课件】第3章SQL语言基础.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《【教学课件】第3章SQL语言基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第3章SQL语言基础.ppt(51页珍藏版)》请在三一办公上搜索。

1、数据库原理与应用教程,国家“十一五”规划教材,第3章 SQL语言基础及数据定义功能,3.1 基本概念3.2 SQL的数据类型 3.3 数据定义功能,3.1 基本概念,3.1.1 SQL语言的发展 3.1.2 SQL语言的特点3.1.3 SQL语言功能概述,SQL语言是数据库的核心语言。SQL的发展是从1974年开始的,其发展过程如下:1974年-由Boyce和Chamberlin提出,当时称SEQUEL。1976年-IBM公司的Sanjase研究所在研制RDBMS SYSTEM R时改为SQL。1979年-ORACLE公司发表第一个基于SQL的商业化RDBMS产品。,3.1.1 SQL语言的发

2、展,SQL 之父 Don Chamberlin,他发起了数据查询的两次革命,他是 SQL 语言的创造者之一,也是 XQuery 语言的创造者之一。今天数以百亿美元的数据库市场的形成,与他的贡献是分不开的。,1986年10月由美国ANSI 公布最早的SQL标准。1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89。1992年11月,ISO又公布了新的SQL标准,称为SQL-92。1999年颁布SQL-99,是SQL92的扩展。,3.1.2 SQL语言的特点,1.一体化2.高度非过程化3.简洁4.使用方式多样,3.1.3 SQL语言功能概述,四部分:数据定义功能、数据控制功能、数据

3、查询功能和数据操纵功能。,3.2 SQL的数据类型,数值型 字符串型日期时间型货币型,数值型,准确型 整数Bigint:8字节,Int:4字节Smallint:2字节,Tinyint:1字节 Bit:1位,存储1或0小数Numeric(p,q)或Decimal(p,q),其中:p为数字位长度,q:小数位长度。近似型 Float:8字节 Real:4字节,字符串型,普通编码字符串类型统一字符编码字符串类型二进制字符串类型,普通编码字符串类型,Char(n):定长存储,n=8000 Varchar(n):不定长存储(按实际长度存储),长度最大不超过n,n=8000 注:n 为字符个数Text:存储

4、大于8000字节的文本,统一字符编码字符串类型,nchar(n):定长存储,n=4000 nvarchar(n):不定长存储,长度最大不超过n,n=4000 ntext:存储大于8000字节的文本特点:每个字符占两个字节,二进制字符串类型,Binary(n):固定长度,n=8000。Varbinary(n):可变长度,n 8000。注:n为二进制数据的字节数image:大容量、可变长二进制字符数据,可用于存储文件。,日期时间型,Datetime:8字节,年月日时分秒毫秒(例:2001/08/03 10:30:00.000)SmallDateTime:4字节,年月日时分(例:2001/08/03

5、 10:30:00)日期、时间的输入格式,货币类型,Money:8 个字节,精确到货币单位的千分之十。Smallmoney:4 个字节,精确到货币单位的千分之十。限制到小数点后 4 位。可以带有适当的货币符号。例如,100 英镑可表示为 100。,3.3 数据定义功能,3.3.1 基本表的定义与删除 3.3.2 修改表结构 3.3.3 数据完整性,3.3.1 基本表的定义与删除,1定义基本表 使用SQL语言中的CREATE TABLE语句实现,其一般格式为:CREATE TABLE(列级完整性约束定义,列级完整性约束定义,表级完整性约束定义),在列级完整性约束定义处可以定义的约束,NOT NU

6、LL:限制列取值非空。DEFAULT:给定列的默认值。UNIQUE:限制列取值不重。CHECK:限制列的取值范围。PRIMARY KEY:指定本列为主码。FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:FOREIGN KEY()REFERENCES(),几点说明,NOT NULL和DEFAULT只能是列级完整性约束;其他约束均可在表级完整性约束处定义。注意以下几点:第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;第二,如果表的主码由多个列组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:PRIMARY KEY(列1,列2);第三,

7、如果在表级完整性约束处定义外码,则“FOREIGN KEY()”部分不能省。,约束定义,列取值非空约束 NOT NULL例:sname char(10)NOT NULL,约束定义(续),表主码约束在定义列时定义主码(仅用于单列主码)列定义 PRIMARY KEY例:SNO char(7)PRIMARY KEY在定义完列时定义主码(用于单列或多列主码)PRIMARY KEY()例:PRIMARY KEY(SNO)PRIMARY KEY(SNO,CNO),约束定义(续),外码引用约束,指明本表外码列引用的表及表中的主码列。,FOREIGN KEY()REFERENCES(),例:FOREIGN K

8、EY(sno)REFERENCES 学生表(sno),创建学生表,CREATE TABLE Student(Sno char(7)PRIMARY KEY,Sname char(10)NOT NULL,Ssex char(2),Sage tinyint,Sdept char(20),创建课程表,CREATE TABLE Course(Cno char(10)NOT NULL,Cname char(20)NOT NULL,Ccredit tinyint,Semester tinyint,PRIMARY KEY(Cno),创建SC表,CREATE TABLE SC(Sno char(7)NOT NU

9、LL,Cno char(10)NOT NULL,Grade tinyint,XKLB char(4),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno),删除表,当确信不再需要某个表时,可以将其删除删除表时会将与表有关的所有对象一起删掉,包括表中的数据。删除表的语句格式为:DROP TABLE,例:删除test表的语句为:DROP TABLE test,3.3.2 修改表结构,在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用

10、ALTER TABLE语句实现。ALTER TABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。,修改表结构语法,ALTER TABLE ALTER COLUMN|ADD COLUMN|DROP COLUMN|ADD PRIMARY KEY(列名,n)|ADD FOREIGN KEY(列名)REFERNECES 表名(列名),示例,例2为SC表添加“修课类别”列,此列的定义为:XKLB char(4)ALTER TABLE SC ADD XKLB char(4)NULL,示例,例3将新添加的XKLB的类型改为 char(6)。ALTER TABLE SC

11、ALTER COLUMN XKLB char(6),示例,例3.删除Course表的Period列。ALTER TABLE Course DROP COLUMN Period,数据完整性,完整性约束条件的作用对象 实现数据完整性,完整性约束条件的作用对象,完整性检查是围绕完整性约束条件进行的,因此,完整性约束条件是完整性控制机制的核心。完整性约束条件的作用对象可以是表、元组和列。列级约束元组约束关系约束,列级约束,列级约束主要是对列的类型、取值范围、精度等的约束,具体包括:对数据类型的约束:包括数据类型、长度、精度等。对数据格式的约束:如规定学号的前两位表示学生的入学年份,第三位表示系的编号,

12、第四位表示专业编号,第五位代表班的编号等等。对取值范围的约束:如学生的成绩取值范围为0100。对空值的约束。,元组约束,元组的约束是元组中各个字段之间的联系的约束,如:开始日期小于结束日期,职工的最低工资不能低于规定的最低保障金。,关系约束,指若干元组之间、关系之间的联系的约束。比如:学号的取值不能重复也不能取空值,学生修课表中的学号的取值受学生表中的学号取值的约束,实现数据完整性,声明完整性 在表定义时声明 使用约束、缺省值(DEFAULT)等 由SQL Server自动加以保证 过程完整性 在客户端或服务器端用编程语言或工具实现 在Server端用触发器(trigger)来实现,实现约束,

13、1.PRIMARY KEY 约束2.UNIQUE 约束3.FOREIGN KEY 约束4.DEFAULT 约束5.CHECK 约束,PRIMARY KEY 约束,保证实体完整性 每个表有且只有一个PRIMARY KEY 约束 格式:ALTER TABLE 表名 ADD CONSTAINT 约束名 PRIMARY KEY(列名,n),示例,例:对雇员表和工作表分别添加主码约束。ALTER TABLE 雇员表 ADD CONSTRAINT PK_EMP PRIMARY KEY(雇员编号)ALTER TABLE 工作表 ADD CONSTRAINT PK_JOB PRIMARY KEY(工作编号),

14、UNIQUE 约束,确保在非主键列中不输入重复值。应用在客观具有唯一性质的列上,如身份证号、社会保险号等。格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(,n),示例,例为雇员表的“电话号码”列添加UNIQUE约束。ALTER TABLE 雇员表 ADD CONSTRAINT UK_SID UNIQUE(电话号码),FOREIGN KEY约束,用于建立和加强两个表数据之间的连接的一列或多列 格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY()REFERENCES 引用表名(),示例,例为雇员表的工作编号添加

15、外码引用约束,此列引用工作表的工作编号列。ALTER TABLE 雇员 ADD CONSTRAINT FK_job_id FOREIGN KEY(工作编号)REFERENCES 工作表(工作编号),DEFAULT约束,当向表中插入数据时,如果没有为定义了 DEFAULT 的列提供值,则是隐式要求为此列使用默认值。一个Default只能约束一列。格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 默认值 FOR 列名,示例,例定义雇员表的工资的默认值为1000。ALTER TABLE 雇员 ADD CONSTRAINT DF_SALARY DEFAULT 1

16、000 FOR 工资,CHECK约束,通过限制输入到列中的值来强制域的完整性。可定义同表多列之间的约束关系 格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK(逻辑表达式),示例1,例1在雇员表中,添加限制雇员的工资必须大于等于500的约束。ALTER TABLE 雇员 ADD CONSTRAINT CHK_SalaryCHECK(工资=500),示例2,例2添加限制工资表的最低工资小于等于最高工资的约束。ALTER TABLE 工作 ADD CONSTRAINT CHK_Job_Salary CHECK(最低工资=最高工资),综合起来,CREATE TABLE 工作(工作编号 char(8)PRIMARY KEY,最低工资 int,最高工资 int,CHECK(最低工资=500),电话号码 char(8)not null UNIQUE),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号