- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章节联系数据库基准语言SQL 8
数据库原理及应用
Principle and Application of Database
第四章 关系数据库标准语言SQL;学习目标;4.1 SQL概述; 语言简洁,易学易用:完成核心功能只用9个动词:;4.2 数 据 定 义 ; [例1]建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、系别Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。
CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, Ssex CHAR(1) ,
Sage INT,Sdept CHAR(15)); ;修改基本表
ALTER TABLE 表名
[ ADD 新列名 数据类型 [ 完整性约束 ] ]
[ DROP 完整性约束名 ] [ DROP column 列名 ]
[ MODIFY 列名 数据类型 ];
其中:表名为要修改的基本表,ADD子句为增加新列和新的完整性约束条件,DROP子句为删除指定的完整性约束条件,MODIFY子句为用于修改列名和数据类型。
[例2]向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE Student ADD Scome DATE;
不论基本表中原来是否已有数据,新增加的列一律为空值。?;[例3]将年龄的数据类型改为半字长整数。
ALTER TABLE Student MODIFY Sage SMALLINT;
修改原有的列定义有可能会破坏已有数据。
[例4]删除学生姓名必须取唯一值的约束。
ALTER TABLE Student DROP UNIQUE(Sname);
SQL没有提供删除属性列的语句,用户只能间接实现这一功能:先把表中要保留的列及其内容复制到一个新表中,然后删除原表,再将新表重命名为原表名。但有的DBMS提供直接删除属性列的语句,如:ALTER TABLE Student Drop Scome;; ;建立索引
CREATE [UNIQUE] [CLUSTER] INDEX 索引名
ON 表名(列名[次序][,列名[次序] ]…);
用表名指定要建索引的基本表。
索引可以建立在该表的一列或多列上,各列名之间用逗号分隔
用次序指定索引值的排列次序,升序ASC,降序DESC。缺省ASC。
UNIQUE表明此索引的每一个索引值只对应唯一的数据记录。
CLUSTER表示要建立的索引是聚簇索引。
[例6]为学生-课程数据库中Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); ;唯一索引:对于已含重复值的属性列不能建UNIQUE索引,对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值,这相当于增加了一个UNIQUE约束。
聚簇索引:建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放,即聚簇索引的索引项顺序与表中记录的物理顺序一致。
例:CREATE CLUSTER INDEX Stusname ON Student(Sname);
在Student表的Sname列上建立一个聚簇索引,而且Student表中的记录将按照Sname值的升序存放。在一个基本表上最多只能建立一个聚簇索引,聚簇索引对于某些类型的查询,可以提高查询效率,聚簇索引在很少对基表进行增删操作或很少对其中的变长列进行修改操作的场合下非常适用。;删除索引
DROP INDEX 索引名;
删除索引时,系统会从数据字典中删去有关该索引的描述。
[例7]删除Student表的Stusname索引。
DROP INDEX Stusname;;4.3 查询; Student;单表查询:查询仅涉及一个表,是一种最简单的查询操作。
选择表中的若干列
查询指定列或全部列
[例1]查询全体学生的学号与姓名。
SELECT Sno,Sname FROM Student;?
[例2]查询全体学生的姓名、学号、所在系。
SELECT Sname,Sno,Sdept FROM
文档评论(0)