建表的语句也要
给定的一个数据库student,有三个表student(学生基本信息表),course(课程基本信息表),sc(学生选课表),表的结构如下:
Student表:
Sno
char
(7)
, --学号
Sname
char (10)
, --姓名
Ssex
char (2)
,
--性别
Sage
tinyint
,
--年龄Sdept
char (20),
--系别
Sno为主键,sname姓名非空,
Sage取值约束 15-45
Sdept默认值为”计算机系”
Course表:
Cno
char (10), --课程号
Cname
char (20),--课程名
Ccredit
tinyint
, --学分
Term
tinyint,--学期号cno为主键,cname姓名 非空,
sc表
Sno char (7),--学号
Cno char (10),--课程号Grade tinyint,--分数
(Sno,cno)主键
Sno为外键
来自student的主键sno
Cno为外键
来自course的主键cno
要求:
1.修改表结构 (30分)
(1)给student表性别字段ssex添加取值约束ck_sex,取值为‘男’或‘女’;
(2)给student表加备注字段(remark
varchar(10))
可为空
(3)删除course表中的term字段
(4)创建teacher表
结构如下:
Tno
char (6),
--职工号
Tname
nchar (10),--教师姓名
Tbirth
date,
--出生年月
Tzc
varchar (10)
--职称
其中tno为主键tname不能为空
(5)创建表tc(教授课程表)
Tno
char (6)
,--职工号
cno
char](10)
,--课程号
term
varchar(30),--学期
(tno,cno,term)共同做主键
(6)向两个表中插入数据
Teacher
Tno
tname
tbirth
tzc
000001刘启芬
1970-01-01
副教授
000002郑阿奇
1964-03-28
教授
000003顾运华
1980-02-01
讲师
000004叶霞
1974-10-01
讲师
Tc表
Tno
cno
term
000001
c01
1
000001
c02
1
000002
c03
1
000002
c06
1
000003
c05
1
000004
c04
1
2.查询语句(30分)
(1)查询所有未选修课程的学生的姓名
(2)查询高等数学的平均成绩
(3)按系别统计每个系的男女生人数
(4)查找选修课程超过2门或两门以上课并且成绩都在80分以上的学生的学号
(5)将平均分高于80分得学生,在student表中的备注字段remark里写上“优秀
(6)将信息系学生的“计算机文化学”课程的考试成绩加5分
3.创建视图(20分)
(1)要求查询选修课程的学生的姓名和总学分数,成绩大于60分才获该课程的学分,并按学分从高到低排序
(2)要求查询term为1的学期开课教师的姓名和课程名
4.数据控制(20分)
(1)建立一个SQLserver身份验证的登录名,登录名为log_stu,密码为“12345”
为student数据库定义一个名为log_stu的用户,对应的登录名为log_stu
(2)为用户log_sql授予对sc表的删除权限和插入权限
(3)为log_sql用户赋予创建表和视图的权限
(4)建立一个新的用户定义的角色,角色名为newadmins
将sql_stu用户添加到newadmins中