A. sqlserver加分編程題
----table 為你的表名,通過循環語句實現更新,@coun為更新次數
declare @cou int,@count int
set @cou=0
set @count=0
select top 0 * into #t1 from table
select @cou =COUNT (*) from table where [分數]<90
while @cou>0
begin
set @count=@count+@cou
insert into #t1
select * from table where [分數]<90
update a
set a.[分數]= case when [分數] <60 then [分數]+5
when [分數] <70 then [分數]+4
when [分數] <80 then [分數]+3
when [分數] <90 then [分數]+2
else [分數]
end
from table a
inner join #t1 b on a.[姓名]=b.[姓名] and a.[課程]=b.[課程]
delete from #t1
select @cou =COUNT (*) from table where [分數]<90
end
print @count
B. 求解答資料庫基礎SQLserver2/3/4題
SQL代碼如下:
1.
CREATETABLECourse
(
Cno VARCHAR(3) PRIMARYKEY,
Cname VARCHAR(30),
Cpno VARCHAR(3)
)
CREATETABLEStudent
(
Sno VARCHAR(7) PRIMARYKEY,
Sname VARCHAR(20),
Ssex CHAR(2),
birthday DATE,
Sdept VARCHAR(15)
)
CREATETABLESC
(
Sno VARCHAR(7),
Cno VARCHAR(3),
Grade INT,
CONSTRAINTpk_SC_Sno_CnoPRIMARYKEY(Sno,Cno)
)
2.
SELECT(SELECT COUNT(*)
FROM Student)
AS'學生總人數',
(SELECT COUNT(*)
FROM Student
WHERE SnoIN(
SELECT DISTINCTSno
WHERE SC
))
AS'選修總人數'
3.
SELECT Sno,Sname,Cno,Cname,Grade
FROM Students
JOIN SC
ON s.Sno=SC.Sno
JOIN Coursec
ON c.Cno=SC.Cno
4.
SELECT AVG(Grade)
FROM SC
WHERE Cno='001'
C. sql server 題目
3、查詢出課程號為『002』,分數最高的學生學號
三、查詢設計
1、SELECT學號,姓名FROM學生
WHERE班級='軟體041'
2、SELECT*FROM課程
WHERE課程名稱LIKE'%語言%'
3、SELECTD.學號,D.姓名,D.班級
FROM(
SELECTTOP5學號
FROM選課A
LEFTJOIN課程B
ONA.課程號=B.課程號
WHEREB.課程名稱='C語言'
ORDERBYA.成績DESC
)C
LEFTJOIN學生D
ONC.學號=D.學號
4、SELECT班級,COUNT(班級)
FROM學生
GROUPBY班級
5、DECLARE@zhangsanchengjiFLOAT
SELECT@zhangsanchengji=A.成績
FROM選課A
LEFTJOIN課程B
ONA.課程號=B.課程號
LEFTJOIN學生C
ONA.學號=C.學號
WHEREB.課程名稱='計算機應用基礎'
ANDA.姓名='張三'
SELECTD.學號,D.姓名
FROM(
SELECTA.學號,A.成績
FROM選課A
LEFTJOIN課程B
ONA.課程號=B.課程號
WHEREB.課程名稱='計算機應用基礎'
)C
LEFTJOIN學生D
ONC.學號=D.學號
WHERE成績>@zhangsanchengji
五、操作題,這里自己查相關的操作吧,不好描述,sqlserver軟體操作起來還是挺方便的。
3、A
break:是跳出本次循環,也就是當@n = 1,循環終止並跳出begin-end執行外部的代碼,此時@n = 1。
continue:重新開始循環,但是continue後的代碼不執行的,這里直到@n = 0時。
return:過程中無條件退出,後續的所有代碼都不執行,所以不會有輸出。
D. SQLserver實例啟用問題;
你好,
安裝兩個實例的是不是都選擇的是默認實例?如果是的,你需要選擇自定義實例名,並且有可能兩個實例都是使用的一個IP埠(1433),如果存在多個實例,盡量在獨立實例上使用固定埠。下面是微軟官方文檔:
https://msdn.microsoft.com/zh-cn/library/ms143694.aspx
E. 所有的sql聚合函數的應用例題 謝謝
WHERE type = 'business'
下面是結果集:
-------------------------- -----------
6,281.25 30788
(1 row(s) affected)
------------------------------------------------
MAX 求最大值
例題:簡單的就不寫了
-------------------------------------------------
BINARY_CHECKSUM
在表中任一行上計算的 BINARY_CHECKSUM(*) 返回相同的值,只要隨後沒有修改行。
BINARY_CHECKSUM(*) 將為大多數(但不是全部)行更改返回不同的值,並可用於檢測大多數行修
改。
例題:本例使用 BINARY_CHECKSUM 來檢測 Northwind 資料庫的 Procts 表中一行的改變。
/*Get the checksum value before the values in the specific rows (#13-15) are changed.*/
USE Northwind
GO
CREATE TABLE TableBC (ProctID int, bchecksum int)
INSERT INTO TableBC
SELECT ProctID, BINARY_CHECKSUM(*)
FROM Procts
/*TableBC contains a column of 77 checksum values corresponding to each row in the Procts table.*/
--A large company bought procts 13-15.
--The new company modified the procts names and unit prices.
--Change the values of ProctsName and UnitPrice for rows 13, 14, and 15 of the Procts table.*/
UPDATE Procts
SET ProctName='Oishi Konbu', UnitPrice=5
WHERE ProctName='Konbu'
UPDATE Procts
SET ProctName='Oishi Tofu', UnitPrice=20
WHERE ProctName='Tofu'
UPDATE Procts
SET ProctName='Oishi Genen Shouyu', UnitPrice=12
WHERE ProctName='Genen Shouyu'
--Determine the rows that have changed.
SELECT ProctID
FROM TableBC
WHERE EXISTS (
SELECT ProctID
FROM Procts
WHERE Procts.ProctID = TableBC.ProctID
AND BINARY_CHECKSUM(*) <> TableBC.bchecksum)
下面是結果集:
ProctID
13
14
15
----------------------------------------------
F. 有誰會這個題,SQLserver的題
五(1)、查詢所有圖書類別為「中國歷史」的所有圖書記錄
五(2)、查詢所有圖書名稱中包含「SQLServer」的圖書
五(3)、查詢各類別圖書的數量(按圖書類別分組)
六(2)、
altertableTeacherADDtelchar(15)
GO
sp_addextendedpropertyN'MS_Description',N'聯系電話','USER',N'dbo','TABLE',N'Teacher','COLUMN',N'tel'
六(3)、
(8,2)
GO
sp_addextendedpropertyN'MS_Description',N'工資','USER',N'dbo','TABLE',N'Teacher','COLUMN',N'salary'
六(4)、
altertableTeacher
addconstraintck_titlecheck(titleIN('教授','副教授','講師','助教'))
六(5)、
INSERTINTOTeacher
VALUES('10001','李芳','女','1975-3-14','副教授','計算機系','83118147',4582.5)
六(6)、
UPDATEdbo.TeacherSETtel='18653155668'WHEREtname='李芳'
六(7)、
SELECTtname'姓名',YEAR(GETDATE())-YEAR(birthday)AS'年齡',salary'工資',title'職稱'
FROMdbo.Teacher
WHEREdepart='計算機系'
六(8)、
CREATEVIEWV_TeacherAS
SELECTtop100percenttid,tname,depart,telFROMdbo.Teacher
ORDERBYdepart
六(9)、
SELECTtitle,COUNT(*)numFROMdbo.Teacher
GROUPBYtitle
六(10)、
SELECTtitle'系部',MAX(salary)'最高工資',MIN(salary)'最低工資',AVG(salary)'平均工資'
FROMdbo.Teacher
GROUPBYtitle
G. sqlserver查詢問題.給出表根據題目寫出查詢
1. select 學生.學號 as 至少選修2門課程學生學號 from 學生 group by 學生.學號 where 學生.學號=(select 學號 form 成績 where 學生.學號=成績.學號)
2.select 課程.課程號 as 王文芳同學不學的課程的課程號 from 課程 where 課程.課程號 not in
(
select 成績.課程號 from 成績
where 成績.學號 in(select 學生.學號 from 學生 where 姓名='王文芳')
)
H. SQL語句實例題目
額 我只曉得SQLServer的T-SQL
中文版SQL Server 2000開發與管理應用實例
都是大量項目中能用到的實例
CSDN SQL大版主的書籍,可說非常不錯了
希望對你有幫助
如果還要再深入理解點原理東西
可以看下 微軟技術叢書sql2005 T-SQL查詢與T-SQL程序設計
I. SQLSERVER取數問題
SELECT
CASE IsNull(A, '~')
WHEN '~' THEN '0'
ELSE A
END AS A
FROM ...
J. sql資料庫計算題
在sqlserver 裡面,可以直接用 select 123+48+428 求和。
在oracle 裡面,要加上 from al ,就是寫成 select 123+48+428 from al;