Ⅰ 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期末考試題,來個大神幫解答一下
select fph from mz_brsf
whereje > 200;
2.select sum(je) from mz_brsf
where sfsj >= '2012-01-01'
and sfsj < '2012-02-01';
3.delete from mz_bfsf
where cfh is null;
4.update mz_bfsf
set substr(sfsj,1,4) =2013
where ks ='內科' ;
5. select ks, sum(je) from mz_bfsf
group by ks
having sum(je) >500;
6.select top 2 ys,sum(je)
from mz_bfsf
group by ys
order by sum(je) desc;
7.update a
set a.zc = b.zc
from mz_bfsf a,mz_brxx b
where a.ys = b.ys