当前位置:首页 » 编程语言 » sql开卷考试题库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql开卷考试题库

发布时间: 2022-12-26 21:10:59

sql考试题 求答案

--二.
createdatabaseKCGL
on
(
name='KCGL',
filename='E:班级姓名+学号KCGL.mdf',
size=5,
maxsize=25,
filegrowth=20%
)
logon
(
name='KCGL_log',
filename='E:班级姓名+学号KCGL_log.ldf',
size=3,
filegrowth=10%
)
--三.
USEKCGL
GO
createTABLESTUDENT
(
S_NOVARCHAR(20),
S_NAMEVARCHAR(20),
S_SEXCHAR(10),
S_AGEINT,
S_ADDRESSVARCHAR(100),
S_DEPTVARCHAR(40)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERTINTOstudentVALUES('20111001001','王敏','女',21,'武汉','IS')
createTABLECOURSE
(
C_NOVARCHAR(20),
C_NAMEVARCHAR(20),
C_CREDITINT,
C_TYPEVARCHAR(20)
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERTINTOCOURSEVALUES('001','VB程序设计',4,'专业课')
createTABLESC
(
S_NOVARCHAR(20),
SEMESTERVARCHAR(20),
C_NOVARCHAR(20),
GRADEFLOAT
)
--若要插入所有数据按照下面的模式根据题依次插入
INSERTINTOCOURSEVALUES('20111001001','201101','001',78.0)
--四.
--1.
--为表STUDENT,COURSE加主键
_STUDENTPRIMARYKEY(S_NO);
_STUDENTPRIMARYKEY(C_NO);
--为表SC加2外键
altertableSCaddconstraintfk_S_NOforeignkey(S_NO)referencesstudent(S_NO)
altertableSCaddconstraintfk_C_NOforeignkey(C_NO)referencesstudent(C_NO)
--2.
_STUDENT_adressDEFAULT'湖北'FORS_ADDRESS;
--3.
AltertableSCaddconstraintCK_SCcheck(SEMESTER='201101'ORSEMESTER='201102')
--五.
--1.
SELECTS_NAME,A_AGE,S_DEPTFROMstudentWHERES_NAME='孟凡'
--2.
selectCOUNT(S.S_NO)FROMSCS,studentSTWHEREs_sex='女'andGRADE>80
--3.
createviewKCGLVL
as
SELECTS.SNO,S.SNAME,C.Cno,C.GradeFROMstuS,SCCWHERES.SNO=C.SNO
--4.
createprocereKCGLPRO
@S_NOvarchar(20)
as
BEGIN
selectCOUNT(C_NO)fromSCwhereSno=@S_NO
END
executeKCGLPRO'20111001001'

PS:我用的数据库是SQL SERVER 2008,剩下几题自己想想办法,做这么多及格分数已经够了。

Ⅱ SQL Server数据库进阶考试题 要求用SQL语句实现(全部利用SQL语句完成)

create database empsystem
on (filename='d:\database\empsystem_data.mdf',
size=3mb,maxsize=20mb,filegrowth=2mb)
go
--use empsystem
create table Departments(
DepartId int not null primary key,
departname nvarchar(50),
location nvarchar(100))
create table Employees(
EmpId Int IDENTITY(1,1) primary key ,
EmpName Nvarchar(50),
Job Nvarchar(50),
MgrId int,
HireDate date,
Salary float,
Commission float ,
DepartId int REFERENCES Departments(DepartId))
go
insert Departments values(1,'市场部','湖北武汉')
insert Departments values(2,'销售部','湖北武汉')
insert Departments values(3,'研发部','湖北武汉')
insert Departments values(4,'人事部','湖北武汉')
insert Departments values(5,'企划部','湖北武汉')
insert Departments values(6,'产品部','湖北武汉')
go
insert Employees(Empname,Job,MgrId,HireDate,Salary,Commission,DeptId) values
('小刘','程序员',2,'2009-0708',2200,1500,3)
go
--1
select empname 姓名,job 工作,HireDate 入职日期,salary+commission 工资 from employees
where (salary+commission)>(select salary+commission from employees where empname='陈芳')
--2
select job 工作,salary+commission 工资 from employees
where (salary+commission)>3000
--3
create procere proce1
@name Nvarchar(50) ,@mgrId int output
as
select @mgrId=mgrId from employees where empname=@name
--4
--5
ALTER TABLE departments ADD DepartId int
CONSTRAINT DepartId_pk PRIMARY KEY

Ⅲ 求sql数据库考试题答案

1.create database Readbook
on
(name=Readbook_data,filename='D:\server\Readbook_data.mdf',size=2mb,maxsize=10mb,filegrowth=1mb)
log on
(
name=Readbook_log,
filename='D:\server\Readbook_log.ldf',size=1mb,maxsize=5mb,filegrowth=1mb
)
go
2.use mybase
go
alter database mybase
add log file
(
name=Readbook2_log,
filename='D:\server\mybase2_log.ldf',size=2mb,maxsize=10mb,filegrowth=1mb
)
go
3.alter database mybase
remove file Readbook2_log

Ⅳ SQL的查询 考试题目求教 题目已写答案求判断!

你还有马甲。。。

第一个不对,更新的是学生的成绩,而不是c001得成绩
1.对选修了课程号为c001的学生成绩提高10%
此题本人做的答案请检查:updata 选课表 set 成绩=成绩*1.1 where 课程号='c001'

UPDATE 选课表 SET set 成绩=成绩*1.1 WHERE 学生号 IN (SELECT 学生号 FROM 选课表 WHERE 课程号='c001')

2.查询没有学生选修的课程名。
此题本人做的答案请检查:select 课程名 from 课程 where 课程名 not exists(select * from 选课表 where 选课表.课程号=课程表.课程号)
SELECT 课程名 from 课程 WHERE 课程号 NOT IN (SELECT DISTINCT 课程号 FROM 选课表)

3. correct
4.查询每个学生选修的门数及平均成绩。
此题本人做的答案请检查:select AVG(成绩),姓名 from 学生,选课 where 学生.学生号=选课.学生号 group by 姓名
SELECT COUNT(c.课程号), AVG(c.成绩)
FROM 学生 stu LEFT JOIN 选课 c ON stu.学生号 = c.学生号
GROUP BY stu.学生号

5.查询2003年以前借书的读者借书证号,姓名和单位。
此题本人做的答案请检查:select 借书证号,姓名,单位 from 读者 where 借书日期<=2003 and 读者.借书证号=借书.借书证号
SELECT 借书证号,姓名,单位 FROM 读者 WHERE IN (SELECT 借书证号 FROM 借书 WHERE 借书日期<=2003)

6.查询电子系没有借书的读者姓名
此题本人做的答案请检查: select 姓名,职称 from 读者 where 职称='电子系' and 借书证号 NOT exists(select 借书证号 from 借书 where 读者.借书证号=借书.借书证号)
此题我一直有一个疑惑 我目前查询电子系没有借书的读者姓名 没有借书 也就是借书证号为空或NULL 那么读者也有一个借书证号 借书也有一个借书证号 2个是相对应的,
但是我没用到借书表 只有了读者表的借书证号 需要在where语句后写入:借书证号=借书.借书证号 这个条件吗?
SELECT 姓名
FROM 读者 t
WHERE 单位 = '电子系' AND NOT EXISTS(SELECT 1 FROM 借书 WHERE 借书证号 = t.借书证号)

7.查询出至少有两名学生所选修的全部课程。
此题我做的不怎么好:select 姓名 from 学生 where 课程名 in (select 课程名,count(*) as 课程数 group by 姓名 having count(*)>=2
SELECT * FROM 课程 WHERE 课程号 IN (SELECT 课程号 FROM 选课 GROUP BY 课程号 HAVING COUNT(*) >=2)

8
@a, @b, @c是参数, 譬如@a = '123', @b = 'c001', @c = 90
然后begin后面是执行一个update操作,将参数对应起来就可以了。
真个存储过程对例子要做的就是
UPDATE 选课
set 成绩=90
where 学号= 123 and 课程号='c001'

明白了么

Ⅳ SQL 查询语句期中考试题2

--1.分别查询学生表和学生修课表中的全部数据。
SELECT * FROM student--查询学生表
SELECT * FROM course--查询课程表

--2.查询成绩在70到80分之间的学生的学号、课程号和成绩。
SELECT Sno 学号,Cno 课程号,Grade 成绩
FROM SC
WHERE Grade BETWEEN 70 AND 80

--3.查询C01号课程成绩最高的分数
SELECT TOP 1 Grade
FROM SC
WHERE Cno='C01'
ORDER BY Grade DESC--降序DESC,升序ASC

--4.查询学生都选修了哪些课程,要求列出课程号。
SELECT Cname AS 学生选修的课程,Cno AS 课程号
FROM course
WHERE Cno IN(SELECT DISTINCT Cno FROM SC)--DISTINCT用来去除重复

--5.查询Northwind数据库中orders表的OrderID、CustomerID和OrderDate,
--并将最新的定购日期(OrderDate)列在前边。
USE Northwind
GO
SELECT OrderID,CustomerID,OrderDate
FROM orders
ORDER BY OrderDate DESC--降序DESC,升序ASC

--6.查询Northwind数据库中orders表的ShipCountry列以B,C,D,F --//ShipCountry BCDF
--开始且第三个字符为"a"的OrderID、CustomerID和ShipCountry的信息。//OrderID、CustomerID第三个字符为"a"
USE Northwind
GO
SELECT OrderID,CustomerID,ShipCountry FROM orders
WHERE ShipCountry LIKE '[BCDF]_a%'--_下划线表示任意一个字符,%表示一个或多个字符

--7.查询Northwind数据库中orders表的ShipCountry列不以A,B,C,D,E,F开始且最后一个字
--母是"a"的OrderID、CustomerID和ShipCountry的信息。
USE Northwind
GO
SELECT OrderID,CustomerID,ShipCountry
FROM orders
WHERE ShipCountry LIKE '[^ABCDEF]%a'

--8.查询修了C02号课程的所有学生的平均成绩、最高成绩和最低成绩。
SELECT AVG(Grade) 平均成绩,MAX(Grade) 最高成绩,MIN(Grade) 最低成绩
FROM SC
WHERE Cno='C02'

--9.统计每个系的学生人数。
SELECT Sdept 系别,COUNT(*) 人数
FROM student
WHERE Sdept IN(SELECT DISTINCT Sdept FROM student)
GROUP BY Sdept

--10.统计每门课程的修课人数和考试最高分。
SELECT Cname 课程名,COUNT(*) 修课人数,MAX(Grade) 考试最高分
FROM SC,course
WHERE SC.Cno IN(SELECT DISTINCT Cno FROM SC ) AND course.Cno=SC.Cno
GROUP BY course.Cname

--11.统计每个学生的选课门数,并按选课门数的递增顺序显示结果。
SELECT student.Sname 学生姓名,student.Sno 学生学号,COUNT(SC.Sno) 选课门数
FROM student
inner join SC ON SC.Sno=student.Sno
GROUP BY student.Sname,student.Sno
ORDER BY COUNT(SC.Sno) ASC

--12.统计选修课的学生总数和考试的平均成绩。
SELECT COUNT(DISTINCT(Sno)) AS 学生总数,AVG(Grade) AS 平均成绩
FROM SC --//用DISTINCT消除重复的行

--13.查询选课门数超过2门的学生的平均成绩和选课门数。
SELECT Student.Sname,AVG(Sc.Grade) 平均成绩,COUNT(SC.Sno) 选课门数
FROM SC
--内联接join或inner join,内联系是比较运算符,只返回符合条件的行
JOIN Student ON (SC.Sno = Student.Sno)
JOIN Course ON (SC.Cno = Course.Cno)
GROUP BY Student.Sname
HAVING COUNT(distinct Course.Cno) >2--分组条件

--14.列出总成绩超过200分的学生,要求列出学号、总成绩。
SELECT Sno 学号,SUM(Grade) 总成绩
FROM SC
GROUP BY Sno
HAVING SUM(Grade)>200

--15.查询pubs数据库的titles表中每类图书的平均价格超过12.0元的书的类型(Type)、
--平均价格和最高价格。
USE pubs
GO
SELECT Type AS 书的类型,AVG(price) AS 平均价格,MAX(price) AS 最高价格
FROM titles
GROUP BY Type
HAVING AVG(price)>12.0

--16.查询pubs数据库的titles表中每类图书中图书的数目超过3本的图书的总价格。
USE pubs
GO
SELECT 图书类型=Type,图书的数目=count(Type),图书的总价格=SUM(price)
FROM titles
GROUP BY Type
HAVING count(Type)>3

--17.查询选修了c02号课程的学生的姓名和所在系。
SELECT Sname 学生姓名,Sdept 所在系,SC.Cno AS 选修课程
FROM student
inner join SC ON student.Sno=SC.Sno
WHERE SC.Cno='C02'

--18.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。
SELECT Sname 学生姓名,SC.Cno 课程号,SC.Grade 成绩
FROM student
inner join SC ON student.Sno=SC.Sno--内连接表SC查询
WHERE SC.Grade>80
ORDER BY SC.Grade DESC

--19.查询计算机系男生修了"数据库基础"的学生的姓名、性别、成绩。
SELECT Sname 姓名,Ssex 性别,SC.Grade 成绩
FROM student
inner join SC ON Cno IN(SELECT Cno FROM course WHERE Cname='数据库基础') --显示成绩的条件
AND student.Sno=SC.Sno --显示成绩的学生的学号
WHERE Sdept='计算机系' AND Ssex='男'

--20.查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄。
--这题使用到了表的自连接,所以需要给表取两个别名,如A和B
SELECT A.Sname 年龄相同的学生的姓名,A.Sage 年龄
FROM student A
inner join student B ON A.Sage IN(SELECT Sage FROM student WHERE A.Sage=B.Sage AND A.Sname!=B.Sname)
GROUP BY A.Sname,A.Sage
ORDER BY A.Sage

--21.查询哪些课程没有人选,要求列出课程号和课程名。
SELECT Cno AS 课程号,Cname AS 课程名
FROM course
WHERE Cno NOT IN(SELECT DISTINCT SC.Cno FROM SC)

--22.查询有考试成绩的所有学生的姓名、修课名称及考试成绩
--要求将查询结果放在一张新的永久表(假设新表名为new-sc)中。
SELECT student.Sname AS 有考试成绩的学生的姓名,course.Cname AS 修课名称,SC.Grade AS 考试成绩
INTO [new_sc] --将查询结果放入新表new_sc中
FROM student,course,SC
WHERE SC.Grade IS NOT NULL AND student.Sno=SC.Sno AND course.Cno=SC.Cno

--23.分别查询信息系和计算机系的学生的姓名、性别、修课名称、修课成绩,
--并要求将这两个查询结果合并成一个结果集,
--并以系名、姓名、性别、修课名称、修课成绩的顺序显示各列。
--//此题用到了并union查询
SELECT Sdept 系名,Sname 姓名,Ssex 性别,course.Cname 修课名称,SC.Grade 修课成绩
FROM student
inner join SC ON student.Sno=SC.Sno
inner join course ON course.Cno=SC.Cno
WHERE Sdept='信息系'
UNION
SELECT Sdept 系名,Sname 姓名,Ssex 性别,course.Cname 修课名称,SC.Grade 修课成绩
FROM student
inner join SC ON student.Sno=SC.Sno
inner join course ON course.Cno=SC.Cno
WHERE Sdept='计算机系'

select sdept, sname,ssex,cname,grade from student,sc,course
where student.sno=sc.sno and sc.cno=course.cno and (sdept='信息系' or sdept='计算机系')

--24.用子查询实现如下查询:
--(1) 查询选修了C01号课程的学生的姓名和所在系。
SELECT Sname AS 选修了C01号课程的学生的姓名,Sdept AS 所在系
FROM student
WHERE Sno IN(SELECT Sno FROM SC WHERE Cno='C01')

--(2) 查询数学系成绩80分以上的学生的学号、姓名。
SELECT Sno AS 数学系成绩80分以上的学生的学号,Sname AS 姓名
FROM student
WHERE Sno IN(SELECT Sno FROM SC WHERE Grade>80)
AND Sno IN(SELECT Sno FROM student WHERE Sdept='数学系')

--(3) 查询计算机系学生所选的课程名.
SELECT Cname AS 计算机系学生所选的课程名
FROM course
WHERE
course.Cno IN(SELECT DISTINCT Cno FROM SC WHERE SC.Sno IN(SELECT Sno FROM student WHERE Sdept='计算机系'))

--25.将计算机系成绩高于80分的学生的修课情况插入到另一张表中,分两种情况实现://////////////?????/
--(1) 在插入数据过程中建表。
--使用SELECT INTO插入数据的方法,是在插入数据的过程中建立新表
SELECT student.Sname AS 学生名字,course.Cname AS 选修课程,SC.Cno AS 课程编号
INTO [SC_Info1]--将计算机系成绩高于80分的学生的修课情况插入到表SC_Info1中
FROM student,course,SC
WHERE student.Sdept='计算机系' AND SC.Grade>80 AND course.Cno=SC.Cno AND student.Sno=SC.Sno

--(2) 先建一个新表,然后再插入数据。
--创建表SC_Info2
CREATE TABLE SC_Info2
(
Sname char(7),
Cname char(20),
Cno char(10)
)

--往表SC_info2插入查询得到的结果
INSERT SC_Info2
SELECT student.Sname AS 学生名字,course.Cname AS 选修课程,SC.Cno AS 课程编号
FROM student,course,SC
WHERE student.Sdept='计算机系' AND SC.Grade>80 AND course.Cno=SC.Cno AND student.Sno=SC.Sno

--26.删除修课成绩小于50分的学生的修课记录
DELETE SC WHERE Grade<50 OR Grade IS NULL

--27.将所有选修了"c01"课程的学生的成绩加10分。
UPDATE SC
SET Grade=Grade+10
WHERE Cno='C01'

Ⅵ 怎样用SQL做一个题库

1 建立一张题库表
2 建立一张试卷主表
3 建立一张试卷明细表
就可以 做一个简单的在线考试题库了
请采纳!

Ⅶ Sql数据库选择题,9~14题。

答案是accdac

9. A order by 是按列分组
10. C is null 表示为“空”,is not null 表示为“非“”
11. C cno在sc表中有,故不需用到course表
12. D 显然,三个表都要用到
13. A 其实可以根据英文单词来记忆,insert就是插入的意思,update就是更新的意思,如果你玩游戏的话,当游戏要更新补丁的时候就会有“update”字样
14. C A是创建数据库,B是创建视图,C是创建表,D是修改表,alter是修改的意思

注:个人建议这种一眼看过去就知道答案的题目一定要完全掌握,其实不难的,不需要你会英语,把单词记住就好了。

Ⅷ sql 语句问题,考试题目。大虾帮忙啊

--) 用SQL语句建立P表。
USE [SPJ]
GO
/****** Object: Table [dbo].[P] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = 'P')
DROP TABLE P
GO
CREATE TABLE [dbo].[P](
[PNO] [nvarchar](50) NOT NULL,
[PNAME] [nvarchar](50) NOT NULL,
[COLOR] [nvarchar](50) NOT NULL,
[WEIGHT] [int] NOT NULL
)
GO
--2)用SQL语句找出所有零件的名称、颜色、重量。
SELECT PNAME,COLOR,WEIGHT FROM P
--3)用SQL语句把全部红色零件的颜色改为黄色。
UPDATE P SET COLOR = 'YELLOW' WEHRE COLOR = 'RED'
--4) 用SQL语句由S5供给J4的零件P6改为由S3供应。
UPDATE SPJ SET SNO = 'S3' WEHRE PNO = 'P6' AND JNO = 'J4' AND SNO = 'S5'

Ⅸ SQL期末考试题,来个大神帮解答一下

  1. select fph from mz_brsf

  2. whereje > 200;

  3. 2.select sum(je) from mz_brsf

  4. where sfsj >= '2012-01-01'

  5. and sfsj < '2012-02-01';

  6. 3.delete from mz_bfsf

  7. where cfh is null;

  8. 4.update mz_bfsf

  9. set substr(sfsj,1,4) =2013

  10. where ks ='内科' ;

  11. 5. select ks, sum(je) from mz_bfsf

  12. group by ks

  13. having sum(je) >500;

  14. 6.select top 2 ys,sum(je)

  15. from mz_bfsf

  16. group by ys

  17. order by sum(je) desc;

  18. 7.update a

  19. set a.zc = b.zc

  20. from mz_bfsf a,mz_brxx b

  21. where a.ys = b.ys