文档详情

-数据库原理与应用第二版-第4章SQL语言基础与数据定义功能.ppt

发布:2017-06-24约字共28页下载文档
文本预览下载声明
第 4章 SQL语言基础及数据定义功能 ;4.1 基本概念;4.1.3 SQL语言功能概述 ;4.2 SQL的数据类型;;4.2.3 日期时间类型 专门的日期时间类型,格式为月/日/年 时:分:秒。有两种: Datetime和smalldatetime两种。 Datetime能表示:占用8个字节空间,1753年至9999年。 Smalldatetime能表示:占用4个字节空间,1900年到2079年。 输入日期时: Oct 25 2001 /*英文数字格式*/ 2001-10-15或2001/10/15 /*数字加分隔符格式*/ /*纯数字格式*/ 输入时间时: 2001-10-15 3:22:45 PM /*12小时格式*/ 2001-10-15 15:22:45 /*24小时格式*/ ;4.3 数据定义功能 ;其中: 表名:所要定义的基本表的名字。 列名:表中所包含的属性列的名字。 数据类型指明列的数据类型。 在定义表的同时可以定义与表有关的完整性约束条件。如果完整性约束只涉及到表中的一个列,则可以在列级完整性约束定义处定义,也可以在表级完整性约束定义处定义;如果完整性约束条件涉及表中多个属性列,则必须在表级完整性约束定义处定义。;在列级完整性约束定义处可以定义如下约束: NOT NULL:限制列取值非空 DEFAULT:给定列的默认值,使用形式为: DEFAULT 常量 UNIQUE:限制列取值不重 CHECK:限制列的取值范围,使用形式为: CHECK(约束表达式) PRIMARY KEY:指定本列为主码 FOREIGN KEY:定义本列为引用其他表的外码。 使用形式为: [FOREIGN KEY (列名)] REFERENCES 外表名(外表列名) ;但有些约束必须在表级约束处定义: 第一,如果CHECK约束是定义多列之间的取 值约束; 第二,如果表的主码由多个列组成; 第三,如果在表级完整性约束处定义外码, 则FOREIGN KEY和列名均不能省, 且列名必须用括号括起来。即: PRIMARY KEY (列1 {[,列2]…}) ;用SQL语句创建Student表;用SQL语句创建Course表;用SQL语句创建SC表;2、删除表 删除表的语句格式为: DROP TABLE 表名 {[,表名] … } 例:删除test表的语句为: DROP TABLE test;4.3.2 修改表结构 Server的ALTER TABLE语句的部分格式: ALTER TABLE 表名 [ALTER COLUMN 列名 新数据类型] |[ADD 列名 数据类型 [属性] |[DROP COLUMN 列名 ] |[ADD constraint 约束名 约束定义] |[DROP constraint 约束名 ];例1.为SC表添加“修课类别”列,此列的定义为:XKLB char(4) ALTER TABLE SC ADD XKLB char(4) NULL 例2.将新添加的XKLB的类型改为char(6)。 ALTER TABLE SC ALTER COLUMN XKLB char(6) 例3.删除Course表的Period列 ALTER TABLE Course DROP COLUMN Period;4.4 数据完整性;4.4.1 完整性约束条件的作用对象 完整性约束条件的作用对象可以是表、元 组和列。 (1)列级约束 对数据类型的约束:包括数据类型、长度、精度等。 对数据格式的约束:如规定学号的前两位表示学生的入学年份,第三位表示系的编号,第四位表示专业编号,第五位代表班的编号等等。 对取值范围或取值集合的约束:如学生的成绩取值范围为0~100。 对空值的约束:列是否允许为空。;(2)元组约束 元组的约束是元组中各个字段之间的联系 的约束,如:借阅日期 应还日期。 (3)关系约束 关系约束是指若干元组之间、关系之间的 联系的约束。比如学号的取值不能重复也不能 取空值,学生修课表中的学号的取值受学生表 中的学号取值的约束等。;4.4.2 实现数据完整性 实现完整性一般是在服务器端完成的。 方法有两种:一种是在定义表时声明数据完整 性;另一种是在服务器编写触发器来实现。 实体完整性(PRIMARY KEY) 引用完整性(FOREIGN KE
显示全部
相似文档