第3章-SQL语言基础及数据定义功能课件.ppt
《第3章-SQL语言基础及数据定义功能课件.ppt》由会员分享,可在线阅读,更多相关《第3章-SQL语言基础及数据定义功能课件.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、安徽师范大学数学计算机科学学院 陈少军数据库原理与应用数据库原理与应用第3章 SQL语言基础及数据定义功能3.1 SQL3.1 SQL语言概述语言概述3.2 SQL3.2 SQL语言支持的数据类型语言支持的数据类型 3.3 3.3 数据定义功能数据定义功能3.4 3.4 索引索引安徽师范大学数学计算机科学学院 陈少军SQL?数据库数据库DBMS修改数据修改数据删除数据删除数据添加数据添加数据查询数据查询数据安徽师范大学数学计算机科学学院 陈少军SQL是关系数据库的标准语言是关系数据库的标准语言o用户使用数据库主要是对数据库进行各种操作查询数据、添加数据、删除数据和修改数据等查询数据、添加数据、
2、删除数据和修改数据等oDBMS为用户提供相应的命令或语言实现各种操作成为成为用户用户和和数据库数据库的接口的接口o数据库提供的语言仅仅是对数据库操作的功能,不提供完备的程序设计语言,也不能独立地用来编写程序oSQL(Structured Query Language 结构化查询语言)是用户操作关系数据库的通用语言。SQL不仅仅提供查询,还包含数据定义、数据查询、数据不仅仅提供查询,还包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能操作和数据控制等与数据库有关的全部功能oSQL已经成为关系数据库的标准语言,现行的所有关系数据库管理系统都支持SQL。安徽师范大学数学计算机科学学院
3、 陈少军3.1.1 SQL语言的发展语言的发展oSQL原型在20世纪70年代,IBM研究人员开发的SEQUELo1986年10月由美国ANSI 颁布最早的SQL标准o1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89(SQL1)。o1992年11月,ISO又公布了新的SQL标准,称为SQL-92(以上均为关系形式)(SQL2)。o 1999年颁布SQL-99(SQL3),是SQL92的扩展。o不同数据库厂商的数据库系统所提供的SQL语言略有差别o本课程使用微软的SQL ServerT-SQL为主安徽师范大学数学计算机科学学院 陈少军3.1.2 SQL语言的特点语言的特点o1.
4、一体化o2.高度非过程化o3.简洁o4.使用方式多样安徽师范大学数学计算机科学学院 陈少军3.1.3 SQL语言功能概述语言功能概述o四部分功能数据定义功能数据定义功能:定义、删除和修改数据库中对象定义、删除和修改数据库中对象 数据控制功能数据控制功能:查询数据功能查询数据功能数据查询功能数据查询功能:增加、删除和修改数据库数据增加、删除和修改数据库数据数据操纵功能数据操纵功能:控制用户对数据库的操作权限控制用户对数据库的操作权限SQL功能功能命令动词命令动词数据定义数据定义CREATE,DROP,ALTER数据查询数据查询SELECT数据更改数据更改INSERT,UPDATE,DELETE数
5、据控制数据控制GRANT,REVOKE,DENY安徽师范大学数学计算机科学学院 陈少军3.2 SQL语言支持的数据类型语言支持的数据类型定义表时必须指明每列的数据类型每个厂商的数据库管理系统所支持的数据类型不完全相同,与标准的SQL也有差异微软的SQL Server支持如下类型o数值型 o字符串型o日期时间型o货币型安徽师范大学数学计算机科学学院 陈少军3.2.1 数值型数值型准确型准确型o计算机中精确存储的数据,包括整型、定点小数等oBigint8字节-263263-1整数oInt4字节 -231231-1整数oSmallint2字节 -216216-1整数oTinyint1字节 0255整
6、数oBit存储1或0oNumeric(p,q)、Decimal(p,q)p为数字位长度,为数字位长度,q为小数位长度为小数位长度-1038+11038-1的数据的数据安徽师范大学数学计算机科学学院 陈少军3.2.1 数值型数值型近似型近似型o表示浮点数据的近似数据oFloat8字节 -1.79E+308 1.79E+308浮点数oreal4字节 -3.40E+38 3.40E+38浮点数安徽师范大学数学计算机科学学院 陈少军3.2.2 字符串型字符串型o普通编码字符串类型、统一字符编码字符串类型和二进制字符串类型。用 标识 -oChar(n)固定长度字符串。n:18000oVarchar(n)
7、可变长度字符串。n:18000oText大文本 231-1个字符oNchar(n)固定长度Unicode n:14000 oNvacharn(n)可变长度Unicode n:14000 oNtextUnicode大文本 230-1个字符oBinary(n)固定长度二进制字符 n:18000oVarbinary(n)可变长度二进制字符 n:18000oImage大容量可变长度二进制字符 231-1个字符安徽师范大学数学计算机科学学院 陈少军3.2.3 日期时间类型日期时间类型oDatetime8字节1753.1.19999.12.31精确到3.33毫秒(例:(例:2008/02/03 10:30
8、:00.000)oSmalldatetime4字节1900.1.12079.6.6精确到分钟(例:(例:2008/02/03 10:30:00)o时间格式英文数字格式英文数字格式oct 25 2001数字加分隔符格式数字加分隔符格式2001-10-25 或或 2001/10/25纯数字格式纯数字格式20011030o时间格式12小时格式小时格式2001-10-25 3:28:56 PM24小时格式小时格式2001-10-25 15:28:56安徽师范大学数学计算机科学学院 陈少军3.2.4 货币格式货币格式oMoney8字节 -922,337,203,685,477.5808 922,337,
9、203,685,477.5807精确到货币单位的千分之十,最多包含19位数字oSmallmoney4字节-214,748.3648214,748.3647精确到货币单位的千分之十o限制到小数点后 4 位。o可以带有适当的货币符号。例如100 英镑可表示为 100。安徽师范大学数学计算机科学学院 陈少军3.3 数据定义功能数据定义功能表是数据库中非常重要的对象,用来存放用户的数据关系数据库中的表是二维表,包含行和列创建表就是定义表所包含的列的结构(列名、数据类型、约束等)o3.3.1 基本表o3.3.2 数据完整性约束 安徽师范大学数学计算机科学学院 陈少军3.3.1 基本表基本表1.定义基本表
10、2.修改基本表3.删除基本表安徽师范大学数学计算机科学学院 陈少军1、定义基本表、定义基本表o使用CREATE TABLE语句实现,o语法格式:符号约定:可选,重复,|多选一,CREATE TABLE (列级完整性约束定义列级完整性约束定义 ,列级完整性约束定义列级完整性约束定义 ,表级完整性约束定义表级完整性约束定义 )o表名:要定义的基本表的名称o列名:表中包含的属性列的名字o数据类型:列的数据类型o列级完整型约束:只涉及一个列的完整性约束o表级完整型约束:涉及多个列的完整性约束安徽师范大学数学计算机科学学院 陈少军在列级完整性约束定义处可以定义的约束在列级完整性约束定义处可以定义的约束o
11、NOT NULL限制列取值非空。oDEFAULT给定列的默认值。oUNIQUE限制列取值不重。oCHECK限制列的取值范围。oPRIMARY KEY指定本列为主键。oFOREIGN KEY定义本列为引用其他表的外键使用形式为:使用形式为:FOREIGN KEY()REFERENCES()安徽师范大学数学计算机科学学院 陈少军说明说明oNOT NULL和和DEFAULT只能是列级完整性约束;只能是列级完整性约束;o其他约束均可在表级完整性约束处定义。其他约束均可在表级完整性约束处定义。o注意以下几点:注意以下几点:如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;如果表的
12、主键由多个列组成,则也只能在表级完整性约束处定义,并将主键列用括号括起来,即:PRIMARY KEY(列1,列2 );如果在表级完整性约束处定义外键,则“FOREIGN KEY()”部分不能省。安徽师范大学数学计算机科学学院 陈少军约束举例约束举例o列取值非空约束例:sname char(10)NOT NULLo表主键约束在定义列时定义主键(仅用于单列主键)在定义列时定义主键(仅用于单列主键)例:例:SNO char(7)PRIMARY KEYo在定义完列时定义主键(用于单列或多列主键)例:例:PRIMARY KEY(SNO)PRIMARY KEY(SNO,CNO)o外键引用约束例:例:FOR
13、EIGN KEY(sno)REFERENCES 学生学生表(表(sno)安徽师范大学数学计算机科学学院 陈少军创建创建(student)学生表学生表oCREATE TABLE Student(o SnoCHAR(7)PRIMARY KEY,o SnameNCHAR(5)NOT NULL,o SsexNCHAR(1),o SageTINYINT,o SdeptNVARCHAR(20)o)列名列名含义含义数据类型数据类型约束约束Sno学号学号CHAR(7)主码主码Sname姓名姓名NCHAR(5)非空非空Ssex性别性别NCHAR(1)Sage年龄年龄TINYINTSdept所在系所在系NVARC
14、HAR(20)安徽师范大学数学计算机科学学院 陈少军创建创建Course(学生学生)表表oCREATE TABLE Course(o CnoCHAR(6)PRIMARY KEY,o CnameNVARCHAR(20)NOT NULL,o CcreditTINYINT,o SemsterTINYINTo)列列 名名含含 义义数数 据据 类类 型型约约 束束Cno课程号课程号CHAR(6)主键主键Cname课程名课程名NVARCHAR(20)非空非空Ccredit学分学分TINYINTSemster学期学期TINYINT安徽师范大学数学计算机科学学院 陈少军创建创建SC(学生修课学生修课)表表oC
15、REATE TABLE SC(o SnoCHAR(7)NOT NULL,o CnoCHAR(6)NOT NULL,o GradeTINYINT,o PRIMARY KEY(Sno,Cno),o FOREIGN KEY(Sno)REFERENCES Student(Sno),o FOREIGN KEY(Cno)REFERENCES Course(Cno)o)列列 名名含含 义义数数 据据 类类 型型约约 束束Sno学号学号CHAR(7)主键,引用主键,引用Student的外键的外键Cno课程号课程号CHAR(6)主键,引用主键,引用Course的外键的外键Grade成绩成绩TINYINT安徽师范
16、大学数学计算机科学学院 陈少军2、修改基本表、修改基本表o在定义基本表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABLE语句实现。oALTER TABLE语句可以对表添加列、删除列、修改列的定义,也可以添加和删除约束。o语法ALTER TABLE ALTER COLUMN|ADD 约束|DROP COLUMN|ADD constraint 约束名 约束定义|DROP constraint 安徽师范大学数学计算机科学学院 陈少军示例示例o例1为SC表添加“修课类别”列,此列的列名为Type,数据类型为NCHAR(2),允许空。ALTER TABLE SC ADD
17、 Type NCHAR(2)NULLo例2将新添的Type列数据类型改为NCHAR(4)。ALTER TABLE SC ALTER COLUMN Type NCHAR(4)o例3.删除SC表的Type列。ALTER TABLE SC DROP COLUMN Type 安徽师范大学数学计算机科学学院 陈少军3、删除基本表、删除基本表o当确信不再需要某个表时,可以将其删除。o删除表的语句格式为:DROP TABLE ,o例:删除test表:DROP TABLE test安徽师范大学数学计算机科学学院 陈少军3.3.2 数据完整性约束数据完整性约束 o为了防止数据库中存在不符合语义的数据o数据库中数
18、据的语义约束条件就是数据完整性约束条件oDBMS通过完整性检查的功能来检查数据库中的数据是否满足完整性约束条件1、完整性约束条件的作用对象2、实现数据完整性安徽师范大学数学计算机科学学院 陈少军1、完整性约束条件的作用对象、完整性约束条件的作用对象o完整性检查是围绕完整性约束条件进行的,o完整性约束条件是完整性控制机制的核心。o完整性约束条件的作用对象可以是表、元组和列。列级约束列级约束元组约束元组约束关系约束关系约束安徽师范大学数学计算机科学学院 陈少军列级约束列级约束o列级约束主要是对列的类型、取值范围、精度等的约束,具体包括:对数据类型的约束:包括数据类型、长度、精度等。对数据类型的约束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 语言 基础 数据 定义 功能 课件
限制150内