表和表数据的管理实验:
实验目的
(1)能够用图形化方式和T-SQL语句方式创建表、修改表、管理表记录。
下面用T-SQL语句介绍:
创建stu表
create table stu(
sno char(8) NOT NULL, --学号
sname char(8) NOT NULL, --姓名
sex char(2) NULL, --性别
native char(20) NULL, --籍贯
birthday smalldatetime NULL, --出生日期
dno char(6) NULL, --所在院系
zno char(8) NULL, --专业代码
classno char(8) NULL, --班级号
entime smalldatetime NULL, --入校时间
home varchar(40) NULL, --家庭住址
tel varchar(40) NULL, --联系电话
primary key(sno),
foreign key(zno) references zy (zno), --设置zno为外键
)
创建course表
create table course(
cno char(4) NOT NULL, --课程编号
zno char(8) NULL, --专业代码
cname varchar(20) NOT NULL, --课程名称
experiment tinyint NULL, --实训时数
lecture tinyint NULL, --授课学时
semester varchar(20) NULL, --开课学期
credit tinyint NULL, --课程学分
primary key(cno),
foreign key(zno) references zy (zno), --设置zno为外键
)
创建stu_course表
create table stu_course(
sno char(8) NOT NULL, --学生学号
tcid smallint NOT NULL, --上课编号
score tinyint NULL, --成绩
primary key(sno,tcid)
)
创建teacher表
create table teacher(
tno char(8) NOT NULL, --教师编号
tname char(8) NOT NULL, --教师姓名
sex char(2) NULL, --教师性别
birthday smalldatetime NULL, --教师出生日期
dno char(6) NULL, --教师所在院系
home varchar(40) NULL, --教师家庭住址
tel varchar(40) NULL, --联系电话
email varchar(40) NULL, --电子邮件
primary key(tno)
)
创建teacher_course表
create table teacher_course(
tcid smallint NOT NULL, --上课编号
tno char(8) NULL, --教师编号
zno char(8) NULL, --专业代码
classno char(8) NULL, --班级号
cno char(4) NULL, --课程编号
semester char(6) NULL, --学期
schoolyear char(10) NULL, --学年
classtime varchar(40) NULL, --上课时间
classroom varchar(40) NULL, --上课地点
weektime tinyint NULL, --每周课时数
primary key(tcid) ,
foreign key(tno) references teacher (tno), --设置tno为外键
foreign key(zno) references zy (zno), --设置zno为外键
foreign key(cno) references course (cno), --设置cno为外键
)
创建depar表
create table depar(
dno char(6) NOT NULL, --院系编号
dname char(16) NULL, --院系名称
primary key(dno)
)
创建zy表
create table zy(
zno char(8) NOT NULL, --专业代码
zname char(16) NULL, --专业名称
dno char(6) NULL, --院系编号
primary key(zno)
)
修改表结构:
(1)在course表中添加字段year,类型为int 可为空!
/*在course表中添加year int 类型 可为空 */
alter table course add year int NULL
(2)在year字段添加约束,取值在1998-2018之间!
/*year添加约束 1998--2017之间*/
alter table course with nocheck add check(year>=1998 and year<=2017)
向表中添加记录:
insert into stu values('001','赵一','男','安徽合肥','1992-1-6','01','0101','010101','2005-9-1','193路','1')
insert into zy values('0101','软件技术','01')
insert into depar values('01','信息工程系')
insert into stu_course values('001','1','59')
insert into teacher values('01001','李田','男','1992-2-1','01','浙江杭州','1','a')
insert into course values('01','0101','计算机','30','80','2016年春','1')
insert into teacher_course values('1','01001','0101','010101','01','1','1','9月12日','A楼','2')
说明:在创建表时:注意外键约束条件,应先执行无外键约束的表!
以上插入表中的记录,每张表都依次插入一条语句,对于题目中要求的记录表中均没有,请自己添加即可!!!
/*把李寻同学的出生日期改为1998-12-15*/
update stu set birthday='1998-12-15' where sname='李寻'
/*把李田老师的家庭住址改为安徽六安*/
update teacher set home='安徽六安' where tname='李田'
/*SQL实训学时改为36*/
update course set experiment='36' where cname='SQL'
/*teacher_course tcid=2 tno=01002的记录semester改为春schoolyear为2015*/
update teacher_course set semester='春学期',schoolyear='2015' where tcid='2' and tno='01002'
/*把和平老师的性别改为女,学院代码改为01*/
update teacher set sex='女',dno='01' where tname='和平'
/*把stu表中sno为011的记录删除*/
delete stu where sno='011'
/*把zy表中的造价专业删除*/
delete zy where zname='造价'