请使用T-SQL完成以下内容:
- 请在指定数据库(首先在电脑最后一个磁盘上建立文件夹,并建立数据文件保存在该文件夹里)内完成以下内容:(1)依据数据表的结构创建相对应的数据表,表结构如下所示;
学生信息表(student)
字段名称 | 字段类型及长度 | 说明 | 备注 |
Sno | Char(9) | 学生学号 | 主关键字 |
Sname | Char(6) | 学生姓名 | 非空 |
Ssex | Char(2) | 学生性别 | 可为空 |
Sage | Int | 学生年龄 | 可为空 |
Sdept | VarChar(8) | 学生所在院系 | 可为空 |
课程信息表(course)
字段名称 | 字段类型及长度 | 说明 | 备注 |
Cno | Char(4) | 课程编号 | 主关键字 |
Cname | VarChar(20) | 课程名称 | 非空 |
Cpno | Char(4) | 先行课 | 可为空 |
Ccredit | Int | 学分 | 可为空 |
选课信息表(sc)
字段名称 | 字段类型及长度 | 说明 | 备注 |
Sno | Char(9) | 学生学号 | 主关键字 |
Cno | Char(4) | 课程编号 | 主关键字 |
Grade | Int | 成绩 | 可为空 |
(2)在表student中增加新字段 “班级名称(sclass)“;
(3)在表student中删除字段“班级名称(sclass)”;
(4)修改表student中字段名为“sname”的字段长度由原来的6改为8;
(5)修改表student中字段“sdept”名称为“dept”,长度为20;
(6)修改表student中sage字段名称为sbirth,类型为smalldatetime;
(7)修改表student新名称为stu_info;
(8)删除数据表student。
create table Student (
Sno char(9) primary key,
Sname char(6) not null,
Ssex char(2) ,
Sage Int ,
Sdept VarChar(8))
go
create table course (
Cno char(4) primary key,
Cname VarChar(20) not null,
Cpno char(4) ,
Ccredit Int )
go
create table sc (
Sno char(9) not null,
Cno char(4) not null,
Grade Int
primary key (Sno,Cno)
foreign key (Sno) references Student (Sno),
foreign key (Cno) references course (Cno) )
go
Alter table student add sclass VarChar(20)
Alter table student drop column sclass
Alter table student alter column Sname char(8)
Alter table student drop column Sdept
Alter table student add dept VarChar(20)
Alter table student drop column Sage
Alter table student add sbirth smalldatetime
exec sp_rename'student','stu_info'
drop table student
2、创建教师授课管理数据库JSSK,并完成以下内容;
(1)在数据库JSSK中创建下列三张表;
表名:teachers
列名 | 数据类型 | 说明 | 描述 |
Tno | 字符型,长度7 | 主键 | 教师号 |
Tname | 字符型,长度10 | 非空 | 姓名 |
Tsex | 字符型,长度2 | 默认取值为“男” | 性别 |
Birthday | 小日期时间型 | 允许空 | 出生日期 |
Dept | 字符型,长度20 | 允许空 | 所在部门 |
Sid | 字符型,长度18 | 身份证号 |
表名: lessons
列名 | 数据类型 | 说明 | 描述 |
Cno | 字符型,长度10 | 主键 | 课程号 |
Cname | 字符型,长度20 | 非空 | 课程名 |
Credit | 短整型 | 学分 | |
property | 字符型,长度为10 | 课程性质 |
表名: shouke
列名 | 数据类型 | 说明 | 描述 |
Tno | 字符型,长度7 | 主键 | 教师号 |
Cno | 字符型,长度10 | 主键 | 课程名 |
Hours | 整数 | 课时 |
(2)在shouke表里添加一个授课类别字段,列名为Type,类型为Char,长度为4;
(3)将shouke表的Hours的类型改为smallint;
(4)删除lessons表中的property列。
create database jssk
create table teachers (
Tno char(7) primary key,
Tname char(10) not null,
Tsex char(2) default'男' ,
Birthday smalldatetime ,
Dept char(20) ,
Sid char(18))
go
create table lessons (
Cno char(10) primary key,
Cname char(20) not null,
Credit smallint ,
property char(10))
go
create table shouke (
Tno char(7) not null,
Cno char(10) not null,
Hours int
primary key (Tno,Cno)
foreign key (Tno) references teachers (Tno),
foreign key (Cno) references lessons (Cno) )
go
Alter table shouke add Type char(4)
Alter table shouke alter column Hours smallint
Alter table lessons drop column property
3、创建产品销售数据库CPXS,数据文件的逻辑文件名为cpxs_data,物理文件名为D:\sql\cpxs.mdf;文件初始大小为2MB,自动增长,每次增长1MB;日志文件逻辑文件名为cpxs_log,物理文件为D:\sql\cpxs.ldf;文件初始大小2MB,自动增长,每次增长15%;
(1)在数据库CPXS中创建下列三张表;
表名:产品表(cp)表结构
列名 | 数据类型 | 说明 | 描述 |
Cpbh | 字符型,长度6 | 主键 | 产品编号 |
Cpmc | 字符型,长度30 | 非空 | 产品名称 |
Jg | 浮点型,长度8 | 允许空 | 价格 |
Kcl | 整型,长度4 | 允许空 | 库存量 |
表名:销售商(xss)表结构
列名 | 数据类型 | 说明 | 描述 |
Xsbh | 字符型,长度6 | 主键 | 销售商编号 |
Xsmc | 字符型,长度30 | 非空 | 销售商名称 |
Dq | 字符型,长度10 | 允许空 | 地区 |
Fzr | 字符型,长度8 | 允许空 | 负责人 |
Dh | 字符型,长度12 | 允许空 | 电话 |
Bz | 文本,长度16 | 允许空 | 备注 |
表名: 产品销售(xss)表结构
列名 | 数据类型 | 说明 | 描述 |
Cpbh | 字符型,长度6 | 主键 | 产品编号 |
Xsbh | 字符型,长度6 | 主键 | 销售商编号 |
Xssj | Datetime,长度8 | 非空 | 销售时间 |
Sl | 整型,长度4 | 非空 | 数量 |
Je | 浮点型,长度8 | 非空 | 金额 |
create database cpxs
on primary
(name=cpxs_data,
filename='D:\sql\cpxs.mdf',
size=3,
filegrowth=1)
log on
(name=cpxs_log,
filename='D:\sql\cpxs.ldf',
size=2,
filegrowth=15%)
create table cp (
Cpbh char(6) primary key,
Cpmc char(30) not null,
Jg float(8) ,
Kcl int check( Kcl>=0 AND Kcl<=9999)
)
go
create table xss (
Xsbh char(6) primary key,
Xsmc char(30) not null,
Dq char(10) ,
Fzr char(8) ,
Dh char(12) ,
Bz char(16))
go
create table Cxss (
Cpbh char(6) not null,
Xsbh char(6) not null,
Xssj Datetime ,
Sl int check(Sl>=0 AND Sl<=9999) ,
Je float(8)
primary key (Cpbh,Xsbh)
)
go
4.简单查询
(1)列出所有不姓刘的所有学生;
(2)列出姓“张”且全名为3个汉字的学生;
(3)显示在1985年以后出生的学生的基本信息;
(4)按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男 生,性别为女显示为女 生,其他显示为“条件不明”;
(5)查询出课程名含有“数据”字串的所有课程基本信息;
(6)显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;