第一篇:實驗六SQL語句
實驗六 SQL語句(續)
一、實驗目的(1)進一步掌握查詢的概念和方法。
(2)熟練掌握單表查詢的select語句。
(3)熟練掌握聚合函數的使用。
(4)熟練掌握連接查詢方法
(5)熟練掌握嵌套查詢方法
(6)掌握創建和管理視圖的方法。
二、實驗內容
1、查詢時改變列標題的顯示:
檢索全體學生的學號、姓名、籍貫信息,并分別加上“學號”、“姓名”、“籍貫”的別名信息。SQL語句:
2、條件查詢
(1)查詢選修了課程號為“002”,且成績大于80的學生的學號。
SQL語句:
(2)某些學生選修某門課程后沒有參加考試,所以有選課記錄,但沒有考試成績,查詢缺少成績的學生的學號和相應的課程號。
SQL語句:
3、基于IN子句的數據查詢
從課程表中查詢出“高數”、“C語言程序設計”的所有信息。
SQL語句:
4、基于Like子句的查詢
從學生表中分別檢索出姓張的所有同學的資料;檢索名字的第二個字是“紅”或“虹”的所有同學的資料。
SQL語句:
5、查詢經過計算的值。
查詢全體學生的姓名及其出生年份,需為計算值取別名“出生年份”。
SQL語句:
6、使用ORDER BY語句對查詢的結果進行排序
顯示所有學生的基本信息,并按學生的年齡的降序排列。
SQL語句:
7、使用Group子句進行查詢
匯總總分大于是150分的學生的學號及總成績。
8、使用聚合函數
計算“002”號課程的學生平均成績、最高分、最低分。
SQL語句:
9、查詢與“張虹”在同一個班級的學生學號、姓名、所屬系。
(嵌套查詢)SQL語句:
連接查詢T-SQL語句:
10、創建一個名為stuview的視圖,能檢索出每位選課學生的學號、姓名、課程名、總成績。SQL語句為:
11、創建一個名為stuview1的視圖,從數據庫XSGL的student表中查詢出性別為“男”的所有學生的資料。并在創建視圖時使用with check option。(注:該子句用于強制視圖上執行的所有修改語句必須符合由Select語句where中的條件。)
SQL語句為:
13、管理視圖中的數據
1)從視圖stuview1查詢出籍貫為“內蒙”的學生資料。
SQL語句:
思考:是否student表中所有籍貫為內蒙的同學都被查詢出來了?
2)向視圖stuview1中插入一行數據。學號:1006,姓名:趙青,籍貫:內蒙,性別:男,年齡:22。
SQL語句:
原student表中的內容有何變化?
思考:如向視圖stuview1中插入一行數據。學號:1007,姓名:趙靜,籍貫:內蒙,性別:女,年齡:22。
會出現什么樣的結果?
原student表中的內容有何變化?
3)修改視圖stuview1中的數據。
將stuview1中、姓名為“趙青”同學的年齡改為20歲。
SQL語句:
原student表中的內容有何變化?
4)從視圖中stuview1將籍貫為內蒙、姓名為“趙青”同學刪除。
原student表中的內容有何變化?
第二篇:sql語句
簡單基本的sql語句 幾個簡單的基本的sql語句
選擇:select * from table1 where范圍
插入:insert into table1(field1,field2)values(value1,value2)
刪除:delete from table1 where范圍
更新:update table1 set field1=value1 where范圍
查找:select * from table1 where field1 like ’%value1%’
(1)數據記錄篩選:
sql=“select * from 數據表 where 字段名=字段值 order by 字段名 [desc]”
sql=“select * from 數據表 where 字段名 like '%字段值%' order by 字段名 [desc]”sql=“select top 10 * from 數據表 where 字段名=字段值 order by 字段名 [desc]”sql=“select top 10 * from 數據表 order by 字段名 [desc]”
sql=“select * from 數據表 where 字段名 in('值1','值2','值3')”
sql=“select * from 數據表 where 字段名 between 值1 and 值2”
(2)更新數據記錄:
sql=“update 數據表 set 字段名=字段值 where 條件表達式”
sql=“update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式”
(3)添加數據記錄:
sql=“insert into 數據表(字段1,字段2,字段3 …)values(值1,值2,值3 …)”
sql=“insert into 目標數據表 select * from 源數據表”(把源數據表的記錄添加到目標數據表)
(4)數據記錄統計函數:
AVG(字段名)得出一個表格欄平均值
COUNT(*;字段名)對數據行數的統計或對某一欄有值的數據行數統計MAX(字段名)取得一個表格欄最大的值
MIN(字段名)取得一個表格欄最小的值
SUM(字段名)把數據欄的值相加
引用以上函數的方法:
sql=“select sum(字段名)as 別名 from 數據表 where 條件表達式”
set rs=conn.excute(sql)
用 rs(“別名”)獲取統計的值,其它函數運用同上。
查詢去除重復值:select distinct * from table1between的用法
between限制查詢數據范圍時包括了邊界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 數值1 and 數值2
in 的使用方法
select * from table1 where a [not] in(‘值1’,’值2’,’值4’,’值6’)
第三篇:SQL語句
SQL語句,用友的SQL2000,通過查詢管理器寫的語句
1、查詢
2、修改
3、刪除
4、插入
表名:users 包含字段:id,sname,sage
查詢 select * from users查詢users表中所有數據
select id,sname,sage from users查詢users表中id,sname,sage字段所有數據
可以限定查詢條件比如:
select sname from users where sage>20查詢年齡大于20歲的所有人的名字
修改 update users set sname='李四',sage=22將users表中數據都改為姓名李四,年齡22
update users set sname='李四',sage=22 where id=1限定id為1的人的信息修改為
姓名李四,年齡22
可以加where條件。
刪除 delete from users where id=2刪除users表中id為2的一行數據delete from users 代表刪除users中所有數據
插入 insert into users(id,sname,sage)values(5,'劉三',21)插入一條數據
SQL四條最基本的數據操作語句:Insert,Select,Update和Delete。
例如:SELECT columns FROM tables;其中columns為列的名稱,tables為表格名稱
1、查詢:select 字段名 from 表名 where 條件
查找在表(如A)中符合條件的字段
2、修改:update 表名 set 字段名=‘所要修改的內容’
修改在表(如A)中的字段的值為:所要修改的內容
3、刪除: delete from 表名 where 條件
刪除符合條件的表(如A)中的信息
4、插入: insert into 表名(字段名)(‘插入內容’)
在表(如A)中插入字段為:插入內容 的一條信息
第四篇:sql語句學習
一、選擇題
1、SQL語言是()語言。——(SQL特點)(易)
A)層次數據庫 B)網絡數據庫 C)關系數據庫D)非數據庫
答案:C2、SQL語言具有兩種使用方式,分別稱為交互式SQL和()。
——(SQL語言使用方式)(易)
A)提示式SQLB)多用戶SQLC)嵌入式SQLD)解釋式SQL
答案:C
3-4-5()包括數據庫模式定義和數據庫存儲結構與存取方法定義。()實現對DB的操作,包括查詢、插入、刪除、修改數據庫中的數據。()用于數據保護,包括數據的安全性,完整性,并發控制和恢復等。——(數據庫語言DDLDMLDCL)(中)
A)數據控制子語言 B)數據定義子語言 C)數據操縱子語言 D)數據庫語言
答案:B C A
6-7-8-9-
10、下列SQL語句中,實現數據檢索的語句是(),修改表結構的是(),修改屬性值的是(),刪除表結構的是(),刪除表記錄的是()。
——(DROP TABLE, ALTER TABLE,UPDATE, DELETE,SELECT 語句)(易)
A)SELECTB)DROPC)UPDATED)ALTERE)DELETE
答案:A D C B E
二、用關系代數表達式及SQL語句描述關系查詢
1、設有如下關系表R、S和T:——(易)R(BH,XM,XB,DWH)
S(DWH,DWM)
T(BH,XM,XB,DWH)
寫出實現下列關系代數的SQL語句:
1)?DWH?'100'(R)σDWH=’100’(R)
2)?XM,XB(R)∏xM,XB(R)
3)?XM,DWH(?
4)R?S R∞S
5)?XM,XB,DWH(?
解:
1)SELECT * FROM R WHERE DWH=’100’;
2)SELECT XM,XB FROM R;
3)SELECT XM,DWH FROM R WHERE XB=’女’;
4)SELECT R.*,S.DWM FROM R, S WHERE R.DWH=S.DWH;
5)SELECT XM,XB,DWH FROM R,S WHERE R.DWH=S.DWH AND XB=’男’;XB?'男'XB?'女'(R))∏XM,DWH(σXB=’女’(R))(R?S))∏XM,XB,DWH(σXB=’男’(R∞S))
2、設有如下三個關系:——(易-易)
A(A#,ANAME,WQTY,CITY): A#:商店代號;ANAME:商店名;WQTY:店員人數
B(B#,BNAME,PRICE):B#:商品號;BNAME:商品名稱;
AB(A#,B#,QTY):QTY:商品數量
試用關系代數和SQL語言寫出下列查詢。
1)找出店員人數不超過100人或者在長沙市的所有商店的代號和商店名;
2)找出供應書包的商店名;
解:
1)?A#,ANAME(?WQTY??100 ? CITY?'長沙'(A))∏A#,ANAME(σWQTY<=100ⅤCITY=’長沙’(A))
SELECT A#,ANAME FROM A WHERE WQTY<=100 OR CITY=’長沙’;
2)?ANAME((?BNAME?'書包'(B))?AB?A)∏ANAME((σBNAME=’書包’(B))∞AB∞(A))
SELECT ANAME FROM A,B,AB
WHERE BNAME=’書包’ AND B.B#=AB.B# AND AB.A#=A.A#;
3.設有如下關系模式:
student(NO, NAME , SEX ,BIRTHDAY, CLASS)
teacher(NO,NAME,SEX,BIRTHDAY,PROF,DEPART)PROF為職稱,DEPART為系別
course(CNO, CNAME, TNO)
score(NO, CNO, DEGREE)DEGREE 為成績
寫出實現以下各題功能的SQL語句:
(1)查詢至少有2名男生的班號;——(難)
(2)查詢不姓“王”的同學記錄;——(易)
(3)查詢每個學生的姓名和年齡;——(難)
(4)查詢學生中最大和最小的birthday日期值;——(中)
(5)查詢學生表的全部記錄并按班號和年齡從大到小的順序;——(中)
(6)查詢男教師及其所上的課程;——(中)
(7)查詢最高分同學的學號,課程號和成績;——(中)
(8)查詢和“李軍”同性別并同班的所有同學的姓名;——(中)
(9)查詢選修“數據庫系統概論”課程的男同學的成績表;——(中)
(10)查詢所有未講課的教師的姓名和所在系別;——(難)
(11)查詢“計算機系”教師所教課程的成績表;——(難)
(12)查詢選修“3-105”課程的成績高于“109”號同學成績的所有同學的記錄;——(難)
(13)查詢最低分大于70,最高分小于90的學生的學號;——(中)
(14)查詢成績在60到80之間的所有記錄;——(中)
(15)查詢成績比該課程平均成績低的同學的成績表;——(相關子查詢)(難)
(16)查詢所有女教師和女同學的姓名、性別和生日;——(中)
(17)查詢“計算機系”和“無線電系”不同職稱的教師的姓名和職稱;——(中)
解:(1)SELECT CLASS FROM student WHERE SEX=‘男’
GROUP BY CLASS HAVING COUNT(*)>=2;
(2)SELECT * FROM student WHERE NAME NOT LIKE ‘王%’;
(3)SELECT NAME,year(date())-year(birthday)as age FROM student;
(4)SELECT MAX(BIRTHDAY), MIN(BIRTHDAY)FROM student;
(5)SELECT * FROM student ORDER BY CLASS,BIRTHDAY DESC;
(6)SELECT x.name, y.cname FROM teacher x, course y WHERE x.no=y.tno and x.sex=’男’;
(7)SELECT * FROM score WHERE degree=(SELECT max(degree)FROM score);
(8)SELECT name FROM student WHERE sex=(SELECT sex FROM student WHEREname=’
李軍’)and class=(SELECT class FROM student WHERE name=’李軍’);
(9)SELECT * FROM score WHERE no IN(SELECT no FROM student WHERE sex=‘男’)and
cno=(SELECT cno FROM course WHERE cname=‘數據庫系統概論’);
(10)SELECT name, depart FROM teacher t WHERE NOT EXIST(SELECT * FROM course c
WHERE c.tno=t.no);
(11)SELECT * FROM score s, teacher t, course c WHERE t.depart=’計算機系’ and t.no=c.tno
and c.cno=score.cno;
(12)SELECT * FROM student s, score sc WHERE s.no=sc.no and cno=’3-105’ and
degree>(SELECT degree FROMsc WHERE no=’109’ and cno=’3-105’);
(13)SELECT no FROM score GROUP BY no HAVING min(degree)>70 and max(degree)<90;
(14)SELECT * FROM score WHERE degree BETWEEN 60 AND 80;
(15)SELECT * FROM score a WHERE degree <(SELECT avg(degree)FROM score b WHERE b.cno=a.cno group by b.cno);
(16)SELECT name, sex, birthday FROM teacher WHERE sex=‘女’UNION SELECT name, sex,birthday FROM student WHERE sex=‘女’;
(17)SELECT name, prof FROM teacher WHERE depart=’計算機系’ OR depart=’無線電系’
order by prof;
4、設有圖書登記表TS,具有屬性:BNO(圖書編號),BC(圖書類別),BNA(書名),AU(著者),PUB(出版社)。按下列要求用SQL語言進行設計。——(易)
1)按圖書館編號BNO建立TS表的索引ITS;
2)查詢按出版社統計其出版圖書總數。
3)刪除索引。
解:1)CREATE INDEX ITSON TS(BNO);
2)SELECT PUB,COUNT(BNO)FROM TS GROUP BY PUB;
3)DROP INDEXITS;
5、已知三個關系R、S和T——(中)
R(A,B,C)S(A,D,E)T(D,F)
試用SQL語句實現如下操作:
1)R、S和T三個關系按關聯屬性建立一個視圖R-S-T;
2)對視圖R-S-T按屬性A分組后,求屬性C和E的平均值。
解:1)CREATE VIEW R-S-T(A,B,C,D,E,F)AS
SELECT R.A , B, C ,S.D, E, F FROM R, S, T
WHERE R.A=S.A AND S.D=T.D;
2)SELECT AVG(C), AVG(E)FROM R-S-T GOUPY BY A;
6、設有學生表S(SNO, SN)(SNO為學生號,SN為姓名)和學生選修課程表SC(SNO,CNO,CN,G)
(CNO為課程號,CN為課程名,G為成績),試用SQL語言完成以下各題:——(易)
a)建立一個視圖V-SSC(SNO, SN, CNO, CN, G);
b)從視圖V-SSC上查詢平均成績在90分以上的SN, CN 和G。
解:
1)CREATE VIEW V-SSC(SNO , SN, CNO, CN, G)AS
SELECT S.SNO, SN, CNO, CN, GFROM S, SC WHERE S.SNO=SC.SNO
2)SELECT SN, CN, G FROM V-SSC GROUP BY SNO HAVING AVG(G)>907、設有關系模式: 其中SB表示供應商,SN為供應商號,SNAME為供應商名字,CITY
為供應商所在城市; PB(PN, PNAME, COLOR, WEIGHT)其中PB表示零件,PN為零件代號,PANME為零件名
字,COLOR為零件顏色,WEIGHT為零件重量; JB(JN, JNAME, CITY)其中JB表示工程,JN為工程編號,JNAME為工程名字,CITY為工
程所在城市;
SPJB()其中SPJB表示供應關系,QTY表示提供的零件數量。
寫出實現以下各題功能的SQL語句:
(1)取出所有工程的全部細節;——(易)
(2)取出所在城市為上海的所有工程的全部細節;——(易)
(3)取出重量最輕的零件代號;——(難)
(4)取出為工程J1提供零件的供應商代號;——(易)
(5)取出為工程J1提供零件P1的供應商代號;——(易)
(6)取出由供應商S1提供零件的工程名稱;——(易)
(7)取出供應商S1提供的零件的顏色;——(易)
(8)取出為工程J1或J2提供零件的供應商代號;——(中)
(9)取出為工程J1提供紅色零件的供應商代號;——(易)
(10)取出為所在城市為上海的工程提供零件的供應商代號;——(易)
(11)取出為所在城市為上海或北京的工程提供紅色零件的供應商代號;——(中)
(12)取出供應商與工程所在城市相同的供應商提供的零件代號;——(中)
(13)取出上海的供應商提供給上海的任一工程的零件的代號;——(難)
(14)取出至少有一個和工程不在同一城市的供應商提供零件的工程代號;——(難)
(15)取出上海供應商不提供任何零件的工程的代號;——(難)
(16)取出這樣一些供應商代號,它們能夠提供至少一種由紅色零件的供應商提供的零件;
——(難)
(17)取出由供應商S1提供零件的工程的代號;——(易)
(18)取出所有這樣的一些 市的工程提供零件;——(難) (19)取出所有這樣的三元組 市的工程提供指定的零件;——(難) (20)重復(19)題,但不檢索兩個CITY值相同的三元組。——(難) 解: (1)SELECT * FROM JB; (2)SELECT * FROM JB WHERE CITY=‘上海’; (3)SELECT PN FROM PB WHERE WEIGHT=(SELECT MIN(WEIGHT)FROM PB); (4)SELECT SN FORM SPJB WHERE JN=‘J1’; (5)SELECT SN FORM SPJB WHERE JN=‘J1’AND PN=‘P1’; (6)SELECT JNAME FROM JB,SPJB WHERE SN=‘S1’AND SPJB.JN=JB.JN; (7)SELECT DISTINCT COLOR FROM PB,SPJB WHERE SN=‘S1’AND SPJB.JN=JB.JN' (8)SELECT SN FROM SPJB WHERE JN IN {J1, J2}; 或者 SELECT SN FROM SPJB WHERE JN=’J1’ OR JN=’J2’; (9)SELECT SN FROM SPJB,PB WHERE COLOR=‘紅色’AND PB.PN=SPJB.PN AND JN=’J1’; (10)SELECT DISTINCT SN FROM SPJB,JB WHERE CITY=‘上海’AND JB.JN=SPJB.JN; (11)SELECT SN FROM PB, JB, SPJB WHERE COLOR=‘紅色’AND CITY IN {‘上海’,‘北京’} AND PB.PN=SPJB.PN AND JB.JN=SPJB.JN; (12)SELECT PN FROM SB, JB , SPJB WEHRE SB.CITY=JB.CITY AND SB.SN=SPJB.SN AND JB.JN=SPJB.JN; (13)SELECT PN FROM SB, SPJB, JB WEHRE SB.CITY=‘上海’AND JB.CITY=‘上海’ AND SB.SN=SPJB.SN AND JB.JN=SPJB.JN; (14)SELECT JN FROM JB WHERE EXISTS(SELECT * FROM SB WHERE EXISTS(SELECT * FROM SPJB WHERE SB.CITY<>JB.CITY AND SPJB.SN= SB.SN AND SPJB.JN= JB.JN)); (15)SELECT DISTINCT JN FROM SPJB WHERE JN NOT IN(SELECT DISTINCT SPJB.JN FROM SB,SPJB WHERE SB.SN=SPJB.SN AND SB.CITY=‘上海’); (16)SELECT DISTINCT SPJB.SN FROM SB,SPJB WHERE SPJB.PN IN(SELECT SPJB.PN FROM SPJB,PB WHEREPB.PN=SPJB.PN AND PB.COLOR=‘紅色’; (17)SELECTJN FROM SPJB WHERE SN=’S1’; (18)SELECT DINSINCT SB.CITY , JB.CITY FROM SB, JB, SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.SN; (19)SELECT SB.CITY, SPJB.PN, JB.CITY FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN; (20)SELECT DISTINCT SB.CITY, SPJB.PN, JB.CITY FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY<>JB.CITY; 8、設有如下關系模式:——(中) 圖書關系B(圖書編號B#,圖書名T,作者A,出版社P); 讀者關系R(借書證號C#,讀者名N,讀者地址D); 借閱關系L(C#,B#,借書日期E,還書標志BZ); BZ=‘1’表示已還; BZ=‘0’ 表示未還; 寫出實現以下各題功能的SQL語句: (1)查詢“工業出版社”出版的圖書名 (2)將書號為B5的圖書的出版社改為“工業出版社” (3)查詢99年12月31日以前借書未還的讀者名與書名 (4)查所借的書包含借書證號為C1的讀者借出未還的所有書的讀者名與借書證號。 (5)刪去“工業出版社”出版的所有圖書及相關的借閱信息。 解: (1)SelectTfromBWhereP = ’工業出版社’ (2)UpdateBSetP=’工業出版社’ WhereB# = ’B5’ (3)SelectN , TFrom B, R , L WhereE <’99/12/31’ AND BZ=’0’ AND L.C#=R.C# AND L.B#=B.B# (4)select N,C# from R where not exists (select * from LL1 where L1.C#=’c1’ and BZ=‘0’ andnot exists (select * from L L2 where L2.c#=R.c# and L2.B#=L1.B#)) (6)Delete from LWhere B#IN(Select B#From B Where P=’工業出版社’); Delete from B Where P=’工業出版社’; 1.用SQL語句在“商學院教學管理”數據庫中建立學生表、課程表、成績表、教師表、授課表、班級表。實現下列要求: (1)按課本第99-100頁表結構要求建立以上六張表。 (2)在學生表中插入一個學生記錄:(”99082901”,”程麗”,”女”,1981-2-10,”群眾”,”200704”)。 (3)使選修CZ004號課的同學的成績為NULL值。 (4)為課程表加一”教師”列。 (5)修改課程表,使“肖貴”老師教CJ001號課。 (6)列出“王勇”老師所授課程的課號和課名。 (7)列出年齡不小于20的男生的學號和姓名。 (8)統計學生所選課程的門數。 (9)列出選修CJ001號課的學生的平均年齡。 (10)列出選修“計算機基礎”課的學生的平均成績、最高分和最低分。 (11)列出所有姓“李”的同學的姓名、年齡和性別。 (12)列出成績表中成績為空值的學生的姓名、課號。 (13)列出年齡大于女生平均年齡的男生的姓名和年齡。 (14)刪除成績表中無成績的記錄。 (15)把低于CJ001號課平均成績的所有同學的所有課程的成績提高5分。 (16)按學號升序,成績降序列出每個同學的選課情況(包括姓名、課名、成績)。 (17)按課號和成績降序列出每門課的選課情況包括課名、姓名、成績。 (18)按成績降序列出每個同學的姓名、總成績。 (19)求出學習全部課程的所有同學的名單。 (20)列出平均成績大與80分同學的學號和平均成績,按平均成績降序排列。 (25)查詢平均成績排在前5名的學生姓名及平均成績。 (26)統計選修課程在3門以上(含3門)的學生的學號、姓名和平均成績。 (27)查詢學生年齡超過21歲的學生信息。 (28)列出所有姓“李”的同學的學號、姓名、年齡和性別。 (29)按成績降序列出每個同學的姓名、總成績。第五篇:SQL語句練習