文章目录
表的操作1. 表的创建【CREATE TABLE 表名】2. 使用T-SQL语句修改表(修改列的属性、增加列、删除列)3. 列约束和表约束4. 表数据操作(insert、update、delete、truncate)5. 删除表【drop table 表名】表的操作
1. 表的创建【CREATE TABLE 表名】
在数据库“teaching”中创建“course” 表 USE teachingGOCREATE TABLE course(cno char(4) PRIMARY KEY,cname nvarchar(20) NOT NULL,classhour tinyint CHECK(classhour>=2 and classhour<=6),credit tinyint CHECK (credit>=2 and credit<=5))
2. 使用T-SQL语句修改表(修改列的属性、增加列、删除列)
2.1修改列的属性
在student表中修改“sname”字段的属性,使该字段的数据类型为nvarchar(10),允许取空值。USE teachingGOALTER TABLE studentALTER COLUMN sname nvarchar(10) NULL
2.2 增加列
在course表中添加“teacher”字段,数据类型为nvarchar(8)。USE teachingGOALTER TABLE courseADD teacher nvarchar(8)
2.3 删除列
删除student表中的“birthday”字段。USE teachingGOALTER TABLE studentDROP COLUMN birthday
3. 列约束和表约束
SQL Server 提供了6种约束:
PRIMARY KEY(主键)、
FOREIGN KEY(外键)、
UNIQUE(唯一性)、
CHECK(取值范围)、
DEFAULT(默认值)约束
NULL和NOT NULL(是否允许为空)
CREATE TABLE Department(Did char(4) PRIMARY KEY not null,Dname char(20) not null,Dtel char(11) CHECK (Dtel like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ) not null)create table Employee(Eid char(5) primary key not null,Did char(4) not null,Ename char(10) not null,Esex char(2) not null,Ebirth date check(Ebirth>='1956-1-1' and Ebirth<='2050-1-1'),foreign key(Did) references Department(Did))CREATE TABLE Borrow(Eid char(5) FOREIGN KEY REFERENCES Employee(Eid),ISBN char(15) FOREIGN KEY REFERENCES Book(ISBN),Bdate date CHECK(Bdate BETWEEN '2000-1-1' AND '2030-1-1'),Pdate date CHECK(Pdate BETWEEN '2000-1-1' AND '2030-2-1'),Rdate date CHECK(Rdate BETWEEN '2000-1-1' AND '2030-2-1'),)
DEFAULT约束
当使用INSERT语句插入数据时,如果没有为某一个列指定数据,那么DEFAULT约束就在该列中输入一个默认值。
例如:在学生表的性别列中定义了一个DEFAULT约束为“男”。当向该表中输入数据时,如果没有为性别列提供数据,那么DEFAULT约束把默认值“男”自动插入到该列中。因此,DEFAULT约束可以实现保证域完整性。
CREATE TABLE ST(学号char(6) PRIMARY KEY,身份证号 char(18) UNIQUE,姓名nvarchar(8) NOT NULL,专业名 nvarchar(10),性别nchar(1) CONSTRAINT chk_1 CHECK (性别='男' or 性别='女'),出生时间 smalldatetime NOT NULL,总学分 tinyint,入学日期 datetime DEFAULT getdate( ) )
4. 表数据操作(insert、update、delete、truncate)
insert
在学生(ST)表中插入一行数据。INSERT into ST(学号,姓名,性别,出生时间) VALUES('150111','杨丽','女','1996-10-3')或INSERT into ST VALUES('150112','130212199707120895','张强','网络工程','男','1997-7-12',150,'-9-1')
update
UPDATE ST SET 性别='女' WHERE 姓名='杨丽'
delete
删除ST表中,将学号为‘150112’的学生记录删除。DELETE FROM ST WHERE 学号 = '150112'
truncate
清空学生表中的数据TRUNCATE TABLE STtruncatevt.截断;截短,缩短,删节(尤指掐头或去尾)adj.截短的;被删节的
5. 删除表【drop table 表名】
删除学生表(ST)DROP TABLE ST