SQL SERVER数据定义——实验篇

一 建立一个数据库,名为:学生管理

 在学生管理数据库中,参考教材第四章的三张表要求,建立学生表,课程表,成绩表

要求:(1)根据教材上的具体数据内容来自定义各列属性类型的宽度,做好主码约束

       (2)做好三个表之间外键约束

     (3)使用insert命令向三个表中各建立若干实际数据(认真对待,以后实验经常要使用到这三个表)

1 学生表(学号PK,  姓名 , 专业名 , 性别 ,入校成绩 ,手机号, 照片 ,备注)

要求:学号为主键; 姓名的长度介于2-5;性别的取值只能限于”男,女”之一,且默认值为:男;入校成绩只能取介于200-700之间.

2 课程表(课程号PK ,  课程名称 , 任课教师 ,  学分)

3 成绩表(学号FK,  课程号FK,  成绩),注意,成绩表的学号和课程号分别是学生表和课程表的外键. 课程号为4位字符串,其中第一位为字母”D”,后面2位为0-9的数字; 成绩值只能取0-100之间.

create table XS
(
xh char(9)primary key,
xsname char(16)NOT NULL,
zyname varchar(30)NOT NULL,
xb char(2)CHECK(xb IN('男','女')) default('男')NOT NULL,
rxcj int check(rxcj>200and rxcj<700) NOT NULL,
sjh char(11) ,
ZP char(11) ,
bz char(30),
)

create table KC
(
kch char(4) check(kch like'[D][0-9][0-9][0-9]') primary key,
kcmc char(20)NOT NULL,
rkls char(8) NOT NULL,
xf int NOT NULL,
)

create table CJ
(
xh char(9),
kch char(4)check(kch like'[D][0-9][0-9][0-9]'),
cj int check(cj<100and cj>0),
foreign key(xh) REFERENCES XS(xh),
foreign key(kch) REFERENCES KC(kch),
)

二 练习SQL的其它数据定义功能(表结构的修改):

1向学生表中增加身高(指定数值型,3位2位小数),出生日期,是否党员,是否团员四列;

USE XSGL 
alter table XS add sg decimal(3,2)
alter table XS add csrq datetime
alter table XS add dy char(2)CHECK(dy IN('是','否'))
alter table XS add ty char(2)CHECK(ty IN('是','否'))

2删除是否团员一列

use XSGL
alter table XS drop column ty

4为手机号列增加约束:必须为11位,且每位为数字;为性别列增加一个约束,插入新记录时默认值为’男’

alter table XS add CONSTRAINT sjh check(sjh like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
alter table XS add CONSTRAINT xb DEFAULT('男')

5向课程表中增加”任课教师”列

alter table KC add rkjs char(30)

6对已有表,增加约束,限制身高在1.00-2.0米之间

alter table XS add CONSTRAINT sg check(sg>1.00and sg<2.00)

7对课程表中的课程名称进行唯一限制

alter table KC add CONSTRAINT kcmc unique (kcmc)

三 向三个表中添加数据内容

 使用insert into 命令在以上三表中各录入有效数据至少5行。 特别注意这些数据按关键字相互存在联系的

引例:向成绩表中插入一个学生的一门课成绩:

Insert into 成绩表(学号,课程号,成绩) values (‘0000001’,’D102’,78)

 Insert into CJ(xh,kch,cj) values ('0000001','D101',78)
Insert into CJ(xh,kch,cj) values ('0000002','D101',89)
Insert into CJ(xh,kch,cj) values ('0000003','D102',90)
Insert into CJ(xh,kch,cj) values ('0000004','D103',90)
Insert into CJ(xh,kch,cj) values ('0000005','D103',60)
Insert into CJ(xh,kch,cj) values ('0000006','D104',30)
Insert into CJ(xh,kch,cj) values ('0000007','D105',99)

Insert into KC(kch,kcmc,rkjs,xf) values ('D101','数据库','张少华',32)
Insert into KC(kch,kcmc,rkjs,xf)  values ('D102','数据结构','杨柳',48)
Insert into KC(kch,kcmc,rkjs,xf)  values ('D103','C++','王建',48)
Insert into KC(kch,kcmc,rkjs,xf)  values ('D104','计算机网络','吴敏',64)
Insert into KC(kch,kcmc,rkjs,xf)  values ('D105','网络协议','李燕',32)

USE XSGL
Insert into XS(xh,xsname,zyname,xb,rxcj,sjh,ZP,bz,sg,csrq,dy) values ('0000001','李华','土木工程','男',588,'13234567802','无照片','无备注',1.78,2003-12-09,'否')
Insert into XS(xh,xsname,zyname,xb,rxcj,sjh,ZP,bz,sg,csrq,dy) values ('0000002','刘小燕','信息安全','女',601,'13234567802','有照片','无备注',1.58,2002-01-08,'是')
Insert into XS(xh,xsname,zyname,xb,rxcj,sjh,ZP,bz,sg,csrq,dy) values ('0000003','张强','软件工程','男',590,'13234567803','无照片','有备注',1.80,2004-10-07,'否')
Insert into XS(xh,xsname,zyname,xb,rxcj,sjh,ZP,bz,sg,csrq,dy) values ('0000004','吴梅','土木工程','女',607,'13234567804','有照片','无备注',1.67,2003-09-16,'是')
Insert into XS(xh,xsname,zyname,xb,rxcj,sjh,ZP,bz,sg,csrq,dy) values ('0000005','李大壮','金融','男',578,'13234567805','有照片','无备注',1.89,2004-07-07,'否')
Insert into XS(xh,xsname,zyname,xb,rxcj,sjh,ZP,bz,sg,csrq,dy) values ('0000006','王春春','物联网','女',690,'13234567806','有照片','有备注',1.67,2002-01-09,'否')
Insert into XS(xh,xsname,zyname,xb,rxcj,sjh,ZP,bz,sg,csrq,dy) values ('0000007','何小华','物联网','男',540,'13234567807','无照片','无备注',1.79,2003-05-26,'是')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值