SQL语言-第1-2节.ppt_第1页
SQL语言-第1-2节.ppt_第2页
SQL语言-第1-2节.ppt_第3页
SQL语言-第1-2节.ppt_第4页
SQL语言-第1-2节.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 关系数据库语言SQL,数据库原理及应用,教学内容,SQL的功能与特点 表的基本操作 SQL的数据查询 SQL的视图操作,第1讲 SQL的功能与特点,第3章 关系数据库语言SQL,主要内容,SQL的产生和发展 SQL的功能 SQL的特点,一、SQL的产生和发展,1972年,IBM公司开始研制实验型关系数据库管理系统SYSTEM R,配制的查询语言称为SQUARE(Specifying Queries As Relational Expression)语言,在语言中使用了较多的数学符号。 1974年,Boyce和Chamberlin将SQUARE修改为SEQUEL(Structured English Query Language)语言。这两个语言在本质上是相同的,但后者去掉了一些数学符号,并采用英语单词表示和结构式的语法规则,看起来很像英语句子,用户比较欢迎这种形式的语言。后来SEQUEL简称为SQL(Structured Query Language),即“结构化查询语言”。,一、SQL的产生和发展(续),1986年10月,美国国家标准化协会(ANSI)发布了ANSI文件X3.135-1986数据库语言SQL,1987年6月国际标准化组织(ISO)采纳其为国际标准。“SQL86” 。 1989年10月“SQL89”; 1992年8月“SQL2(SQL92)”标准。 1999年“SQL3(SQL99)”。 SQL成为国际标准后,由于各种类型的计算机和DBS都采用SQL作为其存取语言和标准接口,从而使数据库世界有可能链接为一个统一的整体,这个前景意义十分重大。,二、SQL的功能,1、数据定义功能:定义数据库的逻辑结构,包括基本表、视图、索引等。 2、数据操作功能:数据查询和数据更新。 3、数据控制功能: 包括用户授权、基本表和视图的授权、事务控制、数据完整性和安全性控制等。,三、SQL的特点,1、工作方式 交互式命令方式:在联机终端上,通过直接输入SQL命令对数据库进行操作; 嵌入式工作方式:通过嵌入到高级语言程序中实现对数据库的操作。,2、SQL支持数据库的三级模式结构,第2节 表的基本操作,第3章 关系数据库语言SQL,主要内容,基本表的定义 基本表的修改 表的撤消 数据插入、修改与删除,CREATE TABLE ( , , , , );,不能与SQL语言中的保留字同名 不能与其它表名或视图名同名 是以字母开头,由字母、数字和下划线“_”组成的字符串,长度不超过30个字符。,一、基本表的定义,一个表可以有若干列,但至少要有一列。 每一列必须有一个列名和相应的数据类型。 同一表中的列名不能重名。,指定基本表中属性的取值特性和范围,所谓“完整性约束”是为保护数据库中的数据所作的各种检查或数据应满足的约束条件。,当不选择该项时,默认值为NULL,表示该列可以为空值。 当选择该项时,由用户根据各属性列的数据特点和要求给出该列数据的完整性约束条件:NULL|NOT NULL|PRIMARY KEY|DEFAULT |CHECK|UNIQUE|NOT NULL UNIQUE,由用户根据表中各属性列数据的特点和要求给出所在表的数据的约束条件。 包括:表的主键约束子句、表的外键约束子句和表的检验约束CHECK子句。,示例:教学管理数据库系统中的学习关系SC,CREATE TABLE SC (S# CHAR(9), C# CHAR(7), GRADE INT ); 列名 数据类型,示例:学习关系SC的创建语句,定义方式 如果表中只有一个列是主键时,可在基本表定义的处,标识相应的约束关键字,说明某个属性是主键或候选键。 例:教学管理数据库系统中的专业关系SS CREATE TABLE SS (SCODE# CHAR(5) PRIMARY KEY, SSNAME VARCHAR(30) NOT NULL);,1、主键约束,1、主键约束(续), 如果表的主键由一列或多列组成,在基本表定义的处,通过键约束子句说明某个特定的属性或属性集构成主键或候选键。 PRIMARY KEY( ,),1、主键约束(例),例:教学管理数据库系统中的学习关系SC。 CREATE TABLE SC (S# CHAR(9), C# CHAR(7), GRADE INT, PRIMARY KEY(S#,C#);,2、外键约束,外键可以在基本表定义的处,通过外键约束子句进行说明。 FOREIGN KEY() REFERENCES () 必须说明第二个关系中的参照属性为该关系的主键 出现在第一个关系的外键中的任何值也必须出现在第二个关系的相应属性中,即存在着连接这两个属性或属性集的参照完整性约束,CREATE TABLE SC (S# CHAR(9), C# CHAR(7), GRADE INT, PRIMARY KEY(S#,C#), FOREIGN KEY(S#) REFERENCES S(S#), FOREIGN KEY(C#) REFERENCES C(C#);,示例:教学管理数据库系统中的学习关系SC,2、外键约束(例),3、CHECK约束,CHECK约束是用来指定某一个属性或多个属性可以满足的条件,可以在基本表定义的或进行说明 CHECK(),CREATE TABLE S (S# CHAR(9) PRIMARY KEY, SNAME CHAR(10) NOT NULL, SSEX CHAR(2) CHECK(SSEX IN (男,女), SBIRTHIN DATE NOT NULL, PLACEOFB CHAR(16), SCODE CHAR(5) NOT NULL, CLASS CHAR(5) NOT NULL);,示例:教学管理数据库系统中的学生关系S,3、CHECK约束(例),示例:教学管理数据库系统中的学习关系SC,CREATE TABLE SC (S# CHAR(9), C# CHAR(7), GRADE INT, PRIMARY KEY(S#,C#), FOREIGN KEY(S#) REFERENCES S(S#), FOREIGN KEY(C#) REFERENCES C(C#), CHECK(GRADE BETWEEN 0 AND 100);,3、CHECK约束(例),4、缺省值约束,用关键字DEFAULT说明,用于给所在的列设置一个缺省值,即在插入一个新记录时,如果带有DEFAULT选项的列没有数据,就将缺省值作为该列的数据。 DEFAULT(),示例:教学管理数据库系统中的学习关系SC,CREATE TABLE SC (S# CHAR(9), C# CHAR(7), GRADE INT DEFAULT(0), PRIMARY KEY(S#,C#), FOREIGN KEY(S#) REFERENCES S(S#), FOREIGN KEY(C#) REFERENCES C(C#), CHECK(GRADE BETWEEN 0 AND 100));,4、缺省值约束(例),5、非空约束,使用关键字NOT NULL说明,用于指出某属性列不能为空值。 每一个表中至少应有一个列的可选项为NOT NULL 主键列已隐含可选项为NOT NULL,示例:教学管理数据库系统中的学生关系S,CREATE TABLE S (S# CHAR(9) PRIMARY KEY, SNAME CHAR(10) NOT NULL, SSEX CHAR(2) CHECK(SSEX IN (男,女), SBIRTHIN DATE NOT NULL, PLACEOFB CHAR(16), SCODE CHAR(5) NOT NULL, CLASS CHAR(5) NOT NULL);,5、非空约束(例),二、基本表的修改,1、改变表名 修改表名的语句格式为: RENAME TO ; 例:将SS表改名为SS1。 RENAME SS TO SS1;,2、增加列,在表的最后一列后面增加新的一列: ALTER TABLE ADD ; 例:给学生表新增一个属性“民族”,数据类型为CHAR(10)。 ALTER TABLE S ADD nationality CHAR(10);,3、删除列,删除表中不再需要的列,格式为: ALTER TABLE DROP CASCADE|RESTRICT; CASCADE表示所有引用到该列的视图或有关约束一并删除; RESTRICT表示在没有视图或有关约束引用时,该列才能被删除,否则拒绝操作。 例:删除教师表T中的出生年月。 ALTER TABLE T DROP TBIRTHIN RESTRICT;,4、修改列的定义,修改列的定义,包括列的类型、长度,格式为: ALTER TABLE MODIFY ; 例:将专业表SS中的专业名称列长度由30改为40。 ALTER TABLE SS MODIFY SSNAME VARCHAR(40);,三、表的撤消,将不需要的表或定义错误的表删除掉,格式为: DROP TABLE CASCADE|RESTRICT; 当一个表被撤消时,该表中的数据也一同被删除。,指出哪些列需要插入数据,指出要插入的列的具体值,四、数据插入、修改与删除,1、数据插入 向表中插入一行(单元组)数据。 INSERT INTO () VALUES();,可省,1、数据插入 示例,给学习关系SC中插入王丽丽同学(学号为 200401003)学习计算机网络课(课程号为 C403001)的成绩(89分)。 INSERT INTO SC(S#,C#,GRADE) VALUES(200401003,C403001,89);,2、数据修改,UPDATE SET , , , WHERE ;,2、数据修改 示例,将所有女同学的专业改为S0404 UPDATE S SET SCODES0404 WHERE SSEX女;,3、数据删除,DELETE FROM WHER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论