数据库ppt课件

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

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

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

资源描述

数据库表第十章数据库表•10.1创建数据库表•10.2修改数据库表•10.3使用约束•10.4建立索引•10.5删除数据库表10.1创建数据库表•数据库表的形式创建数据库表的指令格式CREATETABLE表名(列名1数据类型{identity|NOTNULL|NULL},列名2数据类型{identity|NOTNULL|NULL},…)•例:Createtabledemotable(user_idnumeric(10,0)identity,Namevarchar(30)notNULL,Commentsvarchar(100)null)10.1.1表名•表名是惟一的•可以使用中文,也可以使用西文符号•最多64个字符•建立临时表–临时表的表名必须以#打头–仍然使用CREATETABLE命令•例:Createtable#demotable(user_idnumeric(10,0)identity,Namevarchar(30)notNULL)10.1.2列名•表中的每一列也称为字段,所以列名也叫字段名•字段名的命名方式基本同数据表名的命名•字段名在数据表中要求是惟一的,但在整个数据库中可以重名•NULL:可以无值,默认值•NOTNULL:必须输入值•identity:计数器–每个表只能有一个identity列–不允许为空–使用整型或精确数型,受数据类型取值限制–用户不能修改identity的值例10-1确定期刊采编系统数据库中各数据表的表名关系模式名数据库表名部门mag_dept人员mag_emp期刊mag_info稿件mag_doc10.1.3数据类型•T-SQL中支持的、常用的数据类型–字符型–日期时间类型–数值类型–二进制型–位型–文本型–图像型–时间戳型字符型•字符型变量应定义长度•允许定义的最大长度是255•有两种–固定长度的char()类型–可变长度的varchar()类型•输入字符型数据时必须用单引号将数据括起来日期时间类型•datetime和smalldatetime是用来存储日期和时间数据比较内容DatetimeSmalldatetime最小值Jan1,1753Jan1,1900最大值Dec31,9999Jun6,2079占用存储空间8byte4byte精度3.33毫秒1分钟整数类型•整数类型的比较比较内容IntSmallintTinyint最小值-231-2150最大值231-1215-1255占用存储空间4byte2byte1byte浮点数类型比较内容FloatReal最小值-1.79E+308-3.40E+38最大值1.79E+3083.40E+38占用存储空间8Byte4Byte精度最多15位最多7位精确数类型•精确数类型有两种形式–Decimal–Numeric•与浮点类型数据的区别–可以自定义精度的位数–例num_col(5,2)货币型•货币类型的比较比较内容MoneySmallmoney最小值-922,337,203,685,477.5808-214,748.3648最大值922,337,203,685,477.5807214,748.3647占用存储空间8Byte4Byte精度小数点后4位小数点后4位位数据类型•位数据类型bit是一种逻辑数据类型•只有1和0两种数值•一般常用作true/false使用•定义bit列时,不允许为NULL,也不能建立索引•多个bit列可占用一个字节文本型和图像型•文本类型text•图像类型image•每行可以存储2GB的二进制大型对象时间戳型•时间戳型表示Timestamp•由系统自动赋值的一个计数器数据•记录了数据行的操作顺序•时间戳列的数据保持惟一,它可以惟一标识表中的列•时间戳列的值实际来自于事务日志例10-2确定期刊采编系统数据库中各数据表中字段的字段名和数据类型•数据表Mag_dept•数据表mag_emp•数据表Mag_info•数据表mag_doc例10-3建立期刊采编系统数据库中各数据表•创建mag_dept表创建mag_emp表创建mag_info表创建mag_doc表10.2修改数据库表•添加或删除列•修改列的属性•更改列名和表名10.2.1添加或删除列•增加列的语句格式Altertable表名add列名数据类型{identity|NOTNULL|NULL},…•删除列的语句格式Altertable表名dropcolumn列名例10-4向数据表mag_emp中添加一新属性ID(身份证号码),数据类型为字符型,固定长度18例10-5删除数据表mag_emp中属性ID10.2.2修改列的属性•命令格式altertable表名altercolumn列名数据类型{identity|NOTNULL|NULL}例10-6将数据表mag_info中PubDate的数据类型更改为smalldatetime10.2.3更改列名和表名•更改列名sp_rename‘表名.原列名’,新列名•更改表名sp_rename原表名新表名例10-7数据库usedb1中建有数据表test,包含number、stu_name和class三个字段,请将class更名为class_no例10-8将数据库usedb1中数据表test更名为student10.3使用约束•约束的作用–实现数据的完整性•实体完整性•参照完整性•用户自定义完整性•约束的类型•建立约束•删除约束参照完整性学号姓名S256S257S258王丹章华李力性别系号男女男D23D25D30系号D23D25D30系名负责人物理机械计算机王娟杨华张天关系S关系DEPT10.3.1约束的类型名称作用实现的完整性Primarykey定义主键,保证主键列无重复值实体完整性Unique保证该列无重复值实体完整性Foreignkey定义外键,保证数据表间数据的一致性参照完整性Check定义表中某些列的数据范围自定义完整性Default为列的数据提供默认值自定义完整性10.3.2建立约束•定义约束时使用Createtable语句•或使用Altertable语句•即可以在定义数据表的数据列时直接定义约束,也可以对已定义的数据表添加约束使用Altertable语句添加约束的基本格式Altertable表名Add[Constraint约束名]约束定义使用Createtable语句建立约束Createtable表名(列名1数据类型{identity|NOTNULL|NULL}[Constraint约束名]约束定义,列名2数据类型{identity|NOTNULL|NULL}[Constraint约束名]约束定义,…[Constraint约束名]约束定义)PRIMARYKEY•定义主键约束的基本格式为:[Constraint约束名]primarykey(列名1[,列名2,…])例10-9向数据表map_dept中添加主键约束例10-10在数据库usedb2中建立数据表map_dept,同时定义主键约束例10-11在数据库usedb1中建立数据表grade,表中包括学号sno(char)、课程号cno(char)、成绩gmark(numeric)属性主键由学号和课程号构成UNIQUE•定义数据表中非主键的列在各行记录中不能出现相同的非空值•定义格式:[Constraint约束名]UNIQUE(列名1[,列名2,…])例10-12向数据库usedb2中数据表mag_dept属性DepManager增加UNIQUE约束FOREIGNKEY•定义外键的命令基本格式[Constraint约束名]foreignkey(列名1[,列名2,…])references表名(列名1[,列名2,…])例10-13向数据库MagDb中数据表mag_emp的属性DepId添加外键约束例10-14在数据库usedb2中建立数据表mag_emp,同时定义主键和外键CHECK•定义约束check的命令基本格式[Constraint约束名]check(逻辑表达式)例10-15将数据库MagDb中数据表mag_emp的属性EmpAge取值范围限定在1-100之间(含1和100),并将此约束命名为ck_ageDEFAULT•定义约束default的命令基本格式为[Constraint约束名]default常量表达式for字段名例10-16将数据库MagDb中数据表mag_emp的属性EmpRole的默认值指定为“编辑”10.3.3删除约束•删除约束的语句格式Altertable表名DropConstraint约束名例10-17删除数据库usedb2中数据表mag_dept属性DepManager的UNIQUE约束10.4建立索引•索引的类型•建立索引•设计索引•删除索引10.4.1索引的类型•聚集索引(clustered)–是一种物理存储方式–一个数据表只能建立一个聚集索引•非聚集索引(nonclustered)–是一种逻辑存储方式–索引的次序并不影响数据的物理存储顺序–一个数据表最多可以建立249个非聚集索引10.4.2建立索引•建立索引的语法Create[unique][clustered|nonclustered]index索引名on表名(列名1,列名2,…)例10-18对数据表mag_emp属性EmpAge建立非惟一的非聚集索引age_index10.4.3设计索引•创建索引时一般应遵循以下原则–经常要查找的列–经常要按顺序检索的列–经常用于多个数据表连接的列–经常用于进行统计计算(如求极值、求和等)的列;–在查询条件中频繁使用的列–如果一个列中只有几个不同的数据值,或者被索引的列多于20个字节时,通常不应该建立索引10.4.4删除索引•删除索引的语法Dropindex表名.索引名•注意使用primarykey约束和unique约束建立的索引不能删除例10-19删除索引age_index10.5删除数据库表•删除数据表的语法Droptable表名例10-20删除usedb2中数据表mag_dept

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

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

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

×
保存成功