当前位置:文档之家› 创建与使用数据表-SQL创建和操作表

创建与使用数据表-SQL创建和操作表


【例6-4】在“UserTb”表中,为“UserBkNum” 字段添加一个检查约束,所 输入的已借书数量必须大于等于零的约束代码: USE Library Go
ALTER TABLE UserTb ADD CONSTRAINT U_check CHECK ( UserBkNum>=0 )
【例6-5】在“UserTb”表中添加一个字段 “UserOcc”表示读者的职业, varchar(6)。随后再删除掉: ALTER TABLE UserTb ADD UserOcc varchar(6) null GO ALTER TABLE UserTb DROP COLUMN UserOcc
修改数据表结构包括修改某列的数据类型、 列宽度、添加和删除某列、修改列的约束等。
选中表如Usercate右键设计打开设计界 面进行各类修改,约束设置
6.3.2
ALTER TABLE来自使用Transact-SQL修改数据表结构
使用T-SQL修改数据表结构的语法如下: [database_name .[ schema_name ] .| schema_name.] table_name { [ ALTER COLUMN column_name ----修改列定义 { new_data_type [ (precision [,scale ] ) ] [ COLLATE < collation_name > ] [ NULL | NOT NULL ] | { ADD | DROP } ROWGUIDCOL } ] | ADD ----添加列 { [ < column_definition >] | column_name AS computed_column_expression } [ ,...n ] | [ WITH CHECK | WITH NOCHECK ] ADD ----添加约束 { < table_constraint > } [ ,…n ] | DROP { [ CONSTRAINT ] constraint_name ----删除约束 | COLUMN column } [ ,…n ] ----删除列 | { CHECK | NOCHECK } CONSTRAINT ----启用或禁用约束 { ALL | constraint_name } [ ,…n ] | { ENABLE | DISABLE } TRIGGER ----启用或禁用触发器 { ALL | trigger_name [ ,…n ] } }
此处需要注意的是:当使用Alter Table 添加列 时,如果要求该列不为空,则必须要指定一个默认值, 否则不能添加成功。若不允许为空又不需指定默认值, 只能先添加一个允许为空的列,再通过alter column 修改该列为非空。如:
ALTER TABLE UserTb ADD UserOcc varchar(6) null GO ALTER TABLE UserTb ALTER COLUMN UserOcc varchar(6) not null
④DEFAULT设置缺省值,对暂时不输入数据的 数字列施加DEFAULT约束,以避免数据操作错 误, 格式:DEFAULT(<缺省值>) 例如: DEFAULT(0) DEFAULT(‘男’) DEFAULT(‘2012-3-12’) ⑤UNIQUE 惟一性约束 ⑥NOT NULL UNIQUE 该列非空且惟一
定义约束的类型的
1) CHECK约束 2) DEFAULT约束
----检测约束 ----默认约束 ----主键约束 ----外键约束
定义约束是在创 建表或修改表的命 令中实现的
3) PRIMARY KEY约束 4) FOREIGN KEY约束 5) UNIQUE约束 6) NULL
----唯一约束
③PRIMARY KEY SQL的句法:在该列数据类型说明后添加 PRIMARY KEY 例如:专业表(专业代码,专业名称) CREATE TABLE 专业表 (专业代码 CHAR(4) PRIMARY KEY, 专业名称 VARCHAR(30) NOT NULL);
看看P80页 例题6-1
【例6-1】使用CREATE TABLE语句创建“Book”表,“Book” 表用存放图书的各种信息,包括图书编号、图书名称、图书类 别号、作者、出版社、出版日期、入库日期、价格、状态等属 性。 USE Library CREATE TABLE Book ( BookId char(10) not null primary key, BookName varchar(50) not null, BkCateId varchar(6) not null, Author varchar(20) not null, Publish varchar(50) not null, PubTime date null, CheckIn date not null, Price money null, BookStatus char(2) not null )
③检验约束子句 CHECK(值的约束条件 或包含SELECT语句的SQL语句)
注意:SQL语句以“;”号结束,在交互式使用 中是一条命令
例:成绩表(学号,课号,成绩) CREATE TABLE 成绩表 (学号 CHAR(9), 课号 CHAR(7), 成绩 INT DEFAULT(0), PRIMARY KEY (学号,课号), FOREIGN KEY(课号) REFERENCES 课程设置表(课号), FOREIGN KEY(学号) REFERENCES 学生信息表(学号), CHECK(成绩 >= 0 AND 成绩 <= 100) );
使用Transact-SQL语句创建表
切换数据库命令: USE Library GO 提示:GO命令是一个批执行命令,后面会 详细解释…。执行上述命令后,后续的创建 表命令等命令,均在该数据库(Library库 )中运行。
使用Transact-SQL语句创建表
USE Library GO CREATE TABLE book ( 编号 CHAR(8) NOT NULL, ISBN号 CHAR(13) NOT NULL, 书名 VARCHAR(200), 定价 MONEY, 出版社 VARCHAR(200), 出版日期 DATETIME )
⑦CHECK指出该列取值约束条件内的值,
格式:CHECK(<值约束条件的集合>)
例如:学生信息表(学号,姓名,性别,生日,籍贯,专 业号,班级)
CREATE TABLE 学生信息表 (学号 CHAR(10) PRIMARY KEY, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2) CHECK(性别 =’男’ or 性别 =’ 女’)) DEFAULT(‘男’) , 生日 DATETime NOT UNLL, 籍贯 CHAR(20) DEFAULT(‘合肥’) , 专业代码 CHAR(4) NOT NULL, 班级 CHAR(4) NOT NULL );
使用T-SQL创建表的语法如下。
CREATE TABLE [ database_name .[ schema_name ] .| schema_name .] table_name ( { < column_definition > | < computed_column_definition >} [ < table_constraint >][,…n ] ) [ on { partition_scheme_name ( partition_column_name ) | filegroup | “default”}] [ TEXTIMAGE_ON{ filegroup | “default”}] 其中:<column_definition>包括: column_name <data_type> [ FILESTREAM ] [ COLLATE collation_name ] [ NULL | NOT NULL ] [ [ CONSTRAINT constraint_name ] DEFAULT constant_expression ] | [ IDENTITY [ ( seed ,increment ) ] [ NOT FOR REPLICATION ] ] [ ROWGUIDCOL ] [ <column_constraint> [ ...n ] ]
创建与使用数据表
复习
1.主键定义? 功能?
2.外键定义? 功能?
3.其他约束有哪些? 功能?
复习
定义表:创建、修改、删除
关系表
操作表:插入、修改、删除
定义表的约束:主键、外键、NULL、 默认、Check、唯一性
方法:1.使用管理器 2.SQL代码
6.2.3
使用Transact-SQL创建数据表

使用Transact-SQL语句中的CREATE TABLE 命令创建表,其语法最简格式如下:
表名
CREATE TABLE table_name ( Col_name column_properties [,…] )
列名 列的数据类型及长度 可以有若干列,用 逗号分割开
提示:每个不同项目之间用空格隔开
多属性主键
多主键约束+外键案例:
例:成绩表(学号,课号,成绩) CREATE TABLE 成绩表 (学号 CHAR(10), 课号 CHAR(4), 成绩 INT DEFAULT(0) , PRIMARY KEY (学号,课号), FOREIGN KEY (课号) REFERENCES 课程设置表(课号), FOREIGN KEY (学号) REFERENCES 学生信息表(学号));
6.3
修改表结构
已经建立的表格,如果不符合要求,可以进行修改。 SQLServer2008提供两种修改数据表的方法: SQL Server Management Studio修改表 使用Transact-SQL语句修改表
相关主题