数据库数据的定义(SQL语言)课件

上传人:29 文档编号:241934600 上传时间:2024-08-06 格式:PPT 页数:43 大小:219.82KB
返回 下载 相关 举报
数据库数据的定义(SQL语言)课件_第1页
第1页 / 共43页
数据库数据的定义(SQL语言)课件_第2页
第2页 / 共43页
数据库数据的定义(SQL语言)课件_第3页
第3页 / 共43页
点击查看更多>>
资源描述
第二章 关系数据库1 关系数据结构及形式化定义关系数据结构及形式化定义2 数据的定义(数据的定义(SQL语言)语言)3关系的完整性关系的完整性4关系操作关系操作第二章 关系数据库1 关系数据结构及形式化定义1关系数据的定义lSQL语言l数据的定义关系数据的定义2SQL概述lSQL(Structured Query Language)结构化查询语言,是关系数据库的标准语言lSQL是一个通用的、功能极强的关系数据库语言SQL概述SQL(Structured Query Lang3SQL语言功能概述四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。SQL语言功能概述四部分:数据定义功能、数据控制功能、数据查4二、数据类型lSQL中域的概念用数据类型来实现l定义表的属性时 需要指明其数据类型及长度 l选用哪种数据类型 n取值范围 n要做哪些运算 二、数据类型SQL中域的概念用数据类型来实现5二、数据类型数据数据类型型含含义CHAR(n)长度度为n的定的定长字符串字符串VARCHAR(n)最大最大长度度为n的的变长字符串字符串INT长整数(也可以写作整数(也可以写作INTEGER)SMALLINT短整数短整数NUMERIC(p,d)定点数,由定点数,由p位数字(不包括符号、小数点)位数字(不包括符号、小数点)组成,小数后面有成,小数后面有d位位数字数字REAL取决于机器精度的浮点数取决于机器精度的浮点数Double Precision取决于机器精度的双精度浮点数取决于机器精度的双精度浮点数FLOAT(n)浮点数,精度至少浮点数,精度至少为n位数字位数字DATE日期,包含年、月、日,格式日期,包含年、月、日,格式为YYYY-MM-DDTIME时间,包含一日的时、分、秒,格式为时间,包含一日的时、分、秒,格式为HH:MM:SS二、数据类型数据类型含义CHAR(n)长度为n的定长字符串V6数据定义 SQL的数据定义功能:模式定义、表定义、视图和索引的定义 数据定义 SQL的数据定义功能:模式定义、表定义、视图和索7数据库的定义l数据库定义的语法格式:lCREATE DATABASE 例:创建一个学生选课数据库,取名为StudentInfo关键字CREATE DATABASE StudentInfo 数据库的定义数据库定义的语法格式:例:创建一个学生选课数据库8数据库的删除l数据库删除的语法格式:lDROP DATABASE 例:将数据库StudentInfo删除关键字DROP DATABASE StudentInfo 数据库的删除数据库删除的语法格式:例:将数据库Student9定义基本表 使用SQL语言中的CREATE TABLE语句实现,其一般格式为:CREATE TABLE (列级完整性约束定义,列级完整性约束定义 ,表级完整性约束定义 )定义基本表10学生学号姓名性别系别年龄课程选课课程号课程名学分成绩关系模式学生学号姓名性别系别年龄课程选课课程号课程名学分成绩关系模式11关系模式l学生(学号,姓名,性别,年龄,所在系)l课程(课程号,课程名,学分)l选课(学号,课程号,成绩)关系模式学生(学号,姓名,性别,年龄,所在系)12关系列名说明数据类型约束说明Sno学号字符串,长度为10主键Sname姓名字符串,长度为8非空值Ssex性别字符串,长度为1非空值Sage年龄整数允许空值Sdept所在系字符串,长度为15非空值列名说明数据类型约束说明Cno课程号字符串,长度为6主键Cname课程名字符串,长度为20非空值Credits学分整数允许为空值列名说明数据类型约束说明Sno学号字符串,长度为10主键Cno课程号字符串,长度为6主键Grade成绩整数允许为空值Courses表students表 SC表关系列名说明数据类型约束说明Sno学号字符串,长度为10主键13学生学生表Student例5 建立“学生”表Student,学号是主码。CREATE TABLE Student (Sno CHAR(10)PRIMARY KEY,/*列级完整性约束条件*/Sname CHAR(8),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(15);主码主码学生表Student例5 建立“学生”表Student14课程表Course 例6 建立一个“课程”表Course CREATE TABLE Course (Cno CHAR(6)PRIMARY KEY,Cname CHAR(20),Ccredit SMALLINT,);课程表Course 例6 建立一个“课程”表Course15学生选课表SC 例例7 建立一个建立一个“学生选课学生选课”表表SCSCCREATE TABLE SC (Sno CHAR(10),Cno CHAR(6),Grade SMALLINT,PRIMARY KEY(Sno,Cno),);如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。学生选课表SC例7 建立一个“学生选课”表SC如果完整16在列级完整性约束定义处可以定义的约束NOT NULL:限制列取值非空。PRIMARY KEY:指定本列为主码。FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:FOREIGN KEY()REFERENCES()UNIQUE:限制列取值不重复。CHECK:限制列的取值范围。DEFAULT:给定列的默认值。在列级完整性约束定义处可以定义的约束NOT NULL:限制列17约束定义l 列取值非空约束 NOT NULL例:sname char(10)NOT NULL约束定义 列取值非空约束18约束定义(续)l 表主码约束表主码约束l在定义列时定义主码(仅用于单列主码)列定义 PRIMARY KEY例:SNO char(7)PRIMARY KEYl在定义完列时定义主码(用于单列或多列主码,表级约束)PRIMARY KEY()例:PRIMARY KEY(SNO)PRIMARY KEY(SNO,CNO)约束定义(续)表主码约束19约束定义(续)外码引用约束外码引用约束l指明本表外码列引用的表及表中的主码列。FOREIGN KEY()REFERENCES()例:FOREIGN KEY(sno)REFERENCES 学生表(sno)约束定义(续)外码引用约束指明本表外码列引用的表及表中的主20约束定义(续)l默认值约束默认值约束l格式:DEFAULT 默认值l例:定义系的默认值为“计算机系”。DEFAULT 计算机系约束定义(续)默认值约束21约束定义(续)lCHECKCHECK约束约束l格式:CHECK(约束表达式)l例:定义成绩大于等于0。CHECK(grade=0)约束定义(续)CHECK约束22约束定义(续)lUNIQUEUNIQUE约束约束l在列级约束定义(仅用于单列约束)列定义 UNIQUE例:SNAME char(7)UNIQUEl在表级约束定义(用于单列或多列组合约束)UNIQUE()例:UNIQUE(SNO,CNO)约束定义(续)UNIQUE约束23关系列名说明数据类型约束说明Sno学号字符串,长度为10主键Sname姓名字符串,长度为8取值唯一 Ssex性别字符串,长度为1取“男”或“女”Sage年龄整数取值范围为(15,45)Sdept所在系字符串,长度为15默认值“计算机系”列名说明数据类型约束说明Cno课程号字符串,长度为6主键Cname课程名字符串,长度为20非空值Credits学分整数取值范围为(0,20)列名说明数据类型约束说明Sno学号字符串,长度为10外键,参照students的主键 Cno课程号字符串,长度为6外键,参照courses的主键 Grade成绩整数允许为空值Courses表students表 SC表主键为(Sno,Cno)关系列名说明数据类型约束说明Sno学号字符串,长度为10主键24创建学生表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 0),Semester int CHECK(Semester 0),Period int CHECK(Period 0),PRIMARY KEY(Cno)创建课程表CREATE TABLE Course(26练习lP74 5练习P74 527删除表l当确信不再需要某个表时,可以将其删除l删除表时会将与表有关的所有对象一起删掉,包括表中的数据。l删除表的语句格式为:DROP TABLE l例:删除test表的语句为:DROP TABLE test删除表当确信不再需要某个表时,可以将其删除28数据的定义l基本表的定义与删除 l修改表结构数据的定义29修改表结构 l在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABLE语句实现。lALTER TABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。修改表结构 在定义完表之后,如果需求有变化,比如添加列、删除30修改表结构语法ALTER TABLE ALTER COLUMN|ADD|DROP COLUMN|ADD PRIMARY KEY(列名,n )|ADD FOREIGN KEY(列名)REFERNECES 表名(列名)、|ADD DEFAULT默认值 FOR (列名)|ADD CHECK(约束表达式)修改表结构语法ALTER TABLE 31示例l例为SC表添加“修课类别”列,此列的定义为:XKLB char(4)只能为空,或默认,不能为NOT NULLALTER TABLE SC ADD XKLB char(4)NULL 示例例为SC表添加“修课类别”列,此列的定义为:XKLB 32示例l例3将新添加的XKLB的类型改为 char(6)。ALTER TABLE SC ALTER COLUMN XKLB char(6)示例例3将新添加的XKLB的类型改为ALTER TABLE33示例l例4删除Course表的XKLB列。ALTER TABLE Course DROP COLUMN XKLB 示例例4删除Course表的XKLB列。ALTER TA34例题l将SC表中的Cno设置为course表中Cno列的外码例题将SC表中的Cno设置为course表中Cno列的外码35练习l按下面要求用SQL语句修改表结构l在Students表中插入学生宿舍号一列,定义为:Room char(6)l为Students表中Sage列添加检查约束,要求Sage的取值范围为(15,45)l将Courses表中的Cname的字符串长度改为16l将Courses表中的Cname的取只设置为唯一取值l删除Students表中学生宿舍号列l为SC表中Grade列添加检查约束,要求Grade的取值范围为0,100练习按下面要求用SQL语句修改表结构36数据完整性约束 l数据完整性是指数据库中存储的数据是有意义的或正确的。主要包括三大类:主要包括三大类:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性数据完整性约束 数据完整性是指数据库中存储的数据是有意义的或37实体完整性实体完整性l l实实体体完完整整性性是是保保证证关关系系中中的的每每个个元元组组都是可识别的和惟一的。都是可识别的和惟一的。l l l而且表中不允许存在如下的记录而且表中不允许存在如下的记录:无主码值的记录无主码值的记录主码值相同的记录主码值相同的记录实体完整性实体完整性是保证关系中的每个元组都是可识别的和惟一38参照完整性参照完整性l l用于描述实体之间的联系。用于描述实体之间的联系。l l参照完整性一般是指多个实体(表)之间的参照完整性一般是指多个实体(表)之间的关联关系。关联关系。l l一般用一般用外码外码实现。实现。外码:取作本表(子表)属性之一的外表(父表,主表)外码:取作本表(子表)属性之一的外表(父表,主表)外码:取作本表(子表)属性之一的外表(父表,主表)外码:取作本表(子表)属性之一的外表(父表,主表)主码。主码。主码。主码。l l主码值先在主表中生成,后在子表中引用主码值先在主表中生成,后在子表中引用参照完整性用于描述实体之间的联系。39外码引用例学生课程修课(学号学号,姓名,姓名,)(课程号课程号,课程名,课程名,)(学号学号,课程号课程号,成绩成绩,)外码引用例学生课程修课(学号,姓名,)(课程号,课程名,40参照完整性规则l参照完整性规则就是定义外码与主码之间的引用规则。l对于外码,一般应符合如下要求:或者值为空;或者等于其所应用的关系中的某个元组的主码值。参照完整性规则参照完整性规则就是定义外码与主码之间的引用规则41用户定义的完整性用户定义的完整性l按应用语义,属性数据有:类型与长度限制:方便计算机操作方便计算机操作取值范围限制:防止属性值与应用语防止属性值与应用语义矛盾义矛盾用户定义的完整性按应用语义,属性数据有:42语义许可取值范围约束例:成绩取n0.100,n优、良、中、及格、不及格 语义许可取值范围约束例:成绩取43
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!