关系数据库与SQL-Server(2019版)教学课件U7_第1页
关系数据库与SQL-Server(2019版)教学课件U7_第2页
关系数据库与SQL-Server(2019版)教学课件U7_第3页
关系数据库与SQL-Server(2019版)教学课件U7_第4页
关系数据库与SQL-Server(2019版)教学课件U7_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块四创建和管理数据表学习内容认识SQLServer数据表创建数据表创建表约束学习目标知识目标了解SQLServer的数据类型理解列属性、列约束的含义理解约束的类型能力目标掌握数据表的设计方法掌握数据表和约束的创建模块四创建和管理数据表2认识SQLServer数据表任务1:了解数据表的类型系统表用于存储服务器的配置信息、数据表的定义信息的一组特殊表,称为系统表。用户表已分区表已分区表是将超大表按照某种业务规则分别存储在不同的文件组中,以提高性能和方便管理。临时表临时表是一种因为暂时需要所产生的数据表,它存放在Tempdb数据库中,当使用完临时表且关闭连接后,系统会自动删除临时表。模块四创建和管理数据表3认识SQLServer数据表创建数据表前应考虑的问题表中要存储的数据类型(用来确定数据的取值范围)表中需要的列数、每列的类型列是否可以为空是否需要在列上使用约束、默认值和规则需要使用什么样的索引哪些列作为主键、哪些列作为外键哪些用户拥有访问该数据库或表的权限模块四创建和管理数据表4表约束认识SQLServer数据表任务2:了解SQLServer数据类型模块四创建和管理数据表5数据类型定义标识存储长度整数型bigintintsmalinttinyint占8字节,取值范围为-263~263-1占4字节,取值范围为-231~231-1占2字节,取值范围为-215(-32,768)~215-1(32767)占1字节,取值范围为0~255精确小数型decimal(p[,s])mumeric(p[,s])固定精度和小数位数,最大存储大小基于精度而变化。P(精度)必须是从1到最大精度38之间的值。使用最大精度时,有效值的范围-1038+1~1038-1近似小数型float(n)存储长度可变,取值范围为-1.79E+308至-2.23E-308、0、2.23E-308至1.79E+308real(n)占4字节,-3.40E+38至-1.18E-38、0以及1.18E-38至3.40E+38认识SQLServer数据表任务2:了解SQLServer数据类型模块四创建和管理数据表6数据类型定义标识存储长度货币型moneysmallmoney占8字节,取值范围为-263~263-1,精确到4个小数位占4字节,取值范围为-231~231-1(2147483648~2147483647)位类型bit占1字节,存放逻辑值,只能存取0、1、NULL字符型char(n)varchar(n)text存放固定长度的字符数据,n的取值范围为1~8000存放可变长度的字符数据,n为取值范围为1~8000存放最大长度为231-1的字符数据Unicode宽字符型nchar(n)ncarchar(n)ntext存放固定长度的字符数据,n的取值范围为1~4000存放可变长度的字符数据,n的取值范围为1~4000存放最大长度为230-1的字符数据认识SQLServer数据表任务2:了解SQLServer数据类型模块四创建和管理数据表7数据类型定义标识存储长度日期类型date占3字节,日期范围为0001-1-1日~9999-12-31时间类型time占5字节,时间范围为00:00:00.0000000~23:59:59.9999999日期时间类型datetime占8字节,日期范围为从1753年1月1日~9999年12月31日,时间范围为00:00:00到23:59:59.997,精确到.000、.003或.007秒三个增量datetime2占6~8字节,支持更大的日期范围和更高的时间精度,精确到100纳秒。日期范围为从0001年1月1日~9999年12月31日,时间范围为00:00:00到23:59:59.9999999smalldatetime占4字节,日期范围为1900年1月1日~2079年6月6日,时间范围为00:00:00到23:59:59,精确到分钟datetimeoffset占10字节,类似datetime2,时间在内部存储为UTC时间(可识别时区)认识SQLServer数据表任务2:了解SQLServer数据类型模块四创建和管理数据表8数据类型定义标识存储长度时间戳型timestamp占8字节,给定数据库的唯一特定值二进制型binary(n)varbinary(n)存放固定长度二进制数据,n的取值范围为1~8000存放变长二进制数据,n的取值范围为1~8000图像类型image存放最大长度为231-1的二进制数据创建数据表和约束任务1:认识CREATETABLE语句CREATETABLE表名(列定义列约束[,…n])[ON{文件组名|DEFAULT}]模块四创建和管理数据表9创建数据表和约束任务2:创建有列属性的表非空值属性默认时,列的值为NULL,表示允许该列为空。如果值为NOTNULL,表示不允许该列为空。默认值属性可以给列设置默认值。如果某列已设置了默认值,当用户在数据表中插入记录时,没有给该列输入数据,那么系统会自动将默认值填入该列。标识属性可以将列设置为标识属性。如果某列已设置为标识属性,那么系统会自动地为该列生成一系列数字。该些数字在该表中能唯一地标识一行记录。模块四创建和管理数据表10创建数据表和约束实例1:在XSCJ数据库中,创建一个数据表KCB1,该表中的“序号”列为标识列。CREATE

TABLEXSCJ.DBO.KCB1(

序号

INT

IDENTITY

,

课程号

CHAR(4

)

,

课程名

VARCHAR(20)

,

授课教师

VARCHAR(10)

,

开课学期

TINYINT

,

学时

TINYINT

,

学分

TINYINT)模块四创建和管理数据表11数据库名、所有者名可省略USEXSCJCREATETABLEXSQK设置标识列,初值和增量均为1时可省去参数不写默认情况下为空值创建数据表和约束任务3:创建有列约束的表约束的含义约束定义了关于允许什么数据进入数据库的原则。约束的目的为了防止列出现非法数据,以保证数据中数据的正确性、一致性和有效性。模块四创建和管理数据表12创建数据表和约束任务3:创建有列约束的表约束的类型主键(PRIMARYKEY)约束唯一(UNIQUE)约束外键(FOREIGNKEY)约束检查(CHECK)约束说明:非空和默认值也可看成是约束。模块四创建和管理数据表13实现实体完整性实现参照完整性实现域完整性创建数据表和约束任务3:创建有列约束的表创建列约束的方法新建表时在单列后创建约束在所有列之后,再创建约束表已存在,只能通过修改表,添加约束模块四创建和管理数据表14创建数据表和约束任务3:创建有列约束的表主键(PRIMARYKEY)约束的作用:不允许输入重复的值不能取空值当主键是由多个属性组成时:某一属性上的数据可以重复,但其组合必须是唯一的;每个属性的值都不能为空。一个表上只能有一个主键模块四创建和管理数据表15创建数据表和约束任务3:创建有列约束的表唯一(UNIQUE)约束的作用:保证列中不会出现重复的数据。主键约束与唯一约束的区别:一个表中只能定义一个主键约束,但可以定义多个唯一约束。定义了唯一约束的列数据可以为空值,而定义了主键约束的列数据不能为空值。模块四创建和管理数据表16创建数据表和约束实例2:在XSCJ数据库中,创建一个数据表KCB2,该表中的“课程号”列具有主键约束。USEXSCJCREATE

TABLEKCB2(课程号

CHAR(4

)

CONSTRAINTPK_KCB_KCBHPRIMARYKEY,

课程名

VARCHAR(20)

,

授课教师

VARCHAR(10)

,

开课学期

TINYINT

,

学时

TINYINT

,

学分

TINYINT)模块四创建和管理数据表17如果表KCB2已存在可用方法3。ALTERTABLEKCB2ADDCONSTRAINTPK_KCB_KCBHPRIMARYKEY(课程号)创建数据表和约束任务3:创建有列约束的表检查(CHECK)约束的作用:用来限制列上可以接受的数据值。使用逻辑表达式来判断数据合法性。模块四创建和管理数据表18创建数据表和约束实例3:在XSCJ数据库中,创建一个数据表KCB3,该表中的“开课学期”列具有检查约束,该约束限制开课学期为1~6。USEXSCJCREATE

TABLEKCB(

课程号

CHAR(4)

CONSTRAINTPK_KCB_KCBHPRIMARY

KEY

,

课程名

VARCHAR(40)

,

授课教师

VARCHAR(10)

,

开课学期

TINYINT

NOTNULLDEFAULT1,

学时

TINYINT

,

学分

TINYINTCONSTRAINTCK_KCB_XQCHECK(开课学期>=1and

开课学期<=6)

)模块四创建和管理数据表19方法2:在所有列之后,再创建约束创建数据表和约束任务3:创建有列约束的表外键(FOREIGNKEY)约束的作用:用于建立和强制两个表间的关联,限制外键的取值必须是主表的主键值。模块四创建和管理数据表20创建数据表和约束实例4:在XSCJ数据库中,创建一个数据表CJB,该表的”学号”具有外键约束,参照XSB表,”课程号”也具有外键约束,参照KCB表。USEXSCJCREATE

TABLECJB(

学号

CHAR(10)

NOT

NULL

REFERENCESXSB(学号)

,

课程号

CHAR(4)

NOT

NULL

,

成绩

TINYINT

,

学分

TINYINTCONSTRAINTPK_CJBPRIMARY

KEY(学号,课程号)

,

CHECK(学分<=10)

,

FOREIGN

KEY(课程号)

REFERENCESKCB(课程号)

)模块四创建和管理数据表21已设置主键约束已设置主键约束本课小结

数据类型列属性非空值属性、默

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论