SQL语言编程学习系列(一)——数据库及表的创建与管理

        本系列同样是记录代码为主,附带实验内容与要求,可参考代码,SQL编码习惯为小写且习惯性换行

        实验的环境和软件为Microsoft SQLServer 2019

实验内容:

1.创建教务管理数据库(jwgl),其数据文件和日志文件分别为jwgl_data.mdf和jwgl_log.ldf。

2.依据表1~表5所示创建对应的数据表,设置表的列名、数据类型及约束。


表1 学生表(student)

字段名称

字段类型及长度

说明

备注

sno

char(10)

学生学号

主键

sname

char(6)

学生姓名

非空

ssex

char(2)

学生性别

可为空

sbirth

smalldatetime

学生出生日期

可为空

clno

char(6)

班级编号

外键

表2 课程表(course)

字段名称

字段类型及长度

说明

备注

cno

char(4)

课程编号

主键

cname

varchar(20)

课程名称

非空

chours

int

学时

可为空

表3 选课表(sc)

字段名称

字段类型及长度

说明

备注

sno

char(10)

学生学号

外键,联合主键

cno

char(4)

课程编号

外键,联合主键

grade

int

成绩

可为空

表4 班级表(class)

字段名称

字段类型及长度

说明

备注

clno

char(6)

班级编号

主键

clname

varchar(20)

班级名称

非空

clth

char(9)

班主任编号

可为空

 表5 教师表(teacher)

字段名称

字段类型及长度

说明

备注

tno

char(7)

教师编号

主键

tname

char(10)

教师姓名

非空

tsex

char(2)

学生性别

默认为“男”

dept

char(20)

所在部门

可为空

sid

char(18)

身份证号

非空


--3-1-1
create database 教务系统 on primary
(name='jwgl',
filename='E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\jwgl.mdf',
size=30,maxsize=unlimited,filegrowth=10)
log on
(name='jwgl_log',
filename='E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\jwgl_log.ldf',
size=20,maxsize=2048gb,filegrowth=10)
go

--3-1-2
use 教务系统
create table course(
cno char(4) primary key,
cname varchar(20) not null,
chours int)
bulk insert 教务系统.dbo.course
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\course.txt'


use 教务系统
create table class(
clno char(6) primary key,
clname varchar(20) not null,
clth char(9))
bulk insert 教务系统.dbo.class
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\class.txt'


use 教务系统
create table teacher(
tno char(7) primary key,
tname char(10) not null,
tsex char(2) default'm',
dept char(20),
tid char(18) not null)


use 教务系统
create table student(
sno char(10) primary key,
sname char(6) not null,
ssex char(2),
sbirth char(20),
clno char(6) foreign key references class(clno))
bulk insert 教务系统.dbo.student
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\student.txt'


use 教务系统
create table sc(
sno char(10) foreign key references student(sno),
cno char(4) foreign key references course(cno),primary key(sno,cno),
grade int)
bulk insert 教务系统.dbo.sc
from 'E:\UniversityGrade2\Tail\DBMS\DBMS实验1\DBMS实验1\ex3data\sc.txt'

3.在student表中增加新字段“班级编号(clno)”和“班级名称(clname)”。 

--3-1-3
alter table student
add clname varchar(20)

4.在student表中删除字段“班级名称(clname)”。

--3-1-4
alter table student
drop column clname

5.修改student表的sname字段的长度为6。

--3-1-5
alter table student
alter column sname char(6)

6.修改student表的sbirth字段的名称为sbirthday。

--3-1-6
EXEC sp_rename 'student.[sbirth]','sbirthday','column'

7.修改teacher表的名称为th_info。

--3-1-7
EXEC sp_rename @objname='teacher',@newname='th_info'

8.删除teacher表。

--3-1-8
drop table th_info

9.在sc表中为grade字段增加一个check约束,限制其值在0~100之间。

--3-1-9
alter table sc
add check (grade>=0 and grade<=100)

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值