第3章 数据表的创建和管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ALTER TABLE sc ADD CONSTRAINT FK_sc_course FOREIGN KEY(courseid) REFERENCES course(courseid)
3.3.10 检查约束
▪ 1. 使用CREATE TABLE语句在建表时创建检查约束
CREATE TABLE 表名 (列名 数据类型 [<其他约束>] [CONSTRAINT 检
▪ 2.使用ALTER TABLE语句创建约束 ALTER TABLE 表名 ADD{<表约束>}
3.3.7 主键约束
▪ 1.主键约束的定义
主键约束(primary key constraint)用于 指定表的一列或几列的组合来唯一标识表,即能 在表中唯一地指定一行记录
这样的一列或列的组合称为表的主键( primary key,PK)
✓ 一个表中可以包含多个唯一约束,而主键约束 则只能有一个。
3.3.8 唯一约束
▪ 2.在创建表的同时创建唯一约束 (1)创建单个列的唯一可采用列级约束
列名<列属性>[CONSTRAINT约束名] unique
(2)多个列组合的唯一约束,采用表级约束
[CONSTRAINT 约束名] unique (列名1 [ ,…列名n ])
ALTER TABLE student
ADD
address varchar(20) NULL,
telephone varchar(15) NULL,
courseid char(12) NULL
删除字段
【 例 】 在 student 表 中 , 删 除 “ class ” 、 “telephone”两列。 ALTER TABLE student DROP COLUMN class,telephone
依赖关系 ▪ 掌握如何利用SQL Server管理控制台和Transact-SQL语言
删除表
▪ 3.1 创建数据表 ▪ 3.2 管理数据表 ▪ 3.3 使用约束实现数据完整性 ▪ 3.4 插入、删除、修改表中数据
3.1 创建数据表
字段、记录
3.1 创建数据表
▪ 每个数据库可容纳20亿个表,每个表可以有1024列(字段)
sp_rename 'student.specialty', 'DepartmentName', 'COLUMN'
3.2.2 重命名数据表
sp_rename 原表名,新表名
【例】将course表重命名为Department。 sp_rename course,Department
3.2.3 删除数据表
NULL | SET DEFAULT } ] [ ON UPDATE {CASCADE | NO ACTION | SET
NULL | SET DEFAULT } ]
▪ create 和alter中都可使用
3.3.9 外键约束
【例】在jsjxy数据库中,为sc表创建外键约束。
ALTER TABLE sc ADD CONSTRAINT FK_sc_student FOREIGN KEY(id) REFERENCES student(id)
3.3.8 唯一约束
CREATE TABLE course (courseid char(12) PRIMARY KEY, coursename varchar(50) NOT NULL UNIQUE, credit int) CREATE TABLE course (courseid char(12) PRIMARY KEY, coursename varchar(50) NOT NULL, credit int, constraint kk unique(coursename))
3.3.7 主键约束
【例】在score1表中,将id和courseid两个字段 设为主键。
CREATE TABLE score1 ( id char(12) NOT NULL , courseid char (12) NOT NULL, score float, CONSTRAINT PK_score1 PRIMARY KEY(id,courseid) )
3.3.10 检查约束
▪ 2. 使用ALTER TABLE语句定义检查约束
第3章 数据表的创建和管理
本章学习目标
▪ 掌握SQL Server 2012中的数据类型 ▪ 掌握如何利用SQL Server管理控制台和Transact-SQL语言
创建表 ▪ 掌握创建、删除和修改约束的方法 ▪ 掌握增加、删除和修改字段的方法 ▪ 掌握如何查看数据表的定义、表中数据、数据库对象之间的
3.3.4 约束分类-约束与完整性
3.3.5 约束名
▪ 为了便于管理约束,在创建约束时,需要创建 约束的名称,约束名称必须符合标识符命名规 则。
3.3.6 创建约束的语法格式
▪ 1.使用CREATE TABLEHale Waihona Puke Baidu句创建 CREATE TABLE 表名 (<列定义><列约束> , [,…n] [,<表约束>[,…n]])
3.3.7 主键约束
【例】在jsjxy数据库中,创建student表并为id 字段添加主键。
CREATE TABLE student1 (
id char (12) NOT NULL PRIMARY KEY, name nvarchar (50) , sex char (2), age int, birthday date, nation nvarchar(50), class nvarchar(50), specialty nvarchar(50) )
查约束名] CHECK (<约束表达式>) [ ,…n ] )
CREATE TABLE xsscore (id char(8) NOT NULL, courseid char(4) NOT NULL, score decimal(4,1) NULL CHECK(score>=0 AND score<=100), CONSTRAINT PK_xsscore PRIMARY KEY(id,courseid), CONSTRAINT FK_xsscore_student FOREIGN KEY(id) REFERENCES xsscore(id), CONSTRAINT FK_xsscore_course FOREIGN KEY(courseid) REFERENCES course(courseid)
CREATE TABLE [database_name.[schema_name].|schema_name.]table_name ( {column_name <data_type> [NULL|NOT NULL] [IDENTITY[(seed,increment)]][<column_constraint> […n ] ] [ ,…n ] } [,< table_constraint>][,…n ] )
止因错误信息的输入/输出造成无效操作或报 错而提出的
3.3.2 数据完整性类型
▪ 实体完整性 ▪ 参照完整性 ▪ 域完整性
3.3.3 约束定义
▪ 约束(constraint)是SQL Server 2012提供 的自动保持数据库完整性的一种方法
▪ 约束就是限制,定义约束就是定义可输入表或 表的单个列中的数据的限制条件。
3.3.4 约束分类
▪ 主键约束(primary key constraint) ▪ 唯一约束(unique constraint) ▪ 外键约束(foreign key constraint) ▪ 检查约束(check constraint) ▪ 默认约束(default constraint) ▪ 非空约束(not null constraint)
增加字段
【 例 】 在 student 表 中 增 加 三 列 : “ address ” 列 , 数 据 类 型 为 varchar(20) , 允 许 为 空 ; “telephone”列,数据类型为varchar(15),允 许为空,“courseid”列,数据类型为char(12), 允许为空。
3.2.1 增加、删除和修改字段
ALTER TABLE table [ALTER COLUMN column_name {new_data_type[(precision[,scale])]}|[NULL|NOT NULL]}] |ADD{<column_defintion>|<computed_column_definition>} |<table_constrain>}[,…n] |DROP{[CONSTRAINT]constraint_name |COLUMN column_name}[,…n]
DROP TABLE 表名1[ ,…n ] 【例】删除Department表。
DROP TABLE Department
3.3 使用约束实现数据完整性
3.3.1 数据完整性定义 ▪ 数据完整性是指数据的正确性和有效性 ▪ 主要用于保证数据库中数据的质量 ▪ 防止数据库中存在不符合语义规定的数据和防
3.3.8 唯一约束
3.修改表语句创建唯一约束 【例】为student表添加唯一约束。
ALTER TABLE student1 ADD CONSTRAINT ddd unique(name)
3.3.9 外键约束
FOREIGN KEY (列名1,列名2,…,列名n) REFERENCES 主键表名 (列名1,列名2,…,列名n) [ ON DELETE {CASCADE | NO ACTION | SET
【例】为student表删除主键约束。
ALTER TABLE student drop CONSTRAINT PK_student
3.3.8 唯一约束
▪ 唯一约束(unique constraint)用于指定一 个列或多个列的组合值具有唯一性
✓ 唯一约束指定的列可以为NULL,但主键约束 所在的列则不允许为NULL。
定义主键约束的列其值不可为空、不可重复 每个表中只能有一个主键。
3.3.7 主键约束
▪ 2.在创建表的同时创建主键约束 (1)创建单个列的主键可采用列级约束
列名<列属性>[CONSTRAINT约束名]PRIMARY KEY
(2)多个列组合的主键约束,采用表级约束
[CONSTRAINT 约束名] PRIMARY KEY (列名1 [ ,…列名n ])
3.3.7 主键约束
▪ 3.在一张现有表上添加主键约束 【例】为student表添加主键约束。
ALTER TABLE student ADD CONSTRAINT PK_student PRIMARY KEY(id)
3.3.7 主键约束
▪ 4.删除主键约束 ALTER TABLE表名 DROP CONSTRAINT约束名1[,…约束名n]
修改字段
ALTER TABLE 表名 ALTER COLUMN 列名<列属性>
【例】在course表中,将courseid列的数据类型 改为varchar(20),允许空。 ALTER TABLE course
ALTER COLUMN courseid varchar(20) NULL
修改列名
sp_rename '表名.原列名','新列名',' COLUMN‘
)
3.1 创建数据表
▪ 创建表course
CREATE TABLE course ( courseid char(12) NOT NULL , coursename char (50) NOT NULL, credit int )
▪ 创建表sc
3.1 创建数据表
CREATE TABLE sc ( id char(12) NOT NULL , courseid char (12) NOT NULL, score float )
3.1 创建数据表
▪ 创建表student CREATE TABLE student
( id char (12) NOT NULL, name nvarchar (50) , sex char (2), age int, birthday date, nation nvarchar(50), class nvarchar(50), specialty nvarchar(50)
3.3.10 检查约束
▪ 1. 使用CREATE TABLE语句在建表时创建检查约束
CREATE TABLE 表名 (列名 数据类型 [<其他约束>] [CONSTRAINT 检
▪ 2.使用ALTER TABLE语句创建约束 ALTER TABLE 表名 ADD{<表约束>}
3.3.7 主键约束
▪ 1.主键约束的定义
主键约束(primary key constraint)用于 指定表的一列或几列的组合来唯一标识表,即能 在表中唯一地指定一行记录
这样的一列或列的组合称为表的主键( primary key,PK)
✓ 一个表中可以包含多个唯一约束,而主键约束 则只能有一个。
3.3.8 唯一约束
▪ 2.在创建表的同时创建唯一约束 (1)创建单个列的唯一可采用列级约束
列名<列属性>[CONSTRAINT约束名] unique
(2)多个列组合的唯一约束,采用表级约束
[CONSTRAINT 约束名] unique (列名1 [ ,…列名n ])
ALTER TABLE student
ADD
address varchar(20) NULL,
telephone varchar(15) NULL,
courseid char(12) NULL
删除字段
【 例 】 在 student 表 中 , 删 除 “ class ” 、 “telephone”两列。 ALTER TABLE student DROP COLUMN class,telephone
依赖关系 ▪ 掌握如何利用SQL Server管理控制台和Transact-SQL语言
删除表
▪ 3.1 创建数据表 ▪ 3.2 管理数据表 ▪ 3.3 使用约束实现数据完整性 ▪ 3.4 插入、删除、修改表中数据
3.1 创建数据表
字段、记录
3.1 创建数据表
▪ 每个数据库可容纳20亿个表,每个表可以有1024列(字段)
sp_rename 'student.specialty', 'DepartmentName', 'COLUMN'
3.2.2 重命名数据表
sp_rename 原表名,新表名
【例】将course表重命名为Department。 sp_rename course,Department
3.2.3 删除数据表
NULL | SET DEFAULT } ] [ ON UPDATE {CASCADE | NO ACTION | SET
NULL | SET DEFAULT } ]
▪ create 和alter中都可使用
3.3.9 外键约束
【例】在jsjxy数据库中,为sc表创建外键约束。
ALTER TABLE sc ADD CONSTRAINT FK_sc_student FOREIGN KEY(id) REFERENCES student(id)
3.3.8 唯一约束
CREATE TABLE course (courseid char(12) PRIMARY KEY, coursename varchar(50) NOT NULL UNIQUE, credit int) CREATE TABLE course (courseid char(12) PRIMARY KEY, coursename varchar(50) NOT NULL, credit int, constraint kk unique(coursename))
3.3.7 主键约束
【例】在score1表中,将id和courseid两个字段 设为主键。
CREATE TABLE score1 ( id char(12) NOT NULL , courseid char (12) NOT NULL, score float, CONSTRAINT PK_score1 PRIMARY KEY(id,courseid) )
3.3.10 检查约束
▪ 2. 使用ALTER TABLE语句定义检查约束
第3章 数据表的创建和管理
本章学习目标
▪ 掌握SQL Server 2012中的数据类型 ▪ 掌握如何利用SQL Server管理控制台和Transact-SQL语言
创建表 ▪ 掌握创建、删除和修改约束的方法 ▪ 掌握增加、删除和修改字段的方法 ▪ 掌握如何查看数据表的定义、表中数据、数据库对象之间的
3.3.4 约束分类-约束与完整性
3.3.5 约束名
▪ 为了便于管理约束,在创建约束时,需要创建 约束的名称,约束名称必须符合标识符命名规 则。
3.3.6 创建约束的语法格式
▪ 1.使用CREATE TABLEHale Waihona Puke Baidu句创建 CREATE TABLE 表名 (<列定义><列约束> , [,…n] [,<表约束>[,…n]])
3.3.7 主键约束
【例】在jsjxy数据库中,创建student表并为id 字段添加主键。
CREATE TABLE student1 (
id char (12) NOT NULL PRIMARY KEY, name nvarchar (50) , sex char (2), age int, birthday date, nation nvarchar(50), class nvarchar(50), specialty nvarchar(50) )
查约束名] CHECK (<约束表达式>) [ ,…n ] )
CREATE TABLE xsscore (id char(8) NOT NULL, courseid char(4) NOT NULL, score decimal(4,1) NULL CHECK(score>=0 AND score<=100), CONSTRAINT PK_xsscore PRIMARY KEY(id,courseid), CONSTRAINT FK_xsscore_student FOREIGN KEY(id) REFERENCES xsscore(id), CONSTRAINT FK_xsscore_course FOREIGN KEY(courseid) REFERENCES course(courseid)
CREATE TABLE [database_name.[schema_name].|schema_name.]table_name ( {column_name <data_type> [NULL|NOT NULL] [IDENTITY[(seed,increment)]][<column_constraint> […n ] ] [ ,…n ] } [,< table_constraint>][,…n ] )
止因错误信息的输入/输出造成无效操作或报 错而提出的
3.3.2 数据完整性类型
▪ 实体完整性 ▪ 参照完整性 ▪ 域完整性
3.3.3 约束定义
▪ 约束(constraint)是SQL Server 2012提供 的自动保持数据库完整性的一种方法
▪ 约束就是限制,定义约束就是定义可输入表或 表的单个列中的数据的限制条件。
3.3.4 约束分类
▪ 主键约束(primary key constraint) ▪ 唯一约束(unique constraint) ▪ 外键约束(foreign key constraint) ▪ 检查约束(check constraint) ▪ 默认约束(default constraint) ▪ 非空约束(not null constraint)
增加字段
【 例 】 在 student 表 中 增 加 三 列 : “ address ” 列 , 数 据 类 型 为 varchar(20) , 允 许 为 空 ; “telephone”列,数据类型为varchar(15),允 许为空,“courseid”列,数据类型为char(12), 允许为空。
3.2.1 增加、删除和修改字段
ALTER TABLE table [ALTER COLUMN column_name {new_data_type[(precision[,scale])]}|[NULL|NOT NULL]}] |ADD{<column_defintion>|<computed_column_definition>} |<table_constrain>}[,…n] |DROP{[CONSTRAINT]constraint_name |COLUMN column_name}[,…n]
DROP TABLE 表名1[ ,…n ] 【例】删除Department表。
DROP TABLE Department
3.3 使用约束实现数据完整性
3.3.1 数据完整性定义 ▪ 数据完整性是指数据的正确性和有效性 ▪ 主要用于保证数据库中数据的质量 ▪ 防止数据库中存在不符合语义规定的数据和防
3.3.8 唯一约束
3.修改表语句创建唯一约束 【例】为student表添加唯一约束。
ALTER TABLE student1 ADD CONSTRAINT ddd unique(name)
3.3.9 外键约束
FOREIGN KEY (列名1,列名2,…,列名n) REFERENCES 主键表名 (列名1,列名2,…,列名n) [ ON DELETE {CASCADE | NO ACTION | SET
【例】为student表删除主键约束。
ALTER TABLE student drop CONSTRAINT PK_student
3.3.8 唯一约束
▪ 唯一约束(unique constraint)用于指定一 个列或多个列的组合值具有唯一性
✓ 唯一约束指定的列可以为NULL,但主键约束 所在的列则不允许为NULL。
定义主键约束的列其值不可为空、不可重复 每个表中只能有一个主键。
3.3.7 主键约束
▪ 2.在创建表的同时创建主键约束 (1)创建单个列的主键可采用列级约束
列名<列属性>[CONSTRAINT约束名]PRIMARY KEY
(2)多个列组合的主键约束,采用表级约束
[CONSTRAINT 约束名] PRIMARY KEY (列名1 [ ,…列名n ])
3.3.7 主键约束
▪ 3.在一张现有表上添加主键约束 【例】为student表添加主键约束。
ALTER TABLE student ADD CONSTRAINT PK_student PRIMARY KEY(id)
3.3.7 主键约束
▪ 4.删除主键约束 ALTER TABLE表名 DROP CONSTRAINT约束名1[,…约束名n]
修改字段
ALTER TABLE 表名 ALTER COLUMN 列名<列属性>
【例】在course表中,将courseid列的数据类型 改为varchar(20),允许空。 ALTER TABLE course
ALTER COLUMN courseid varchar(20) NULL
修改列名
sp_rename '表名.原列名','新列名',' COLUMN‘
)
3.1 创建数据表
▪ 创建表course
CREATE TABLE course ( courseid char(12) NOT NULL , coursename char (50) NOT NULL, credit int )
▪ 创建表sc
3.1 创建数据表
CREATE TABLE sc ( id char(12) NOT NULL , courseid char (12) NOT NULL, score float )
3.1 创建数据表
▪ 创建表student CREATE TABLE student
( id char (12) NOT NULL, name nvarchar (50) , sex char (2), age int, birthday date, nation nvarchar(50), class nvarchar(50), specialty nvarchar(50)