表的创建和表的约束-PPT精选文档

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的指定列的修改。
* 设为indentity
* 设为计算列
5
表的修改
例:增加字段“年龄”,其值由出生日期自动计算而来。
命令如下: alter table xsxx add 年龄 as datediff(year,出生年月,getdate())
ቤተ መጻሕፍቲ ባይዱ例: 将字段“学号”设为indentity列,以便自动产生序列号。
9
约束的使用------
check约束
命令3:若表和指定列都已存在,则可单独添加该列的约束 alter table xx add constraint 出生_chk check(datediff(year,出生年月,getdate())>15)
问题2。对表中的“专业名”要求只能在“电子技术、网络技术、软件开发、外贸
• • •
对数据库表的属性的查看 sp_help 表名 对已经存在的表, 修改列的属性操作时,也属于对表的修改。 例:对“学号”列不允许空值的要求。 Alter table xsxx alter column 学号 char(6) not null 对于已经存在的表,对列有如下要求时,只能在添加列时同时完成对表中
命令如下: alter table xsxx add 学号 int identity(1001,1)

关于indentity 列的说明
indentity列的值是由SQL insert操作而自动产生的。一般情况下, insert语句不能通过为标识列提供值的方法来影响标识的值。
6
关于indentity 列的说明

3
表的修改
对已经存在的表的列进行添加、删除、修改操作时,都属 表的修改。
表的修改命令:
alter table 表名 [add 列名 数据类型 [NULL | NOT NULL]] [drop column 列名 ] [alter column 列名 数据类型 [NULL | NOT NULL]]]
a b
上述命令简洁书写如下:
create table xx (a char(2), b int )
2
表的创建
例:建一个如下的学生基本信息表(xsxx)
学号 姓名 性别 出生年月 专业 入学时间 入学总分
备注
命令基本如下: create table xsxx (学号 int , 姓名 char(8) not null, 专业名 char(12) , 性别 bit, 出生年月 smalldatetime not null, 入学时间 smalldatetime, 备注 text )
SQL Server 2000程序设计
主题:
表的创建、约束的应用与设置 主讲:彭勇
成都纺织高等专科学校
1
表的创建
命令 create table <表名> ( 字段1 类型[(宽度)] [,字段2 类型[(宽度)]] [,字段3 类型[(宽度)]] ) ) 例:建一个如右边的表,表中列名分别为a,b 命令如下: create table xx (a char(2), b int )
例:添加列“入学总分” Alter table xsxx add 入学总分 int 例:删除列“专业名” Alter table xsxx drop column 专业名
4
表的修改
例修改: 将字段“学号”的类型由“int”改为“char”型,命令 如下:
alter table xsxx alter column 学号 char(6)
10
约束的禁用、启用和删除-------禁用check约束, nocheck选项,
英语、通信工程、电脑美术”
同上也根据情况的不同有三种命令来完成。 例:若表和指定列都已存在,则可单独添加该列的约束,其命令如下: alter table xx add constraint 专业名_chk check(专业名 in (‘电子技术’,‘网络技 术’,‘软件开发‘,‘外贸英语‘,‘通信工程‘,‘电脑美术‘))
8
约束的使用-----问题:
check约束
1。对表中的“出生年月”有一定的要求:如现实中,大学生一般年龄需在15岁以上。 2。对表中的“专业名”要求只能在“电子技术、网络技术、软件开发、外贸英语、通信工程、 电脑美术”
使用 check约束
Check约束是一种快速的行级(域)完整性检查机制。
例:上述问题1: “出生年月”进行check约束。 命令1:在创建表时,同时设定该约束 create table xx ( 姓名 char(6), 出生年月 smalldatetime check(datediff(year,出生年月,getdate())>15), 专业名 char(20)) 命令2:若表已存在,添加列的同时设定该约束--设“入学总分”在400----550分之间 alter table xx add 入学总分 decimal check(入学总分 between 400 and 550)
• •
全局系统变量identity可以返回最近一个标识值。 可用 dbcc checkident(表名,reseed,30) 强制表中的当前标识列标识值为30。
7
表的约束
例:建一个如下的学生基本信息表(xx)
学号 姓名 性别 出生年月 专业 入学时间 入学总分
备注
对表的列可以进行相应的约束要求。其例如下: 1。对表中的“出生年月”有一定的要求:如现实中,大学生一般年龄 需在15岁以上。 2。对表中的“专业名”要求只能在“电子技术、网络技术、软件开发、 外贸英语、通信工程、电脑美术” 3。对表中的“入学时间”要求在录入该生时则自动产生。 4。要求“学号”必须是惟一的。不允许任意两行的“学号”有相同的 值。
例: insert into xsxx (姓名,出生年月) values(’张三’,‘1970-12-30’ ) 用户希望自行设置indentity列的值则需要:首先使用命令: set identity_insert 表名 on 这意味着可以在insert语句中显式地提供标识值。 insert into xsxx insert into xsxx (学号,姓名,性别,出生年月) values(‘1007’, 'tom', 1 , '1966-12-30‘)
相关文档
最新文档