T-SQL之数据表操作
1、数据表的创建(CREATE TABLE语句)
创建数据库的语法:
CREATE TABLE 表名称
(
<列名称1> <数据类型> [列级完整性约束定义]
[,<列名称2> <数据类型> [列级完整性约束定义]]
[,<列名称3> <数据类型> [列级完整性约束定义]...]
[,表级完整性约束定义]
)
(
<列名称1> <数据类型> [列级完整性约束定义]
[,<列名称2> <数据类型> [列级完整性约束定义]]
[,<列名称3> <数据类型> [列级完整性约束定义]...]
[,表级完整性约束定义]
)
数据类型
约束
约束的分类:(以约束定义的位置为分类的依据,可以将约束分为列级约束和表级约束)
列级约束:NOT NULL约束、DEFAULT约束;
表级约束:UNIQUE月俗话、CHECK约束、PRIMARY KET约束、FOREIGN KEY约束。
注:列级约束只能在列定义处进行定义
约束语法:
CONSTRAINT 约束名称 约束类型及其条件
简介约束语法:
NOT NULL约束:(列级)
CONSTRAINT NN_XXX NOT NULL;
DEFAULT约束:(列级)
CONSTRAINT DF_XXX DEFAULT 默认值 FOR 列名称;
UNIQUE约束:
CONSTRAINT UN_XXX
UNIQUE
列名称;
CHECK约束:
CONSTRAINT CK_XXX
CHECK(条件)
PRIMARY KEY约束:
CONSTRAINT PK_XXX
PRIMARY KEY(列名)
FOREIGN KEY约束:
CONSTRAINT FK_XXX
FOREIGN KEY(列名) REFERENCES 表名(列名)
创建数据表实例:
USE DemoTest
GO
CREATE TABLE Class --创建班级表
(
C_id INT, --班级编号
C_name NVARCHAR(16) NOT NULL, --班级名称、非空
C_des NVARCHAR(64) NULL CONSTRAINT DF_C_des DEFAULT N'无',--班级描述(默认描述为无)
CONSTRAINT PK_C_id PRIMARY KEY(C_id), --表级定义主键约束
CONSTRAINT UN_C_name UNIQUE(C_name), --表级定义唯一约束
CONSTRAINT CK_C_id CHECK(C_id > 0) --表级定义CHECK约束
)
CREATE TABLE Student --创建学生表
(
S_id INT CONSTRAINT PK_S_id PRIMARY KEY, --学号、列级主键约束
S_name NVARCHAR(4) NOT NULL CONSTRAINT UN_S_name UNIQUE, --学生姓名、非空且唯一
S_age TINYINT NOT NULL CONSTRAINT CK_S_age CHECK(S_age > 20),--年龄、非空且必须大于20
S_gender BIT CONSTRAINT DF_S_gender DEFAULT 0, --性别,默认为0(女)
C_id INT NOT NULL CONSTRAINT FK_C_id_C_id FOREIGN KEY(C_id) REFERENCES Class(C_id)--学生所在班级(外键约束)
)
GO
T-SQL之数据表修改
修改数据表(ALTER TABLE语句)
对于数据表的修改操作主要有:
->修改数据表的名称;
->修改数据表中列项的名称;
->向数据表中添加列项;
->删除数据表中的列项;
->删除数据表中的约束项;
->修改数据表中列的数据类型;
示例代码:
EXEC sp_rename 'Student','ss' --修改表的名称
EXEC sp_rename 'Student.S_gender','nn','column' --修改数据表的列名
GO
--语法抽象:EXEC sp_rename 旧名称,新名称,类型(表类型默认为空,列类型为column)
ALTER TABLE Student --向数据表添加多个新列
ADD SS INT,XX INT
GO
--语法抽象:ALTER TABLE 数据表名称 ADD 列名 数据类型
ALTER TABLE Student --删除数据表中的指定列
DROP COLUMN SS,XX
GO
--语法抽象:ALTER TABLE 数据表名称 DROP COLUMN 列名
ALTER TABLE Student --删除数据表中定义的约束
DROP CONSTRAINT [UN_S_name]
GO
--语法抽象: ALTER TABLE 数据表名称 DROP CONSTRAINT 约束名称
ALTER TABLE Student --修改数据表中的列定义
ALTER COLUMN S_age INT
GO
--语法抽象: ALTER TABLE 数据表名称 ALTER COLUMN 列名称 数据类型
T-SQL之数据库删除
删除数据表主要使用(DROP TABLE语句)
--数据表删除(DROP TABLE)
DROP TABLE Student
GO