第5章 关系数据库标准语言——SQL
SQL概述及特点
SQL的数据定义功能
基本表的定义和维护功能
索引的定义和维护功能
视图的定义和维护功能
SQL的数成,其中(Sno, Cno)为主码。
方法一:CREATE TABLE SC(
Sno CHAR(5) ,
Cno CHAR(3) ,
Grade int,
Primary key (Sno, Cno))
方法二:CREATE TABLE SC1(
Sno CHAR(5) ,
Cno CHAR(3) ,
Grade int,
constraint a1 Primary key (Sno, Cno))
区别在于索引名
示例2
注意: Primary key 可以直接写在主码后,也可以单独列出!注意组合主码的定义!
例如:对于读者表,读者编号是主码
Dzbh char(10) primary key
或constraint d1 primary key(dzbh)
对于借阅表,编号和书号组合成为主码
constraint d2 primary key(bh,sh)
创建表n_jobs。要求定义一个标识列来表示员工号,初始值为1,递增量为1。
CREATE TABLE n_jobs
(
job_id smallint IDENTITY(1,1) PRIMARY KEY,
job_desc varchar(50) NOT NULL DEFAULT
'新部门,暂无职位'
)
表示新列是标识列。必须同时指定种子seed和增量increment,或者二者都不指定。如果二者都未指定,则取默认值(1,1)。
示例3
修改表的定义
格式:
alter table <表名>
[add <列名> <数据类型> [列级完整性约束条件]]
- -增加字段、主码、外码及其约束
[alter column <列名><数据类型>]
--修改字段属性
[drop constraint<完整性约束名>]
--删除约束、主码
示例4
--修改员工表中姓名字段的长度为20
alter table 员工表 alter column 姓名 varchar(20)
--增加员工表中身份证号字段,可变长字符型,宽度为18
alter table 员工表 add 身份证号 varchar(18)
--增加工资表的“本月应发”字段,并设置check约束,使本月应发>0
alter table 工资表 add 本月应发 money constraint 本月应发 check (本月应发>0)
--删除本月应发约束
alter table 工资表 drop constraint 本月应发
--增加工资表的主码
alter table 工资表 add constraint PK_序号 primary key (序号)
--删除工资表的主码
alter table 工资表 drop constraint PK_序号
--增加工资表的外码
alter table 工资表 add constraint FK_工资 foreign key (员工号) references 员工表(员工号)
--使员工表的年龄_性别约束无效和有效,无效即插入数据时不检查check约束
alter table 员工表 nocheck constraint 年龄_性别约束
alter table 员工表 check constraint 年龄_性别约束
删除表
格式:
drop table <表名>
例:drop table 员工表
问题:删除表是否有顺序?
危险
撤消基本表后,基本表的定义、表中数据、索引、以及由此表导出的视图的定义都被删除
索引
索引(index)是数据库中的一个列表,该列表包含了某个数据表中的一列或几列值的集合,以及这些值的记录在数据表中存储位置的物理地址。
当在数据库表中搜索某一行时,可以通过索引找到它的物理地址,从而提高对数据检索的效率。
索引是提高数据检索效率的重要技术手段。
聚集(聚簇、群集)索引:索引项的顺序和物理排序一致,一个表只允许同时有一个聚集索引。
非聚集索引:索引项的顺序独立于物理排序。
一般情况下,可以在下列情况建立索引:
(1)经常被查询的列。例如经常在WHERE子句中出现的列。
(2)ORDER
关系数据库标准语言——SQLPPT课件 来自淘豆网m.daumloan.com转载请标明出处.