15.显示2001年的平均销售数量
Select AVG(销售数量) AS '平均销售数量' From S
Where 销售日期 between'2001-1-1' and '2001-12-31'
16.将每种产品的单价增加5元
Update P
Set 单价=单价+5
17.向销售表中添加两条记录
“A01”、“2002-1-8”、230 “B01”、“2002-7-8”、300
insert into S values('sh011','A001','2002-1-8',230) insert into S values('sh012','B001','2002-7-8',300)
18.授予用户user对销售表的UPDATE、DELETE、INSERT的权限 Grant update,delete,insert on 销售表 to user (二)、完型填空(每小题2分,共30分)
1.为产品表创建一个检查约束:单价在100至1000元之间
Alter tabel P add constraint c1___check (单价)>=100 and <=1000__ 2.为销售表创建一个检查约束:销售日期小于等于当前日期
alter table s add constraint c2___check (销售日期<=getdate())___ 3.为产品表创建在“产品编号”字段上的主键约束
Alter table p add constraint c3 ___primary key clustered(产品编号)___ 4.为产品表增加一个“型号”字段,字符型 20位 Alter tabel P ___add 型号 char(20) ______
5.为销售表创建在“产品编号”字段的外部键约束 Alter tabel S add constraint c4
______foreign key (产品编号) References P(产品编号)_________ 6.为产品表创建在“单价”字段上的默认约束“10”
alter table p add constraint c5____单价 Default 10___with values 7.在“销售表”中删除产品表中“单价”高于900元的记录
Delete
from 销售表
where __产品编号 in( Select 产品编号 From P Where 单价>900)__ 8.删除为销售表创建在“产品编号”字段的外部键约束
Alter tabel __S drop constraint C4____
9.利用视图,将产品“A01”的单价改为25
Create view V1 as
_ select * from P update V1 set 单价=25
where 产品编号='A01'___
(注:不能是update P set 单价=25 where 产品编号=’A01’ 10.定义一个局部变量X为整型,并显示X的值 ____DECLARE @x int _____ Select @x
11.创建一个带参数的存储过程,根据参数值显示指定产品编号的记录。其中@x代表输入的编号
Create procedure p1 @x char(3) as
select * __from P where 产品编号=@X______ 12.执行上述存储过程显示产品编号为A01的记录
___exec P1 ‘A01’_______
13.完全备份产品销售数据库
backup_______database 产品销售 to BAK________ 14.备份产品销售数据库的日志文件
backup___LOG 产品销售 to BAK _________ 15.恢复产品销售数据库的日志文件
Restore____ LOG 产品销售 FROM BAK _________ 16.事务的回滚
___Rool back Transaction_____ 17.查找高于平均单价的产品
Select * from P where 单价>= ___ (select AVG(单价) from P)__ 18.删除销售表
______drop table S ______
19.否认用户user对销售表的INSERT的权限
_____deny insert ____on S to user
四、用命令完成下列指定的任务(每小题2分,共20分) 设学生成绩数据库中有两个基本表:
学生student(学号,姓名,性别,家庭住址,电话) 其中:学号是整型(非标识列),其它是字符型 考试 exam (学号,课程号,考试成绩)
其中:学号、课程号是整型(非标识列),考试成绩是小数类型
以上字段均不能为空
1. 显示姓名“王”的学生姓名、家庭住址
SELECT 姓名,家庭住址 FROM student
WHERE 姓名 like '王%'
2.按电话号码升序的顺序显示学生表中的全部信息。
SELECT *
FROM student ORDER BY 电话
3. 统计男、女同学的人数
SELECT 性别, COUNT(*) FROM student Group BY 性别
4.显示没有电话的同学姓名 SELECT 姓名
FROM student
WHERE 电话 IS NULL
5. 显示考试成绩不及格的学生的姓名及考试分数
SELECT student.姓名 , exam.考试成绩 FROM student,exam
WHERE student.学号 = exam.学号and exam.考试成绩 < 60
6. 按学号显示每个学生的考试平均分
SELECT 学号, AVG(考试成绩) AS 平均成绩
FROM exam
GROUP BY 学号 ORDER BY 学号
7. 向学生表中任意插入两条记录 insert into student
values(990205,'杨娜','女','和平里5号' ,‘88456338’) insert into student
values(990206,'孙雷','男','平安大街' ,‘68456338’) 8. 建立一个视图SR,显示考试成绩大于90分的学生姓名。 CREATE VIEW SR
AS
SELECT 姓名
FROM exam ,student
WHERE exam.学号 = student.学号 and exam.考试成绩 >= 90 9.为考试表创建按“考试成绩”降序排列的非聚集索引 Create nonclustered index kscj On exam(考试成绩 desc)
10. 授予用户user对学生表的UPDAATE、DELETE、INSERT的权限。
Grant update,delete,insert on 学生表 to user 五、用命令完成下列指定的任务(每小题2分,共20分) (一)设教学数据库中有三个基本表:
学生S(S#,SNAME,AGE,SEX) 学号、学生姓名、年龄、性别 学生选课SC(S#,C#,GRADE) 学号、课程代号、分数 课程C(C#,CNAME,TEACHER) 课程代号、课程名称、任课教师 1.检索“刘”老师所授课程的课程号和课程名。 SELECT C#, CNAME, TEACHER FROM C
WHERE TEACHER like '刘%'
2.检索年龄大于23岁的男学生的学号和姓名。 SELECT S#, SNAME FROM S
WHERE AGE >= 23 AND SEX=’男’ 3. 求选修C4课程的学生的平均年龄。 SELECT AVG(S.AGE) FROM S ,SC
WHERE S.S# = SC.S# and C# = 'C4'
或者
SELECT AVG(AGE) FROM S
WHERE S# in (SELECT S# FROM SC WHERE C#='C4') GO
4.求没有选任何课程的学生姓名及性别。 SELECT S.SNAME, S.SEX FROM S
WHERE S# not in (SELECT S# FROM SC)
5.统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 select C#,count(*) as 选修人数 from SC
group by C#
having count(*)>10
order by 选修人数 desc,C#
6.创建约束:为SC表分别创建在“S#”和“C#”字段上建立的外键约束。
Alter table SC
add constraint c1 foreign key (S#,c#) References S(S#,c#)
相关推荐: