Sql Server创建表,修改表及列约束和表约束的设置

友情提示:菜鸡用土话写的文章

文章目录

目录

文章目录

前言

一、 实验目的

二、 实验要求

三、 实验内容

实验2-1 创建表

表2.1 “student”表的结构

表2.2 “course”表的结构

表2.3 “sc”表的结构

二、实验步骤

1.使用SSMS创建“student”表

​编辑

2.修改表

​编辑

4.设置唯一性约束

4.设置外键约束

​编辑

5.设置Check约束

6.设置默认值约束

所有SQL代码如下 :

总结


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,SQL server这门技术也越来越重要(学校说的,我也不知道学学校是怎么想的),很多人都开启了数据库学习,比如近几年比较火热的MySQL在java中应用的比较常见,学完了MySQL对于SQL server的学习会有很大帮助,本文就介绍了SQL server如何创建表和约束。


提示:以下是本篇文章正文内容,下面案例可供参考

一、 实验目的

  1. 使读者掌握使用SSMS和T-SQL语句创建表、修改表的知识 ;

  2. 使读者掌握使用SSMS和T-SQL语句设置列约束、表约束的知识;

  3. 培养读者利用SQL Server 2014创建表、修改表的能力;

  4. 培养读者利用SQL Server 2014为表设置列约束、表约束的能力;

  5. 培养读者理解数据库完整性、理解规则,明白现实世界的事物都要遵守一定的发展规律,同样反映客观事物的数据库也要体现规则。

二、 实验要求

  1. 熟练使用SSMS进行表的创建和修改操作,要求student做好翻转课堂演示相关操作的准备;

  2. 熟练使用T-SQL语句创建和修改表;

  3. 熟练使用SSMS设置列约束、表约束;

  4. 熟练使用T-SQL语句设置列约束、表约束;

  5. 读者应独立完成本次实验,并在各实验的关键步骤截图(本书已有的截图无须重复),完成实验报告,并按教师指定方式提交网络教学平台。

三、 实验内容

实验2-1 创建表

实验要求

  1. 在数据库teaching中使用SSMS创建“student”表,该表结构如表2.1所示,注意建表时要明确主键;

表2.1 “student”表的结构

字段名 数据类型 长度 是否允许为空 键值 说明
sno char 8 主键 学号
sname varchar 20 姓名
ssex nchar 2 性别
sage tinyint 年龄
en_time date 入学时间
specialty varchar 20 专业
grade char 4 年级

2.使用T-SQL语句创建“course”表和“sc”表,注意建表时要明确主键。

表2.2 “course”表的结构

字段名 数据类型 长度 是否允许为空 键值 说明
cno char 4 主键 课程号
cname varchar 20 课程名
classhour tinyint 学时
credit tinyint 学分

表2.3 “sc”表的结构

字段名 数据类型 长度 是否允许为空 键值 说明
sno char 8 主键 学号
cno char 4 主键 课程号
score tinyint 成绩

二、实验步骤

1.使用SSMS创建“student”表

启动SSMS,在“对象资源管理器”中右击teaching2数据的“表”节点,选择“表”命令,创建完成后输入数据然后将sno设置为主键,最后Ctrl+s保存,将这个表的名称修改为student。

Sql Server创建表,修改表及列约束和表约束的设置_第1张图片

 接下来写course和sc表使用T-sql语句进行创建

Sql Server创建表,修改表及列约束和表约束的设置_第2张图片

use teaching2
go 
create table course(
cno char(4) primary key,
cname varchar(20) not null,
classhour tinyint,
credit tinyint
)
go 
create table sc(
sno char(8) not null,
cno char(4) not null,
score tinyint null,
primary key (sno,cno)
)

Sql Server创建表,修改表及列约束和表约束的设置_第3张图片

选中后执行在命令成功的情况下刷新左侧对象资源管理器可以看到我们的表已经创建成功了,和实验要求中的三个表相比较没有出入。

Sql Server创建表,修改表及列约束和表约束的设置_第4张图片

2.修改表

  • 为student表增加字段(add指令)

Sql Server创建表,修改表及列约束和表约束的设置_第5张图片

  • 为student表删除字段(drop指令)

Sql Server创建表,修改表及列约束和表约束的设置_第6张图片

  • 为course表修改字段属性

Sql Server创建表,修改表及列约束和表约束的设置_第7张图片

3.设置主键约束  

实验要求

  1. 在SSMS中将“student”的主键由sno改为sname;

  2. 使用T-SQL语句将“student”的主键由sname改为sno。

修改主键:直接在student表中点击右键设计,给sname设置主键,记得每次设置完成之后要保存

Sql Server创建表,修改表及列约束和表约束的设置_第8张图片

T-Sql将主键再次设置为sno(要设置主键需要先将之前的主键删除,之前主键的名字在键中为PK_student,PK_stu为新设置的键,我们将其命名为PK_stu,当然这个名字也可以自己取)  

Sql Server创建表,修改表及列约束和表约束的设置_第9张图片

4.设置唯一性约束

实验要求

1.在SSMS中为“student”的sname列设置唯一性约束;

2.使用T-SQL语句将“student”的sname列上的唯一性约束删除。

  • 在SSMS中鼠标操作sname,选择“索引/键”命令,选择添加按钮,将类型设置为唯一键。刷新之后再键中我们可以看到多了一把钥匙。

 Sql Server创建表,修改表及列约束和表约束的设置_第10张图片

使用T-SQL语句设置唯一性约束  

Sql Server创建表,修改表及列约束和表约束的设置_第11张图片

执行这个操作之后IX_student就被删除了,那么我们思考如何使用T-SQL语句添加唯一性约束呢? Sql Server创建表,修改表及列约束和表约束的设置_第12张图片 

再次查看,说明这个唯一键约束有添加成功了。

4.设置外键约束

实验要求

  1. 利用SSMS中的数据库关系图实现“sc”表中“sno”字段的FOREIGN KEY约束。

  2. 使用T-SQL命令实现“sc”表中“cno”字段的FOREIGN KEY约束。

  • 使用数据库关系图实现外键约束

Sql Server创建表,修改表及列约束和表约束的设置_第13张图片

Sql Server创建表,修改表及列约束和表约束的设置_第14张图片

接下来,要将三个表之间的关系关联起来。按实验要求,一个student表中的sno,在sc表中应该出现多次,也就是说是1:n的联系;因此,将student表中的sno字段左侧的“金钥匙”符号拖拽到sc表的sno字段上。此时,弹出“表和列”对话框。在对话框中自动创建了外键关系“FK_sc_student”,并分别明确了主键表和外键表。单击“确定”按钮。  

Sql Server创建表,修改表及列约束和表约束的设置_第15张图片

 此时在数据库关系图中将看到从sc表发出的指向student表的一根连线,该连线表示两个表之间的关系。

Sql Server创建表,修改表及列约束和表约束的设置_第16张图片

这样我们又可以看到sc表中又多了一把钥匙。

5.设置Check约束

实验要求

  1. 利用SSMS设置“student”表中“ssex”字段的CHECK约束,该字段值必须为“男”或“女”。

  2. 使用T-SQL语句修改数据库“teaching”中 “sc”表,创建CHECK约束使得score取值范围为0~100。

SSMS操作:

 Sql Server创建表,修改表及列约束和表约束的设置_第17张图片

 在右侧“常规”栏目的“表达式”文本框中输入“ssex='男' OR ssex='女'”,注意符号应该是英文半角字符。然后,单击“关闭”按钮,最后记得保存。

T-SQL语句操作

Sql Server创建表,修改表及列约束和表约束的设置_第18张图片

可以看到这时sc中的约束条件也创建成功了。  

6.设置默认值约束

实验要求

  1. 利用SSMS为“teaching”数据库“student”表中的“ssex”字段设置默认值约束为“男”;

  2. 使用T-SQL修改表时创建默认值约束,修改数据库“teaching”中的“student”表“en_time”字段,为其设置默认值约束,默认值为当前日期。

SSMS操作(直接输入默认值即可)

Sql Server创建表,修改表及列约束和表约束的设置_第19张图片

T-SQL语句操作

Sql Server创建表,修改表及列约束和表约束的设置_第20张图片

执行代码后查看此时默认值已经设置好了。

Sql Server创建表,修改表及列约束和表约束的设置_第21张图片 

所有SQL代码如下 :

use teaching2
go 
create table course(
cno char(4) primary key,
cname varchar(20) not null,
classhour tinyint,
credit tinyint
)
go 
create table sc(
sno char(8) not null,
cno char(4) not null,
score tinyint null,
primary key (sno,cno)
)

use teaching2
go
alter table student
add email varchar(20)

use teaching2
go
alter table student
drop column email

use teaching2
go
alter table course
alter column cname varchar(32)

use teaching2
go
alter table student
drop constraint PK_student
go
alter table student
add constraint PK_stu primary key(sno)

use teaching2
go
alter table student
drop constraint IX_student

alter table student
add constraint IX_student unique(sname)



use teaching2
go
alter table sc 
add constraint FK_sc_course FOREIGN key(cno) references course(cno)


use teaching2
go
alter table sc 
add constraint CK_CJ check(score>=0 and score<=100)



use teaching2
go
alter table student
add constraint DF_EN default getdate() for en_time


总结

提示:这里对文章进行总结:
例如:以上使用的是SQL server2019所创建的teaching2数据库,实验内容为创建表、修改表及列约束和表约束的设置。其中约束比较重要。

你可能感兴趣的:(SQL,server实验,数据库,sqlserver)