第3讲 创建数据表和表约束_第1页
第3讲 创建数据表和表约束_第2页
第3讲 创建数据表和表约束_第3页
第3讲 创建数据表和表约束_第4页
第3讲 创建数据表和表约束_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

数据表的创建和管理

——创建数据表和表约束

第3讲复习请说出下列命令的功能?createdatabaseDropdatabaseSp_helpdbAlterdatabaseaddfile|addfilegroup|addlogfilemodifyfile|modifyfilegroupmodifyname=新库名removefile|removefilegroup创建数据库修改数据库删除数据库显示数据库信息增加数据文件增加文件组增加日志文件修改数据文件修改文件组修改数据库名删除数据文件删除文件组数据表的创建和管理

——创建数据表和表约束

教学内容基础知识:设计表创建数据表创建约束

删除约束数据表的创建和管理

——创建数据表和表约束

学习目标认知目标:了解SQLServer2005的数据类型了解表约束的含义能力目标:掌握用命令方式创建数据表的方法(重点)掌握表约束的创建、修改和删除(重点、难点)一、设计表

1.

数据表的类型系统表用于存储服务器的配置信息、数据表的定义信息的一组特殊表,称为系统表。用户表已分区表已分区表是将超大表按照某种业务规则分别存储在不同的文件组中,以提高性能和方便管理。临时表临时表是一种因为暂时需要所产生的数据表,它存放在Tempdb数据库中,当使用完临时表且关闭连接后,系统会自动删除临时表。一、设计表

2.

创建数据表前应考虑的问题表中要存储的数据类型(用来确定数据的取值范围)表中需要的列数、每列的类型列是否可以为空是否需要在列上使用约束、默认值和规则需要使用什么样的索引哪些列作为主键、哪些列作为外键哪些用户拥有访问该数据库或表的权限

表约束一、设计表

3.

数据类型占1字节。存放逻辑值。只能取0、1、null。bit位类型存放固定长度的n个字符数据1~4000。存放可变长度的n个字符数据1~4000。存放最大长度为230-1的字符数据nchar(n)nvarchar(n)ntext

Unicode宽字符型占8字节占4字节占2字节占1字节bigintintsmallintTinyint

整数类型存放固定长度的字符,n为1~8000个字符。存放可变长度的字符,n为1~8000个字符。存放最大长度为231-1的字符数据。char(n)varchar(n)text

字符型长度定义标识数据类型字符型:1个字符占1个字节。Unicode型:1个字符占2个字节一、设计表

3.

数据类型占8字节。占4字节。Moneysmallmoney货币型占8字节。日期为从1/1/1753到12/31/9999。占4字节。日期为从1/1/1900到6/6/2079。Datetimesmalldatetime

日期时间类型定长二进制数据。n为1~8000字节。变长二进制数据。n为1~8000字节。存放最大长度为231-1的二进制数据(2G)。Binary(n)Varbinary(n)Image:二进制型占8字节。存储小数点位数不确定的数据占4字节。存储小数点位数不确定的数据Float(n)Real

浮点数类型占2~17字节。存储小数点位数确定的数据占2~17字节。存储小数点位数确定的数据Decimal(p,s)Numeric(p,s)精确数类型存放最大长度为231-1的二进制数据。image图像型二、创建数据表

1.创建简单的数据表命令格式createtable

表名

(字段名类型[(长度)][,……n])实例1:在xscj库中,创建一个简单的表xsqk。createtable

xscj.dbo.xsqk

(学号

char(6),

姓名

char(8),

性别

bit

,

电话

char(11))数据库名,可省略所有者名,可省略表名方法2:use

xscjcreatetable

xsqk……二、创建数据表

2.

列属性类型空值属性默认时,列的值为null,表示允许该列为空。如果值为notnull,表示不允许该列为空。默认值属性标识属性为标识属性的列,其值由系统自动填充。二、创建数据表

3.

表约束含义约束定义了关于允许什么数据进入数据库的原则。目的为了防止列出现非法数据,以保证数据中数据的一致性和完整性。二、创建数据表

3.

表约束类型主键(PRIMARYKEY)约束惟一(UNIQUE)约束外键(FOREIGNKEY)约束检查(CHECK)约束说明:非空和默认值也可看成是约束。创建表约束的方法新建表时,在单列后创建约束在所有列之后,再创建约束表已存在,只能通过修改表,添加约束实现实体完整性实现参照完整性实现域完整性二、创建数据表

4.创建表约束—(1)非空值约束空值(NULL)就是尚不知道或不确定的数据值,它不同于0或空格。用户常常将不确定的列值定义为空值。实例2:在xscj库中,创建“学号”非空约束的表xsqk。createtable

xsqk

(学号

char(6)notnull,

姓名

char(8),

性别

bit

,

电话

char(11))若xscj不是当前库,应先输入:use

xscj默认情况下为空值。二、创建数据表

4.创建约束—(1)非空值约束课堂练习1:在xscj库中,创建“课程号”非空的课程表kc(P88)。

usexscjcreatetablekc(课程号char(3)notnull

,

课程名char(20),

授课教师

char(8),

开课学期tinyint)二、创建数据表

4.创建约束—(2)主键约束主键(PRIMARYKEY)约束的作用:不允许输入重复的值不能取空值

当主键是由多个属性组成时:某一属性上的数据可以重复,但其组合必须是惟一的;每个属性的值都不能为空。一个表上只能有一个主键。二、创建数据表

4.创建约束—(2)主键约束实例3:在学生情况表xsqk中,添加“学号”的主键约束,主键约束命名为pk_xsqk_xh。createtable

xsqk

(学号char

(6),

姓名char(8),

性别

bit,

电话char(11)

constraint

pk_xsqk_xh

primarykey(学号))主键约束名主键:保证了学号不能为空,且不重复。二、创建数据表

4.创建约束—(2)主键约束课堂练习2:在课程表kc中,添加“课程号”的主键约束,主键约束命名为pk_kc_kh。

usexscjaltertablekcaddconstraintpk_kc_khprimarykey(课程号)二、创建数据表

4.创建约束—(3)惟一性约束惟一性(UNIQUE)约束的作用:保证列中不会出现重复的数据。主键约束与惟一性约束的区别:一个表中只能定义一个主键约束,但可以定义多个惟一约束。定义了惟一约束的列数据可以为空值,而定义了主键约束的列数据不能为空值。二、创建数据表

4.创建约束—(3)惟一性约束实例4:在xsqk表中,创建“电话”字段的惟一性约束,并且将约束命名为uq_xsqk_dh。altertable

xsqk

add

constraint

uq_xsqk_dh

unique(电话)惟一性约束名惟一性:保证了“电话”列的取值不能相同。二、创建数据表

4.创建约束—(4)外键约束外键(FOREIGNKEY)约束的作用:用于建立和强制两个表间的关联,限制外键的取值必须是主表的主键值。实例5:在xscj库中,按P91表4-4创建

xs_kc表。二、创建数据表

4.创建约束—(4)外键约束usexscjcreatetable

xs_kc(学号

char(6)notnullreferences

xsqk(学号),

课程号char(3),

成绩

tinyintprimarykey(学号,课程号),

foreignkey(课程号)references

kc(课程号))已设置外键约束已设置外键约束二、创建数据表

4.创建约束—(5)检查约束检查(CHECK)约束的作用:用来限制列上可以接受的数据值。使用逻辑表达式来判断数据合法性。实例6:在xsqk表中,设置名为ck_xsqk_xb的检查约束,该约束限制“性别”为0或1。altertable

xsqk

add

constraint

ck_xsqk_xb

check(性别=1or性别=0)二、创建数据表

4.创建约束—(5)检查约束课堂练习3:在学生与课程表xs_kc中,添加名ck_xs_kc_cj的检查约束,该约束限制“成绩”在0到100之间。

usexscjaltertablexs_kcaddconstraintck_xs_kc_cjcheck(成绩>=0and成绩<=100)二、创建数据表

4.创建约束—(6)默认约束默认(DEFAULT)约束的作用:当列值未确定且该列又不能为空时,可由系统自动为该列添加一个值。实例7:在xsqk表中,设置名为df_xsqk_xb的默认约束,该约束使“性别”的默认值为1。altertable

xsqk

add

constraint

df_xsqk_xb

default1for性别二、创建数据表

4.创建约束说明:所有约束可一次创建完成。usexscj--从默认的master数据库切换到xsqk库createtable

xsqk

(学号

char(6)notnull,

姓名

char(8)notnull,

性别

bit,电话

char(11))altertablexsqkaddconstraint

pk_xsqk_xh

primarykey(学号),constraint

df_xsqk_xb

default1for

性别,constraint

ck_xsqk_xb

check(性别=1or性别=0),constraint

uq_xsqk_dh

unique(电话)二、创建数据表

4.创建约束说明:所有约束可直接创建在列定义之后。use

xscjcreatetable

xsqk

(学号char(6)primarykey(学号)check(学号

like‘[0-9][0-9][0-9][0-9][0-9][0-9]’),

姓名char(8)notnull,

性别bit

default1check(性别=0or性别=1),

电话char(11)unique(电话))该方式创建的约束由系统自动命名

温馨提示

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

评论

0/150

提交评论