版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第 3 章 SQL语言基础及数据定义功能 3.1 基本概念3.2 SQL的数据类型3.3 数据定义功能 23.1 基本概念一、SQL语言特点 SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一身,其主要特点包括:一体化 高度非过程化简洁以多种方式使用3二、 SQL语言功能概述 SQL按其功能可分为四大部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。 Sql功能命令动词数据定义CREATE 、DROP 、ALTER数据查询SELECT数据操纵INSERT 、UPDATE 、DELETE数据控制GRANT 、REVOKE43.2 SQL的数据类型数值型 准确型:指在计算机中
2、能够精确存储的数 据。近似型:用于表示浮点型数据的近似数据 类型。 字符串型 字符串数据由汉字、英文字母、数字和各种符号组成。货币型5日期时间类型 输入日期时:Oct 25 2001 /*英文数字格式*/2001-10-15或2001/10/15 /*数字加分隔符格式*/20011020 /*纯数字格式*/输入时间时:2001-10-15 3:22:45 PM /*12小时格式*/2001-10-15 15:22:45 /*24小时格式*/63.3 数据定义功能 一、基本表的定义与删除 1、定义基本表 一般格式为 : CREATE TABLE ( 列级完整性约束定义 , 列级完整性约束定义 ,
3、 表级完整性约束定义 )7其中:所要定义的基本表的名字。:表中所包含的属性列的名字。指明列的数据类型。 在定义表的同时可以定义与表有关的完整性约束条件。如果完整性约束只涉及到表中的一个列,则可以在列级完整性约束定义处定义,也可以在表级完整性约束定义处定义;如果完整性约束条件涉及表中多个属性列,则必须在表级完整性约束定义处定义。8在列级完整性约束定义处可以定义如下约束:NOT NULL:限制列取值非空 DEFAULT:给定列的默认值,使用形式为: DEFAULT 常量UNIQUE:限制列取值不重 CHECK:限制列的取值范围,使用形式为: CHECK(约束表达式) PRIMARY KEY:指定本
4、列为主码 FOREIGN KEY:定义本列为引用其他表的外码。 使用形式为: FOREIGN KEY () REFERENCES () 9但有些约束必须在表级约束处定义:第一,如果CHECK约束是定义多列之间的取 值约束;第二,如果表的主码由多个列组成;第三,如果在表级完整性约束处定义外码, 则FOREIGN KEY和均不能省, 且必须用括号括起来。即: PRIMARY KEY (列1 ,列2) 10用SQL语句创建Student表列名 说明 数据类型 约束 Sno 学号 字符串,长度为7 主码 Sname 姓名 字符串,长度为10 非空 Ssex 性别 字符串,长度为2 取男或女 Sage
5、年龄 微整数 取值1545 Sdept 所在系 字符串,长度为20 默认为计算机系Student表结构CREATE TABLE Student ( Sno char ( 7 ) PRIMARY KEY, Sname char ( 10 ) NOT NULL, Ssex char (2) CHECK (Ssex = 男 OR Ssex = 女), Sage tinyint CHECK (Sage = 15 AND Sage =45), Sdept char (20 ) DEFAULT 计算机系 )11用SQL语句创建Course表列名 说明数据类型约束Cno 课程号 字符串,长度为10 主码 C
6、name 课程名 字符串,长度为20 非空 Ccredit 学分 微整数 Semster 学期 微整数 course表结构 CREATE TABLE Course ( Cno char(10) NOT NULL, Cname char(20) NOT NULL, Ccredit tinyint , Semester tinyint , PRIMARY KEY(Cno) ) 12用SQL语句创建SC表列名 说明 数据类型 约束 Sno 学号 字符串,长度为7 主码,引用Student的外码 Cno 课程名 字符串,长度为10 主码,引用Course的外码 Grade成绩小整数XKLB 修课类别字
7、符串,长度为4sc表结构 CREATE TABLE SC ( Sno char(7) NOT NULL, Cno char(10) NOT NULL, Grade smallint, XKLB char(4), PRIMARY KEY ( Sno, Cno ), FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ), FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) )132、删除表删除表的语句格式为: DROP TABLE , 例:删除test表的语句为: DROP TABLE test14二、修改表结构 Se
8、rver的ALTER TABLE语句的部分格式:ALTER TABLE ALTER COLUMN |ADD 属性|DROP COLUMN |ADD constraint 约束名 约束定义|DROP constraint 约束名 15例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 COL
9、UMN Period16三、数据完整性 数据完整性是指数据的正确性和相容性。为了防止数据库中存在不符合语义的数据,为了维护数据的完整性,数据库管理系统必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件就是数据完整性约束条件。而DBMS检查数据是否满足完整性条件的机制就称为完整性检查。 171、完整性约束条件的作用对象 完整性约束条件的作用对象可以是表、元组和列。(1)列级约束对数据类型的约束:包括数据类型、长度、精度等。对数据格式的约束:如规定学号的前两位表示学生的入学年份,第三位表示系的编号,第四位表示专业编号,第五位代表班的编号等等。对取
10、值范围或取值集合的约束:如学生的成绩取值范围为0100。对空值的约束:列是否允许为空。18(2)元组约束 元组的约束是元组中各个字段之间的联系的约束,如:借阅日期 应还日期。(3)关系约束 关系约束是指若干元组之间、关系之间的联系的约束。比如学号的取值不能重复也不能取空值,学生修课表中的学号的取值受学生表中的学号取值的约束等。192、实现数据完整性 实现完整性一般是在服务器端完成的。方法有两种:一种是在定义表时声明数据完整性;另一种是在服务器编写触发器来实现。 实体完整性(PRIMARY KEY) 引用完整性(FOREIGN KEY) 用户定义的完整性,包括: 默认值(DEFAULT)约束 列
11、值取值范围(CHECK)约束 惟一值约束(UNIQUE)20 以雇员表和工作表为例,在这两张表上添加约束。这两张表的结构如下: 雇员表 ( 雇员编号 字符型 长度为7 非空, 雇员名 字符型,长度为10, 工作编号 字符型,长度为8, 工资 整型, 电话 字符型,长度为8 非空) 工作表 ( 工作编号 字符型,长度为8,非空, 最低工资 整型, 最高工资 整型 )21 (1)主码约束 a、每个表只能有一个; b、用PRIMARY KEY约束的列取值不能有重复,而且不允许有空值; 添加主码约束的语法格式为: ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KE
12、Y ( , n ) 例1:对雇员表和工作表分别添加主码约束。 ALTER TABLE 雇员表 ADD CONSTRAINT PK_EMP PRIMARY KEY (雇员编号) ALTER TABLE 工作表 ADD CONSTRAINT PK_JOB PRIMARY KEY (工作编号)22 (2)UNIQUE约束 用于限制在一个列中不能有重复的值。 定义UNIQUE约束时注意如下事项: 允许有一个空值; 在一个表中可以定义多个UNIQUE约束; 可以在一个列或多个列上定义UNIQUE约束; 添加UNIQUE约束的语法格式为: ALTER TABLE 表名 ADD CONSTRAINT 约束名
13、 UNIQUE( , n ) 例2为雇员表的“电话”列添加UNIQUE约束。 ALTER TABLE 雇员表 ADD CONSTRAINT UK_SID UNIQUE(电话)23(3)外码约束 外码约束实现了引用完整性。 添加FOREIGN KEY约束的语法格式为: ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY() REFERENCES 引用表名() 例3为雇员表的工作编号添加外码引用约束,此列引用工作表的工作编号列。 ALTER TABLE 雇员 ADD CONSTRAINT FK_job_id FOREIGN KEY (工作编号) REFERENCES 工作表 (工作编号) 24 (4)DEFAULT约束 DEFAULT约束用于提供列的默认值。 添加DEFAULT约束的语法格式为: ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 默认值 FOR 列名 例4定义雇员表的工资的默认值为1000。 ALTER TABLE 雇员 ADD CONSTRAINT DF_SALARY DEFAULT 1000 FOR 工资25 (5)CHECK约束 用于限制列的取值在指定的范围内。可约束同一个表中多个列之间的取值关系。 添加CHECK约束的语法格式为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- NB/T 11540-2024煤和岩石耐磨性测定方法
- 2025届宁夏吴忠市高三上学期适应性考试(一模)历史试题(解析版)
- 《社区自治》课件
- 单位管理制度集合大全职员管理篇
- 单位管理制度汇编大全【人力资源管理】
- 单位管理制度合并选集人事管理
- 单位管理制度分享合集【人事管理】十篇
- 单位管理制度范例汇编【人力资源管理篇】十篇
- 单位管理制度呈现大全【人力资源管理篇】十篇
- 七年级英语Whatwouldyouliketohave课件
- 2025年妇产科工作计划
- 《寒假安全教育班会》课件模板四套
- (T8联考)2025届高三部分重点中学12月第一次联考 生物试卷(含答案详解)
- 2024年世界职业院校技能大赛高职组“关务实务组”赛项参考试题库(含答案)
- 报关税费代缴服务合同
- 耐火材料行业竞争格局分析(如市场份额、竞争优劣势等)
- 仅销售预包装食品经营者备案信息采集表
- 信息化工程建设项目可行性研究报告编制要求
- 床旁教学方法
- 2024湖南株洲攸县城关国家粮食储备库员工招聘2人历年高频难、易错点500题模拟试题附带答案详解
- 尘埃粒子95%置信上限UCL计算公式
评论
0/150
提交评论