通过SQL语句创建与管理数据表

通过SQL语句创建与管理数据表

实验环境:SQL server2017
表:依次是Student,Course,SC。

通过SQL语句创建与管理数据表_第1张图片通过SQL语句创建与管理数据表_第2张图片通过SQL语句创建与管理数据表_第3张图片

1.通过SQL语句创建表

用SQL语句创建Student表,Course表,SC表。

Student表:涉及空值约束,主键约束,默认值约束,均为列级完整性约束,可直接写在在对应列后面。

create table Student(
	Sno char(8) not null primary key,
	Sname varchar(8) not null,
	Sex char(2) not null default '男',
	Birth smalldatetime not null,
	Classno char(3) not null,
	Entrance_date smalldatetime not null,
	Home_addr varchar(40)
);
go

Course表:出现了新的约束,但仍是列级约束。

create table Course(
	Cno char(3) not null primary key,
	Cname varchar(20) not null,
	Total_perior smallint check(Total_perior>0),
	Credit tinyint check(Credit>0 and Credit<=6),
);
go

SC表主键由两个属性构成,必须作为表级完整性约束(所有列写完再写)

create table SC(
	Sno char(8) not null,
	Cno char(3)not null,
	Grade tinyint check(Grade>=0 and Grade<=100),
	primary key(Sno,Cno),
	foreign key(Sno) references Student(Sno),
	/* 表级完整性约束条件,Sno是外键,被参照表是Student*/
	foreign key(Cno) references Course(Cno),
	/* 表级完整性约束条件,Cno是外键,被参照表是Course*/
);
go

2.通过SQL语句管理表结构

对表进行修改为 ALTER TABLE <表名>
[ADD <新列名><数据类型>| [完整性约束] ] 用于新增列和完整性约束
[DROP COLUMN<列名> | <完整性约束]>] 用于删除列和指定的完整性约束
[ALTER COLUMN<列名><数据类型>]; 用于修改列名和数据类名

  1. 添加和删除列
    (1)给Student添加身高(以米为单位)列stature,类型为numeric(4,2),允许为空值,但身高需小于3.0米。
    (2)给Student表增加所在系列sdept,字符型,长度为20,不允许为空值。
    (3)给Student表增加邮政编码列postcode,字符型,长度为6,可以为空,若不为空,则要求其值只能出现数字,不能是其他字符。
alter table Student 
add stature numeric(4,2) check(stature<3.0),sdept char(20) not null,postcode char(6) check(postcode like'[0-9][0-9][0-9][0-9][0-9][0-9]');
/*同一个表的新增列操作合一行写了,like'[0-9][0-9][0-9][0-9][0-9][0-9]'约束数字*/
go

(4)删除Student表中的身高列stature

alter table Student drop constraint CK__Student__stature__4222D4EF;
alter table Student drop column stature;
go
/*这里直接删会报错,因为还有约束,所以第一行先删除对应约束*/
  1. 添加和删除约束
    (1)在Student表中添加约束:入学时间必须在出生年月之后。
alter table Student add check(Entrance_date>Birth);
go

(2)给SC表的成绩列grade增加默认值约束,默认值为0。

alter table SC add default(0) for grade;
go

(3)删除grade列的默认值约束。
未解决

alter table SC
alter column grade drop default
go

报错:关键字 ‘default’ 附近有语法错误。
这里给出w3c相关的撤销 DEFAULT 约束
通过SQL语句创建与管理数据表_第4张图片
SQL DEFAULT约束https://www.w3school.com.cn/sql/sql_default.asp

你可能感兴趣的:(通过SQL语句创建与管理数据表)