當前位置:首頁 » 編程語言 » sql表查詢試題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql表查詢試題

發布時間: 2022-09-06 05:28:40

A. sql資料庫一道試題幫忙做做

資料庫的專業英語吧,看看我答的Data 數據 Database 資料庫 RDBMS 關系型資料庫管理系統(Relational Database Management System) GRANT 授權 REVOKE 許可權回收 DENY 拒絕 DECLARE 聲明 PROCEDURE程序 Transaction 轉換 TRIGGER 觸發器 continue 連續 unqiue 唯一 primary key 主鍵 identity 標識 foreign key 外鍵

B. 懸賞:SQL多表查詢的題緊急求解,在線等~!!

SELECT 訂單表.訂單號, 員工表.名, 員工表.姓, 客戶表.聯系人,
訂單明細表.單價 * 訂單明細表.數量 AS a
FROM 訂單表 INNER JOIN
訂單明細表 ON 訂單表.訂單號 = 訂單明細表.訂單號 INNER JOIN
員工表 ON 訂單表.員工編號 = 員工表.員工編號 INNER JOIN
客戶表 ON 訂單表.客戶編號 = 客戶表.客戶編號
WHERE (訂單明細表.單價 * 訂單明細表.數量 > 7000)
暈死了...我查過來查過去還是13條
SELECT 單價 * 數量 AS a
FROM 訂單明細表
WHERE (單價 * 數量 > 7000)
這個查也是13行

C. SQL多表查詢題目

select x.* from 讀者表 x,借閱表 y,圖書條碼表 z,圖書表 w where x.證件號=y.證件號 and y.條碼號=z.條碼號 and z.索書號=w.索書號 and 作者 like '%洪應明%';
select * from 借閱表 where 證件號 in (select 證件號 from 讀者表 where 姓名='歐陽宇玉');

D. SQL高手請進,SQL語句查詢試題

表結構都不貼上來怎麼幫你啊
難道是需要自己設計?

Create table #Custom
([CustomID] nvarchar(3),[Name] nvarchar(20))
Insert #Custom
select N'001','john' union all
select N'002','cathy' union all
select N'003','Alice' union all
select N'004','jack'

Create table #Proct
([ProctId] nvarchar(3),[ProctName] nvarchar(20))
Insert #Proct
select N'001','產品1' union all
select N'002','產品2' union all
select N'003','產品3' union all
select N'004','產品4'

Create table #Sales
([SalseID] nvarchar(3),[SalseName] nvarchar(20),[city] nvarchar(20))
Insert #Sales
select N'001','銷售商1','beijing' union all
select N'002','銷售商2','xian'

Create table #Order
([OrderID] nvarchar(3),[ProctId] nvarchar(3),
[CustomId] nvarchar(3),[SalesId] nvarchar(3))
Insert #Order
select N'001','001','001','001' union all
select N'002','002','001','001' union all
select N'003','001','002','002' union all
select N'004','003','003','002' union all
select N'005','004','002','002' union all
select N'006','002','004','001'

select count(*), proctid from #ORder f
left join ((select customid,count(*) as countP from #Order
group by customid
having count(*)>=2)) a1 on a1.customId=f.customid
where countP>=2
group by proctid
having count(*)>=2

select distinct f.customId,name from #ORder f
left join #sales a1 on a1.salseId=f.salesid
left join #custom a2 on a2.customid=f.customid
where a1.city='beijing'
--'beijing' 為輸入的條件

E. 一些SQL的試題

4.1
select stud_id,name ,birthday,gender,mark from stud_info where name like '張%' and len(name)=2
4.2
select stud_id ,name from stud_grade where grade=(select max(grade) from stud_grade
或者select top 1 stud_id ,name from stud_grade order by grade desc

4.3
declare @zhuanye char(10)
select @zhuanye=sunbstring(zhuanye,5,2) from stud_info
select name from stud_info where @zhuanye='01'

4.4
create proc people_num
as
begin
select count(*) from stud_info where gender='男'
end

4.5
alert table stud_info add column money varchar(30)

4.6
alter table stud_info add constraint uniqueindex unique(telcode)
4.7
ALTER TABLE stud_info
ADD
CONSTRAINT pk_level
PRIMARY KEY CLUSTERED (stud_id)
4.8
alter table stud_grade
add constraint stud_info
foreign key (stud_id)
references (stud_id)
4.9
create nonclustered index CourseIndex
on stud_grade(course_id)
4.10
create view stud_view
as
select A.stud_id ,A.name,B.grade from stud_info A,stud_grade B where A.stud_id=B.stud_id and
substring(stud_id,3,2)='01'

第二題
36 select 姓名,年齡 from S order by 年齡 desc
37 select * from S where 姓名 like '王%'
38 select S.姓名,S.年齡,S.性別,S.系別 from S,C,SC where S.學號=SC.學號 and C.課號=SC.課號 and C.課名='資料庫原理'
39 select * from S where 系別=(select 系別 from S where 姓名='劉平')

F. 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'

G. SQL問題建表和查詢的題目

create table student(stuid char(10)primary key,stuname varchar(10),major varchar(50))
go
create table book(bid char(10)primary key,title char(50),author char(20))
go
create table borrow(borrowid char(10)primary key,stuid char(10)foreign key references
student(stuid),bid char(10)foreign key references book(bid),t_time datetime,b_time datetime)
go

select c.stuid,a.stuname,c.bid,b.title,c.t_time
from student a,book b,borrow c
where a.stuid=c.stuid and b.bid=c.bid and a.major='計算機'
and c.t_time between '2007-12-15' and '2008-01-08'

select * from student where stuid in(select stuid from borrow)

select x.stuname,y..title,z.t_time,z.b_time from student x,book y,borrow z
where x.stuid=z.stuid and y.bid=z.bid and y.author='張三'

select a.stuname,COUNT(*)as 未還數量 from student a,borrow b
where a.stuid=b.stuid and b.b_time<>null
group by a.stuname

H. SQL查詢面試題與答案

SQL查詢面試題與答案

SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。下面是我搜集的SQL查詢面試題與答案,歡迎大家閱讀。

SQL查詢面試題與答案一

1.一道SQL語句面試題,關於group by表內容:

2005-05-09 勝

2005-05-09 勝

2005-05-09 負

2005-05-09 負

2005-05-10 勝

2005-05-10 負

2005-05-10 負

如果要生成下列結果, 該如何寫sql語句?

勝 負

2005-05-09 2 2

2005-05-10 1 2

------------------------------------------

create table #tmp(rq varchar(10),shengfu nchar(1))

insert into #tmp values('2005-05-09','勝')

insert into #tmp values('2005-05-09','勝')

insert into #tmp values('2005-05-09','負')

insert into #tmp values('2005-05-09','負')

insert into #tmp values('2005-05-10','勝')

insert into #tmp values('2005-05-10','負')

insert into #tmp values('2005-05-10','負')

1)select rq, sum(case when shengfu='勝' then 1 else 0 end)'勝',sum(case when shengfu='負' then 1 else 0 end)'負' from #tmp group by rq

2) select N.rq,N.勝,M.負 from (

select rq,勝=count(*) from #tmp where shengfu='勝'group by rq)N inner join

(select rq,負=count(*) from #tmp where shengfu='負'group by rq)M on N.rq=M.rq

3)select a.col001,a.a1 勝,b.b1 負 from

(select col001,count(col001) a1 from temp1 where col002='勝' group by col001) a,

(select col001,count(col001) b1 from temp1 where col002='負' group by col001) b

where a.col001=b.col001

2.請教一個面試中遇到的SQL語句的查詢問題

表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列否則選擇B列,當B列大於C列時選擇B列否則選擇C列。

------------------------------------------

select (case when a>b then a else b end ),

(case when b>c then b esle c end)

from table_name

3.面試題:一個日期判斷的sql語句?

請取出tb_send表中日期(SendTime欄位)為當天的所有記錄?(SendTime欄位為datetime型,包含日期與時間)

------------------------------------------

select * from tb where datediff(dd,SendTime,getdate())=0

4.有一張表,裡面有3個欄位:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄並按以下條件顯示出來(並寫出您的思路):

大於或等於80表示優秀,大於或等於60表示及格,小於60分表示不及格。

顯示格式:

語文 數學 英語

及格 優秀 不及格

------------------------------------------

select

(case when 語文>=80 then '優秀'

when 語文>=60 then '及格'

else '不及格') as 語文,

(case when 數學>=80 then '優秀'

when 數學>=60 then '及格'

else '不及格') as 數學,

(case when 英語>=80 then '優秀'

when 英語>=60 then '及格'

else '不及格') as 英語,

from table

5.在sqlserver2000中請用sql創建一張用戶臨時表和系統臨時表,裡麵包含兩個欄位ID和IDValues,類型都是int型,並解釋下兩者的區別?

------------------------------------------

用戶臨時表:create table #xx(ID int, IDValues int)

系統臨時表:create table ##xx(ID int, IDValues int)

區別:

用戶臨時表只對創建這個表的用戶的Session可見,對其他進程是不可見的.

當創建它的進程消失時這個臨時表就自動刪除.

全局臨時表對整個SQL Server實例都可見,但是所有訪問它的Session都消失的時候,它也自動刪除.

6.sqlserver2000是一種大型資料庫,他的`存儲容量只受存儲介質的限制,請問它是通過什麼方式實現這種無限容量機制的。

------------------------------------------

它的所有數據都存儲在數據文件中(*.dbf),所以只要文件夠大,SQL Server的存儲容量是可以擴大的.

SQL Server 2000 資料庫有三種類型的文件:

主要數據文件

主要數據文件是資料庫的起點,指向資料庫中文件的其它部分。每個資料庫都有一個主要數據文件。主要數據文件的推薦文件擴展名是 .mdf。

次要數據文件

次要數據文件包含除主要數據文件外的所有數據文件。有些資料庫可能沒有次要數據文件,而有些資料庫則有多個次要數據文件。次要數據文件的推薦文件擴展名是 .ndf。

日誌文件

日誌文件包含恢復資料庫所需的所有日誌信息。每個資料庫必須至少有一個日誌文件,但可以不止一個。日誌文件的推薦文件擴展名是 .ldf。

7.請用一個sql語句得出結果

從table1,table2中取出如table3所列格式數據,注意提供的數據及結果不準確,只是作為一個格式向大家請教。

如使用存儲過程也可以。

table1

月份mon 部門dep 業績yj

-------------------------------

一月份 01 10

一月份 02 10

一月份 03 5

二月份 02 8

二月份 04 9

三月份 03 8

table2

部門dep 部門名稱dname

--------------------------------

01 國內業務一部

02 國內業務二部

03 國內業務三部

04 國際業務部

table3 (result)

部門dep 一月份 二月份 三月份

--------------------------------------

01 10 null null

02 10 8 null

03 null 5 8

04 null null 9

------------------------------------------

1)

select a.部門名稱dname,b.業績yj as '一月份',c.業績yj as '二月份',d.業績yj as '三月份'

from table1 a,table2 b,table2 c,table2 d

where a.部門dep = b.部門dep and b.月份mon = '一月份' and

a.部門dep = c.部門dep and c.月份mon = '二月份' and

a.部門dep = d.部門dep and d.月份mon = '三月份' and

2)

select a.dep,

sum(case when b.mon=1 then b.yj else 0 end) as '一月份',

sum(case when b.mon=2 then b.yj else 0 end) as '二月份',

sum(case when b.mon=3 then b.yj else 0 end) as '三月份',

sum(case when b.mon=4 then b.yj else 0 end) as '四月份',

sum(case when b.mon=5 then b.yj else 0 end) as '五月份',

sum(case when b.mon=6 then b.yj else 0 end) as '六月份',

sum(case when b.mon=7 then b.yj else 0 end) as '七月份',

sum(case when b.mon=8 then b.yj else 0 end) as '八月份',

sum(case when b.mon=9 then b.yj else 0 end) as '九月份',

sum(case when b.mon=10 then b.yj else 0 end) as '十月份',

sum(case when b.mon=11 then b.yj else 0 end) as '十一月份',

sum(case when b.mon=12 then b.yj else 0 end) as '十二月份',

from table2 a left join table1 b on a.dep=b.dep

8.華為一道面試題

一個表中的Id有多個記錄,把所有這個id的記錄查出來,並顯示共有多少條記錄數。

------------------------------------------

select id, Count(*) from tb group by id having count(*)>1

select * from(select count(ID) as count from table group by ID)T where T.count>1

SQL查詢面試題與答案二

1、查詢不同老師所教不同課程平均分從高到低顯示

SELECT max(Z.T#) AS 教師ID,MAX(Z.Tname) AS 教師姓名,C.C# AS 課程ID,MAX(C.Cname) AS 課程名稱,AVG(Score) AS 平均成績

FROM SC AS T,Course AS C ,Teacher AS Z

where T.C#=C.C# and C.T#=Z.T#

GROUP BY C.C#

ORDER BY AVG(Score) DESC

2、查詢如下課程成績第 3 名到第 6 名的學生成績單:企業管理(001),馬克思(002),UML (003),資料庫(004)

[學生ID],[學生姓名],企業管理,馬克思,UML,資料庫,平均成績

SELECT DISTINCT top 3

SC.S# As 學生學號,

Student.Sname AS 學生姓名 ,

T1.score AS 企業管理,

T2.score AS 馬克思,

T3.score AS UML,

T4.score AS 資料庫,

ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 總分

FROM Student,SC LEFT JOIN SC AS T1

ON SC.S# = T1.S# AND T1.C# = '001'

LEFT JOIN SC AS T2

ON SC.S# = T2.S# AND T2.C# = '002'

LEFT JOIN SC AS T3

ON SC.S# = T3.S# AND T3.C# = '003'

LEFT JOIN SC AS T4

ON SC.S# = T4.S# AND T4.C# = '004'

WHERE student.S#=SC.S# and

ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)

NOT IN

(SELECT

DISTINCT

TOP 15 WITH TIES

ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)

FROM sc

LEFT JOIN sc AS T1

ON sc.S# = T1.S# AND T1.C# = 'k1'

LEFT JOIN sc AS T2

ON sc.S# = T2.S# AND T2.C# = 'k2'

LEFT JOIN sc AS T3

ON sc.S# = T3.S# AND T3.C# = 'k3'

LEFT JOIN sc AS T4

ON sc.S# = T4.S# AND T4.C# = 'k4'

ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);

3、統計列印各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ <60]

SELECT SC.C# as 課程ID, Cname as 課程名稱

,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85]

,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70]

,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60]

,SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]

FROM SC,Course

where SC.C#=Course.C#

GROUP BY SC.C#,Cname;

4、查詢學生平均成績及其名次

SELECT 1+(SELECT COUNT( distinct 平均成績)

FROM (SELECT S#,AVG(score) AS 平均成績

FROM SC

GROUP BY S#

) AS T1

WHERE 平均成績 > T2.平均成績) as 名次,

S# as 學生學號,平均成績

FROM (SELECT S#,AVG(score) 平均成績

FROM SC

GROUP BY S#

) AS T2

ORDER BY 平均成績 desc;

5、查詢各科成績前三名的記錄:(不考慮成績並列情況)

SELECT t1.S# as 學生ID,t1.C# as 課程ID,Score as 分數

FROM SC t1

WHERE score IN (SELECT TOP 3 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC

)

ORDER BY t1.C#;

6、查詢每門課程被選修的學生數

select c#,count(S#) from sc group by C#;

7、查詢出只選修了一門課程的全部學生的學號和姓名

select SC.S#,Student.Sname,count(C#) AS 選課數

from SC ,Student

where SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;

8、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名;

Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2

from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2

9、查詢所有課程成績小於60分的同學的學號、姓名;

select S#,Sname

from Student

where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);

10、查詢沒有學全所有課的同學的學號、姓名;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);

11、查詢至少有一門課與學號為“1001”的同學所學相同的同學的學號和姓名;

select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';

12、查詢至少學過學號為“001”同學所有一門課的其他同學學號和姓名;

select distinct SC.S#,Sname

from Student,SC

where Student.S#=SC.S# and C# in (select C# from SC where S#='001');

13、把“SC”表中“葉平”老師教的課的成績都更改為此課程的平均成績;

update SC set score=(select avg(SC_2.score)

from SC SC_2

where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='葉平');

14、查詢和“1002”號的同學學習的課程完全相同的其他同學學號和姓名;

select S# from SC where C# in (select C# from SC where S#='1002')

group by S# having count(*)=(select count(*) from SC where S#='1002');

15、刪除學習“葉平”老師課的SC表記錄;

Delect SC

from course ,Teacher

where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='葉平';

16、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號“003”課程的同學學號、2、

號課的平均成績;

Insert SC select S#,'002',(Select avg(score)

from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');

17、按平均成績從高到低顯示所有學生的“資料庫”、“企業管理”、“英語”三門的課程成績,按如下形式顯示: 學生ID,,資料庫,企業管理,英語,有效課程數,有效平均分

SELECT S# as 學生ID

,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 資料庫

,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企業管理

,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英語

,COUNT(*) AS 有效課程數, AVG(t.score) AS 平均成績

FROM SC AS t

GROUP BY S#

ORDER BY avg(t.score)

18、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分

SELECT L.C# As 課程ID,L.score AS 最高分,R.score AS 最低分

FROM SC L ,SC AS R

WHERE L.C# = R.C# and

L.score = (SELECT MAX(IL.score)

FROM SC AS IL,Student AS IM

WHERE L.C# = IL.C# and IM.S#=IL.S#

GROUP BY IL.C#)

AND

R.Score = (SELECT MIN(IR.score)

FROM SC AS IR

WHERE R.C# = IR.C#

GROUP BY IR.C#

);

19、按各科平均成績從低到高和及格率的百分數從高到低順序

SELECT t.C# AS 課程號,max(course.Cname)AS 課程名,isnull(AVG(score),0) AS 平均成績

,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分數

FROM SC T,Course

where t.C#=course.C#

GROUP BY t.C#

ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC

20、查詢如下課程平均成績和及格率的百分數(用"1行"顯示): 企業管理(001),馬克思(002),OO&UML (003),資料庫(004)

SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企業管理平均分

,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企業管理及格百分數

,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 馬克思平均分

,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 馬克思及格百分數

,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分

,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分數

,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 資料庫平均分

,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 資料庫及格百分數

FROM SC

;

I. 計算機SQL語言試題

(一)現有關系資料庫如下: 資料庫名:我班同學資料庫同學表(學號 char(6),姓名,性別,年齡,民族,身份證號,宿舍號) 宿舍表(宿舍號 char(6),宿舍電話) 用SQL語言實現下列功能的sql語句代碼:1.創建資料庫[我班同學資料庫]代碼。2.創建數據表[宿舍表]代碼; 宿舍表(宿舍號 char(6),宿舍電話) 要求使用:主鍵(宿舍號)、宿舍電話:以633開頭的7位電話號碼3.創建數據表[同學表]代碼; 同學表(學號 char(6),姓名,性別,年齡,民族,身份證號,宿舍號) 要求使用:主鍵(學號)、外鍵(宿舍號)、默認(民族)、非空(民族,姓名,年齡)、唯一(身份證號)、檢查(性別)4.將下列宿舍信息添加到宿舍表的代碼 宿舍號 宿舍電話 101 6331157 102 6331777 修改 宿舍號為101的 宿舍電話:6331158 刪除 宿舍號為102的 宿舍信息5.創建視圖[同學表視圖]代碼; 同學表視圖(學號, 姓名, 性別, 年齡, 民族, 身份證號, 宿舍號, 宿舍電話)6.從同學表視圖中查詢姓張的女同學的姓名、性別、宿舍電話。7.從同學表中查詢女同學的最大年齡、最小年齡、平均年齡。8.創建帶參數的存儲過程[某宿舍同學]:姓名, 性別, 宿舍電話 執行此過程,查詢'101'宿舍情況 (二) 現有關系資料庫如下: 資料庫名:學生成績資料庫學生表(學號 char(6),姓名,性別,民族,身份證號) 課程表(課號 char(6),名稱) 成績表(ID,學號,課號,分數) 用SQL語言實現下列功能的sql語句代碼:1.創建資料庫[學生成績資料庫]代碼 ;2.創建[課程表]代碼 ; 課程表(課號 char(6),名稱) 要求使用:主鍵(課號)、非空(名稱)3. 創建[學生表]代碼 ; 學生表(學號 char(6),姓名,性別,民族,身份證號) 要求使用:主鍵(學號)、默認(民族)、非空(民族,姓名)、唯一(身份證號)、檢查(性別)4. 創建[成績表]代碼 ; 成績表(ID,學號,課號,分數) 要求使用:主鍵(課號)、外鍵(成績表.學號,成績表.課號)、檢查(分數),自動編號(ID)5. 將下列課程信息添加到課程表的代碼 課號 課程名稱 100001 大學語文 100002 大學英語 100003 西班牙語 修改 課號為100002的課程名稱:實用英語 刪除 課號為100003的課程信息 6. 寫出創建:成績表視圖(學號,姓名,課號,課程名稱,分數)的代碼; 8. 寫出創建:某門課程高低均分 計算某門課程成績最高分、最低分、平均分 存儲過程以及執行的代碼; 執行:所有修 實用英語 這門學生的最高分、最低分、平均分;9. 檢索姓李的女同學的情況:姓名、性別、民族。 10.檢索有一門或一門以上課程成績大於等於90分的所有學生的信息,包括學號、姓名。 (三)有一個[學生課程]資料庫,資料庫中包括三個表:學生表Student由學號(Sno)、姓名(Sname)、性別(Ssex)、年齡(Sage)、所在系(Sdept)五個屬性組成,記為: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 為關鍵字。課程表Course由課程號(Cno)、課程名(Cname)、先修課號(Cpno)、學分(Ccredit)四個屬性組成,記為:Course(Cno,Cname,Cpno,Ccredit) Cno為關鍵字。 成績表SG由學號(Sno)、課程號(Cno)、成績(Grade)三個屬性組成,記為:SG(Sno Cno, Grade) (SNO, CNO)為關鍵字。用SQL語言實現下列功能:1.建立學生表Student,其中學號屬性不能為空,並且其值是唯一的。2.向Student表增加「入學時間(Scome)」列,其數據類型為日期型。3.查詢選修了3號課程的學生的學號及其成績,查詢結果按分數的降序排列。4.查詢學習1號課程的學生最高分數、平均成績。5.查詢與「李洋」在同一個系學習的學生。6.將計算機系全體學生的成績置零。
有些秘密是男人永遠不會說的,所以就不要再問了,因為再問,他們給的答案也不會是真的!

1、男人很容易喜歡一個女人,卻不輕易深愛一個女人。

2、男人在感情的王國里,絕對是個昏君。女人只要肯奉承,他什麼都答應。

3、男人普遍喜歡外表溫柔的女子,寧願把精力花在事業或其他地方,也不願全用來征服女人。

4、男人都不太重視對自己太好的女人。

5、男人都怕女人死纏爛打,但喜歡用同樣的方式對付沒追上的女人。

6、男人的夢想之一,是擁有可以超越友誼界限的紅顏知己。

7、男人會以很理性的態度取捨愛情,就算他感性上很愛一個人,但當他清楚她並非一個好妻子時,他會放棄她,另找合適家居生活的那一個。男人認為戀愛和結婚是兩回事,很多時候,他拖延結婚,根本原因就是他認為身邊的女人不是想像中的好妻子。

8、男人對妻子的要求,可能比對戀人更低——在外型上,在性格上則更高。

9、懂得欣賞聰明女人的男人不多,和她們在一起,男人總覺得缺乏安全感受。

10、當有喜歡的女人在場時,男人會有如下表現:話多;顯得聰明些;比平日慷慨;會把話題扯到得意成就上;會刻意顯露平時少見的好心腸;多說一些自以為好笑的笑話引大家發笑。

11、一個男人同時是大男人和小男人的化身。大男人的他,希望女人完全遷就他,令他放心;小男人的他,意識到自己懦弱無能的一面,猶豫不決。說穿了,他們很多都是忌妒心重的小器鬼,又像孩子般容易被哄騙。

12、男人追求女人的時候願意割捨一切自由,追到了越來越感到自由的重要性。

13、男人內心隱藏著狩獵心態,追捕,得到後就要馴服她,讓她變成可在家飼養的乖乖動物。

14、男人都有愛當英雄的自大心態,所以很容易愛上向他訴苦的女人。

15、男人希望身邊的女人明白:帶著同一個女人去所有地方,實在是一件很悶的事(或許女人也這樣覺得吧,只是不好意思說),所以和其他女人適度約會,是調劑和放鬆,完全可以沒有其他企圖。

16、兩性關系中,女人需要男人告訴她,他願意為她做任何犧牲,男人則需要女人告訴他,他很能幹。

17、男人自以為是的多情,常常是女人眼中不折不扣的薄倖。

18、在男人心底,親熱到哪個程度,就是和女人的戀情發展到什麼程度。

19、男人每隔一段時間,就有情緒和體力跌到谷底的幾天,不想見任何人,躲起來翻翻書,聽聽音樂,看看影碟或狂打電玩發泄。

20、有過戀愛經驗的男人都知道:女人是不能不騙的,類似像:「我會永遠愛你」,「我一直都會像現在這樣疼你」,「什麼時候需要我,一個電話我就立刻趕來」,「我以後再也不會像愛你這樣去愛另外一個人」這種話是必須要說但永遠堅持不了的「騙話」,誰讓女人這么愛聽呢!

21、男人遇上舊情人多半會自作多情,以為與自己有過感情的人,內心總會保存一份情,幻想愛過他的女人永遠愛他。女人只會美化眼前的男人,男人卻不自覺地美化逝去的戀情。所以男人比女人更認同:分手還是朋友。不管是甩人還是被甩,男人多半願意與前女友繼續保持聯絡。

22、女人在意男友以前的女友,男人卻在意女人離開他後找個什麼樣的男友。如果分手後仍是朋友的,他會時不時批評她的男友。

23、男人跌入愛河,很少問她的過去,不太關心她和哪種男人談過戀愛,因為男人較注重女人的外表——外表就是現在。

24、男人不願聽心上人的舊戀情,因為一想到自己愛的人之前和其他男人有過肌膚之親,就難以忍受。

25、面對兩個對自己有愛意的人,女人會在徘徊中選擇,男人不會為此煩惱——他其實只想同時追上兩個人呢!

26、男人愛上一個女人,不一定對她有強烈的親熱沖動,反倒對一些他只是喜歡而不愛的女人,沖動更大些。

27、男人很容易被女人吸引,但他分得出哪種渴求出於性還是愛,大概知道能從她身上得到什麼。

28、女人主動示愛,對男人來說,唯一的損失就是縮短了那段朦朦朧朧,若有若無的浪漫日子。

29、男人相信證明自身出色的重要表現之一是:擁有更多的女人。事業上越出色的男人,往往需要更多女人的仰慕和傾心以體現他的超凡脫俗。

30、男人在分手問題上拖泥帶水,其實是想把去留的難題丟給女人,減少自己決定帶來的內疚感。

31、男人說的「未來」是6個月到1年時間,女人的定義則可以是10年到50年。當男人愛上一個女人,他只會想像如何在短暫的未來與她親密發展;女人則幻想到戀愛,結婚,生孩子乃至如何白頭到老。

32、男人基本是都小器,大方是裝出來的。表面上他們不拘小節,其實內心和女人一樣,計算得清清楚楚。

33、女性較容易坦白心事,男人恰恰相反。遇到煩惱,他們找個別好友傾訴時,不會說得很完整,總會給自己留最後一點面子。男人的傾訴都是經過包裝或刻意切碎的,不讓一個人知道全部。這也是女人很難了解男人的原因——他們根本不想被人徹底了解。

34、一個男人可以愛上兩個女人,但究竟喜歡哪個多一點,他多半分不清楚。

35、男人看待婚外情比女人實際,因為他有更多機會涉及婚外情,而且他心裡明白——花心隱藏在男人的天性中。

36、男人要變心,其實和女人是否注意保持美麗儀表沒直接關系,那隻是他的借口之一。當他厭倦一個女人,不管她多漂亮,只要是她以外的任何女人,他都覺得比她有吸引力。

37、成熟男人對於崇拜他的少女,抵抗力是相當弱的。

38、男人年紀越大,擇偶越隨心所欲,乃至不顧他人的任何想法。

39、對許多男人來說,真愛意味著——愛情減去性。換句話,男人只要覺得女人缺乏性的吸引力,就可以一直跟她做單純的朋友。

40、男人在有尋求親熱的身體沖動那一刻,對異性的要求忽然降低,他會覺得一個平時普通的女人很可愛,甚至很性感。不過等沖動一旦消退,他立刻恢復了習慣的審美判斷。

41、男人對女人的愛天天快遞查詢 http://www.paijian.com/tt.html總是混合了生理沖動,親熱前他覺得女人什麼都好,之後卻可以無半點留戀,但為了不背負太多罪惡感,他們可以裝作溫柔地在事後繼續吐露纏綿的情話。

42、男人很容易愛上賣弄風情,看起來唾手可得的女人,因為他覺得有更多機會觸摸。

J. SQL查詢語句問題,本人初學者,在網上看到一個試題,請大神幫忙看下答案是否正確

因為b的group by里只有Occmonth,DebitOccur前面沒有max()會報語法錯誤。