计算机多媒体技术课件2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章SQL语言基础及数据定义功能3.1SQL语言概述3.2SQL语言支持的数据类型3.3数据定义功能3.4索引概述SQL(StructuredQueryLanguage)是用户操作关系数据库的通用语言。它包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。SQL已经成为关系数据库的标准语言,现在所有的关系数据库管理系统都支持SQL。3.1SQL语言概述3.1.1SQL语言的发展3.1.2SQL语言的特点3.1.3SQL语言功能概述3.1.1SQL语言的发展1986年10月由美国ANSI公布最早的SQL标准。1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89(SQL1)。1992年11月,ISO又公布了新的SQL标准,称为SQL-92(以上均为关系形式)(SQL2)。1999年颁布SQL-99(SQL3),是SQL92的扩展。3.1.2SQL语言的特点1.一体化2.高度非过程化3.简洁4.使用方式多样3.1.3SQL语言功能概述SQL功能命令动词数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVOKE四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。SQL语言支持的数据类型(回顾)数值型字符串型日期时间型货币型数值型准确型整数Bigint:8字节,Int:4字节Smallint:2字节,Tinyint:1字节Bit:1位,存储1或0小数Numeric(p,q)或Decimal(p,q),其中:p为数字位长度,q:小数位长度。近似型Float:8字节Real:4字节字符串型普通编码字符串类型统一字符编码字符串类型二进制字符串类型普通编码字符串类型Char(n):定长存储,n=8000Varchar(n):不定长存储(按实际长度存储),长度最大不超过n,n=8000注:n为字符个数Text:存储大于8000字节的文本统一字符编码字符串类型nchar(n):定长存储,n=4000nvarchar(n):不定长存储,长度最大不超过n,n=4000ntext:存储大于8000字节的文本特点:每个字符占两个字节二进制字符串类型Binary(n):固定长度,n=8000。Varbinary(n):可变长度,n=8000。注:n为二进制数据的字节数image:大容量、可变长二进制字符数据,可用于存储文件。日期时间型Datetime:8字节,年月日时分秒毫秒(例:‘2008/02/0310:30:00.000’)SmallDateTime:4字节,年月日时分(例:‘2008/02/0310:30:00’)货币类型Money:8个字节,精确到货币单位的千分之十。Smallmoney:4个字节,精确到货币单位的千分之十。限制到小数点后4位。可以带有适当的货币符号。例如,100英镑可表示为£100。3.3数据定义功能3.3.1基本表3.3.2数据完整性约束3.3.1基本表定义基本表修改基本表删除基本表定义基本表使用CREATETABLE语句实现,语法格式:CREATETABLE表名(列名数据类型[列级完整性约束定义]{,列名数据类型[列级完整性约束定义]…}[,表级完整性约束定义])在列级完整性约束定义处可以定义的约束NOTNULL:限制列取值非空。DEFAULT:给定列的默认值。UNIQUE:限制列取值不重。CHECK:限制列的取值范围。PRIMARYKEY:指定本列为主键。FOREIGNKEY:定义本列为引用其他表的外键。使用形式为:[FOREIGNKEY(外键列名)]REFERENCES外表名(外表列名)几点说明NOTNULL和DEFAULT只能是列级完整性约束;其他约束均可在表级完整性约束处定义。注意以下几点:如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;如果表的主键由多个列组成,则也只能在表级完整性约束处定义,并将主键列用括号括起来,即:PRIMARYKEY(列1{[,列2]…});如果在表级完整性约束处定义外键,则“FOREIGNKEY(外键列名)”部分不能省。约束定义①列取值非空约束列名类型NOTNULL例:snamechar(10)NOTNULL约束定义(续)②表主键约束在定义列时定义主键(仅用于单列主键)列定义PRIMARYKEY例:SNOchar(7)PRIMARYKEY在定义完列时定义主键(用于单列或多列主键)PRIMARYKEY(列名序列)例:PRIMARYKEY(SNO)PRIMARYKEY(SNO,CNO)约束定义(续)③外键引用约束指明本表外键列引用的表及表中的主键列。[FOREIGNKEY(本表列名)]REFERENCES外表名(外表主键列名)例:FOREIGNKEY(sno)REFERENCES学生表(sno)Student表结构列名含义数据类型约束Sno学号CHAR(7)主码Sname姓名NCHAR(5)非空Ssex性别NCHAR(1)Sage年龄TINYINTSdept所在系NVARCHAR(20)定义Student表CREATETABLEStudent(SnoCHAR(7)PRIMARYKEY,SnameNCHAR(5)NOTNULL,SsexNCHAR(1),SageTINYINT,SdeptNVARCHAR(20))Course表结构列名含义数据类型约束Cno课程号CHAR(6)主键Cname课程名NVARCHAR(20)非空Ccredit学分TINYINTSemster学期TINYINT定义Course表CREATETABLECourse(CnoCHAR(6)PRIMARYKEY,CnameNVARCHAR(20)NOTNULL,CcreditTINYINT,SemesterTINYINT)SC表结构列名含义数据类型约束Sno学号CHAR(7)主键,引用Student的外键Cno课程号CHAR(6)主键,引用Course的外键Grade成绩TINYINT定义SC表CREATETABLESC(SnoCHAR(7)NOTNULL,CnoCHAR(6)NOTNULL,GradeTINYINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno))课内练习:P161/3注意:使用SQL语句创建教师表、课程表、授课表(创建过程中仅完成主键约束、外键约束、非空约束)练习1使用SQL语言实现“顾客用餐”设计属性名类型长度说明ID整型数主码,为了保证实体完整性而新增加的属性姓名字符串4非空(NotNull)住址字符串30属性名类型长度说明预定单编号整型数主码用餐时间日期时间顾客ID整型数参照顾客主码的外码,由此可以得到顾客的信息(姓名),非空(NotNull)顾客:预订单:练习1使用SQL语言实现“顾客用餐”设计台位:菜品:属性名类型长度说明台位编号整型数主码分类字符串2只能是“大厅”或“包间”两类预订单编号整型数参照预订单主码的外码属性名类型长度说明菜品名称字符串10主码类别字符串5内容字符串100练习1使用SQL语言实现“顾客用餐”设计厨房:生产:属性名类型长度说明厨房名称字符串10主码用途字符串50属性名类型长度说明厨房名称和菜品名称的整体为主码厨房名称字符串10参照厨房主码的外码,菜品名称字符串10参照菜品主码的外码练习1使用SQL语言实现“顾客用餐”设计消费:属性名类型长度说明(顾客ID+菜品名称)为主码费用浮点数是某一顾客消费某一菜品的费用,顾客ID整型数参照顾客主码的外码,由此可以得到顾客的信息(姓名)、预订单信息(用餐时间)和台位信息(台位编号)菜品名称字符串10参照菜品主码的外码修改基本表结在定义基本表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTERTABLE语句实现。ALTERTABLE语句可以对表添加列、删除列、修改列的定义,也可以添加和删除约束。ALTERTABLE语句语法ALTERTABLE表名[ALTERCOLUMN列名新数据类型]|[ADD列名数据类型[约束]|[DROPCOLUMN列名]|[ADD[constraint约束名]约束定义|[DROP[constraint]约束名]示例例1.为SC表添加“修课类别”列,此列的列名为Type,数据类型为NCHAR(2),允许空。ALTERTABLESCADDTypeNCHAR(2)NULL示例例2.将新添加的Type列的数据类型改为NCHAR(4)。ALTERTABLESCALTERCOLUMNTypeNCHAR(4)示例例3.删除SC表的Type列。ALTERTABLESCDROPCOLUMNType练习2为教师表添加新列:职称,字符型8位。删除教师表的出生日期。修改课程表的学分为整型。删除基本表当确信不再需要某个表时,可以将其删除。删除表的语句格式为:DROPTABLE表名{[,表名]…}例:删除test表:DROPTABLEtest练习3顾客用餐数据库中:删除预定单表

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功