预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共265页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1234567891011121314151617修改基本表 SQL语言用ALTERTABLE语句修改基本结构表,其一般格式为: ALTERTABLE<表名> [ADD<新列名><数据类型>[完整性约束]] [DROP<完整性约束名>] [ALTERCOLUMN<列名><数据类型>]; 其中<表名>是要修改的基本表。 ADD子句用于增加新列和新的完整性约束条件; DROP子句用于删除指定的完整性约束条件; ALTERCOLUMN 子句用于修改原有的列定义。包括修改列名和数据类型。 例4.5向S表增加“入学时间”列,其数据类型为日期型。 ALTERTABLESADDS_ENTRANCEDATE; 不论基本表中原来是否已有数据,新增加的列一律为空值。1920完整性约束条件*22233)域完整性 域完整性:向表中添加的数据必须与数据类型、格式及有效的数据长度相匹配。 实现域完整性的方法:CHECK约束、外键约束、默认约束、非空定义、规则以及在建表时设置的数据类型 4)用户定义的完整性 用户定义的完整性:是根据具体的应用领域所要遵循的约束条件由用户自己定义的特定的规则。25262728293031323334外键约束说明SSMS设置外键约束383940414243444546474849505152SSMS创建惟一约束545556SSMS中设置默认值约束58596061626364使用SSMS创建\删除CHECK约束6667686970717273742、建立索引 在SQL语言中,建立索引使用CREATEINDEX语句,其一般格式为: CREATE[UNIQUE][CLUSTERED]INDEX<索引名> ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…); 索引可以建立在该表的一列或多列上,各列名之间用逗号分隔。每个<列名>后面还可以用<次序>指定索引值的排列次序,可选ASC(升序,默认是升序)或DESC(降序)。 UNIQUE表明此索引的每一个索引值只对应唯一的数据记录。 CLUSTERED表示要建立的索引是聚簇索引,所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。767778798081SSMS创建索引8384858687888990若一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码,我们称这类视图为行列子集视图。 例4.15建立信息系选修了1号课程的学生的视图。 CREATEVIEWIS_S2(SNO,SNAME,GRADE)AS SELECTS.SNO,SNAME,GRADE FROMS,SC WHERESDEPT=’IS’ANDS.SNO=SC.SNOANDSC.CNO=’1’; 由于视图IS_S2的属性列中包含了S表与SC表的同名列SNO,所以必须在视图名后面明确说明视图的各个属性列名。 视图不仅可以建立在一个或多个基本表上,也可以建立在一个或多个已定义好的视图上,或建立在基本表与视图上。(例4.16)92939495969798991001011021032、SELECT语句完整的句法如下: SELECT目标表的列名或列表达式序列 FROM基本表名和(或)视图序列 [WHERE行条件表达式] [GROUPBY列名序列 [HAVING组条件表达式]] [ORDERBY列名[ASC|DESC],…]1051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391402、嵌套查询 在SQL语言中,一个SELECT─FROM─WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询(nestedquery)。 ⑴带有IN谓词的子查询 例4.59查询与“刘晨”在同一个系学习的学生。 先分步来完成此查询,然后再构造嵌套查询。142143144145146147148149需要配合使用比较运算符: >ANY 大于子查询结果中的某个值 >ALL 大于子查询结果中的所有值 <ANY 小于子查询结果中的某个值 <ALL 小于子查询结果中的所有值 >=ANY 大于等于子查询结果中的某个值 >=ALL 大于等于子查询结果中的所有值 <=ANY 小于等于子查询结果中的某个值 <=ALL 小于等于子查询结果中的所有值 =ANY 等于子查询结果中的某个值 =ALL等于子查询结果中的所有值(没有实际意义) !=(或<>)ANY 不等于子查询结果中的某个值 !=(或<>)ALL 不等于子查询结果中的任何一个值1511521531541551561571581591601611621