第一篇:sql語(yǔ)句學(xué)習(xí)
一、選擇題
1、SQL語(yǔ)言是()語(yǔ)言。——(SQL特點(diǎn))(易)
A)層次數(shù)據(jù)庫(kù) B)網(wǎng)絡(luò)數(shù)據(jù)庫(kù) C)關(guān)系數(shù)據(jù)庫(kù)D)非數(shù)據(jù)庫(kù)
答案:C2、SQL語(yǔ)言具有兩種使用方式,分別稱(chēng)為交互式SQL和()。
——(SQL語(yǔ)言使用方式)(易)
A)提示式SQLB)多用戶(hù)SQLC)嵌入式SQLD)解釋式SQL
答案:C
3-4-5()包括數(shù)據(jù)庫(kù)模式定義和數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)與存取方法定義。()實(shí)現(xiàn)對(duì)DB的操作,包括查詢(xún)、插入、刪除、修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。()用于數(shù)據(jù)保護(hù),包括數(shù)據(jù)的安全性,完整性,并發(fā)控制和恢復(fù)等?!〝?shù)據(jù)庫(kù)語(yǔ)言DDLDMLDCL)(中)
A)數(shù)據(jù)控制子語(yǔ)言 B)數(shù)據(jù)定義子語(yǔ)言 C)數(shù)據(jù)操縱子語(yǔ)言 D)數(shù)據(jù)庫(kù)語(yǔ)言
答案:B C A
6-7-8-9-
10、下列SQL語(yǔ)句中,實(shí)現(xiàn)數(shù)據(jù)檢索的語(yǔ)句是(),修改表結(jié)構(gòu)的是(),修改屬性值的是(),刪除表結(jié)構(gòu)的是(),刪除表記錄的是()。
——(DROP TABLE, ALTER TABLE,UPDATE, DELETE,SELECT 語(yǔ)句)(易)
A)SELECTB)DROPC)UPDATED)ALTERE)DELETE
答案:A D C B E
二、用關(guān)系代數(shù)表達(dá)式及SQL語(yǔ)句描述關(guān)系查詢(xún)
1、設(shè)有如下關(guān)系表R、S和T:——(易)R(BH,XM,XB,DWH)
S(DWH,DWM)
T(BH,XM,XB,DWH)
寫(xiě)出實(shí)現(xiàn)下列關(guān)系代數(shù)的SQL語(yǔ)句:
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、設(shè)有如下三個(gè)關(guān)系:——(易-易)
A(A#,ANAME,WQTY,CITY): A#:商店代號(hào);ANAME:商店名;WQTY:店員人數(shù)
B(B#,BNAME,PRICE):B#:商品號(hào);BNAME:商品名稱(chēng);
AB(A#,B#,QTY):QTY:商品數(shù)量
試用關(guān)系代數(shù)和SQL語(yǔ)言寫(xiě)出下列查詢(xún)。
1)找出店員人數(shù)不超過(guò)100人或者在長(zhǎng)沙市的所有商店的代號(hào)和商店名;
2)找出供應(yīng)書(shū)包的商店名;
解:
1)?A#,ANAME(?WQTY??100 ? CITY?'長(zhǎng)沙'(A))∏A#,ANAME(σWQTY<=100ⅤCITY=’長(zhǎng)沙’(A))
SELECT A#,ANAME FROM A WHERE WQTY<=100 OR CITY=’長(zhǎng)沙’;
2)?ANAME((?BNAME?'書(shū)包'(B))?AB?A)∏ANAME((σBNAME=’書(shū)包’(B))∞AB∞(A))
SELECT ANAME FROM A,B,AB
WHERE BNAME=’書(shū)包’ AND B.B#=AB.B# AND AB.A#=A.A#;
3.設(shè)有如下關(guān)系模式:
student(NO, NAME , SEX ,BIRTHDAY, CLASS)
teacher(NO,NAME,SEX,BIRTHDAY,PROF,DEPART)PROF為職稱(chēng),DEPART為系別
course(CNO, CNAME, TNO)
score(NO, CNO, DEGREE)DEGREE 為成績(jī)
寫(xiě)出實(shí)現(xiàn)以下各題功能的SQL語(yǔ)句:
(1)查詢(xún)至少有2名男生的班號(hào);——(難)
(2)查詢(xún)不姓“王”的同學(xué)記錄;——(易)
(3)查詢(xún)每個(gè)學(xué)生的姓名和年齡;——(難)
(4)查詢(xún)學(xué)生中最大和最小的birthday日期值;——(中)
(5)查詢(xún)學(xué)生表的全部記錄并按班號(hào)和年齡從大到小的順序;——(中)
(6)查詢(xún)男教師及其所上的課程;——(中)
(7)查詢(xún)最高分同學(xué)的學(xué)號(hào),課程號(hào)和成績(jī);——(中)
(8)查詢(xún)和“李軍”同性別并同班的所有同學(xué)的姓名;——(中)
(9)查詢(xún)選修“數(shù)據(jù)庫(kù)系統(tǒng)概論”課程的男同學(xué)的成績(jī)表;——(中)
(10)查詢(xún)所有未講課的教師的姓名和所在系別;——(難)
(11)查詢(xún)“計(jì)算機(jī)系”教師所教課程的成績(jī)表;——(難)
(12)查詢(xún)選修“3-105”課程的成績(jī)高于“109”號(hào)同學(xué)成績(jī)的所有同學(xué)的記錄;——(難)
(13)查詢(xún)最低分大于70,最高分小于90的學(xué)生的學(xué)號(hào);——(中)
(14)查詢(xún)成績(jī)?cè)?0到80之間的所有記錄;——(中)
(15)查詢(xún)成績(jī)比該課程平均成績(jī)低的同學(xué)的成績(jī)表;——(相關(guān)子查詢(xún))(難)
(16)查詢(xún)所有女教師和女同學(xué)的姓名、性別和生日;——(中)
(17)查詢(xún)“計(jì)算機(jī)系”和“無(wú)線(xiàn)電系”不同職稱(chēng)的教師的姓名和職稱(chēng);——(中)
解:(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=‘?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論’);
(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=’計(jì)算機(jī)系’ 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=’計(jì)算機(jī)系’ OR depart=’無(wú)線(xiàn)電系’
order by prof;
4、設(shè)有圖書(shū)登記表TS,具有屬性:BNO(圖書(shū)編號(hào)),BC(圖書(shū)類(lèi)別),BNA(書(shū)名),AU(著者),PUB(出版社)。按下列要求用SQL語(yǔ)言進(jìn)行設(shè)計(jì)?!ㄒ祝?/p>
1)按圖書(shū)館編號(hào)BNO建立TS表的索引ITS;
2)查詢(xún)按出版社統(tǒng)計(jì)其出版圖書(shū)總數(shù)。
3)刪除索引。
解:1)CREATE INDEX ITSON TS(BNO);
2)SELECT PUB,COUNT(BNO)FROM TS GROUP BY PUB;
3)DROP INDEXITS;
5、已知三個(gè)關(guān)系R、S和T——(中)
R(A,B,C)S(A,D,E)T(D,F)
試用SQL語(yǔ)句實(shí)現(xiàn)如下操作:
1)R、S和T三個(gè)關(guān)系按關(guān)聯(lián)屬性建立一個(gè)視圖R-S-T;
2)對(duì)視圖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、設(shè)有學(xué)生表S(SNO, SN)(SNO為學(xué)生號(hào),SN為姓名)和學(xué)生選修課程表SC(SNO,CNO,CN,G)
(CNO為課程號(hào),CN為課程名,G為成績(jī)),試用SQL語(yǔ)言完成以下各題:——(易)
a)建立一個(gè)視圖V-SSC(SNO, SN, CNO, CN, G);
b)從視圖V-SSC上查詢(xún)平均成績(jī)?cè)?0分以上的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、設(shè)有關(guān)系模式: 其中SB表示供應(yīng)商,SN為供應(yīng)商號(hào),SNAME為供應(yīng)商名字,CITY
為供應(yīng)商所在城市; PB(PN, PNAME, COLOR, WEIGHT)其中PB表示零件,PN為零件代號(hào),PANME為零件名
字,COLOR為零件顏色,WEIGHT為零件重量; JB(JN, JNAME, CITY)其中JB表示工程,JN為工程編號(hào),JNAME為工程名字,CITY為工
程所在城市;
SPJB()其中SPJB表示供應(yīng)關(guān)系,QTY表示提供的零件數(shù)量。
寫(xiě)出實(shí)現(xiàn)以下各題功能的SQL語(yǔ)句:
(1)取出所有工程的全部細(xì)節(jié);——(易)
(2)取出所在城市為上海的所有工程的全部細(xì)節(jié);——(易)
(3)取出重量最輕的零件代號(hào);——(難)
(4)取出為工程J1提供零件的供應(yīng)商代號(hào);——(易)
(5)取出為工程J1提供零件P1的供應(yīng)商代號(hào);——(易)
(6)取出由供應(yīng)商S1提供零件的工程名稱(chēng);——(易)
(7)取出供應(yīng)商S1提供的零件的顏色;——(易)
(8)取出為工程J1或J2提供零件的供應(yīng)商代號(hào);——(中)
(9)取出為工程J1提供紅色零件的供應(yīng)商代號(hào);——(易)
(10)取出為所在城市為上海的工程提供零件的供應(yīng)商代號(hào);——(易)
(11)取出為所在城市為上?;虮本┑墓こ烫峁┘t色零件的供應(yīng)商代號(hào);——(中)
(12)取出供應(yīng)商與工程所在城市相同的供應(yīng)商提供的零件代號(hào);——(中)
(13)取出上海的供應(yīng)商提供給上海的任一工程的零件的代號(hào);——(難)
(14)取出至少有一個(gè)和工程不在同一城市的供應(yīng)商提供零件的工程代號(hào);——(難)
(15)取出上海供應(yīng)商不提供任何零件的工程的代號(hào);——(難)
(16)取出這樣一些供應(yīng)商代號(hào),它們能夠提供至少一種由紅色零件的供應(yīng)商提供的零件;
——(難)
(17)取出由供應(yīng)商S1提供零件的工程的代號(hào);——(易)
(18)取出所有這樣的一些 市的工程提供零件;——(難) (19)取出所有這樣的三元組 市的工程提供指定的零件;——(難) (20)重復(fù)(19)題,但不檢索兩個(gè)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=‘上?!疉ND 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=‘上?!?/p> 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、設(shè)有如下關(guān)系模式:——(中) 圖書(shū)關(guān)系B(圖書(shū)編號(hào)B#,圖書(shū)名T,作者A,出版社P); 讀者關(guān)系R(借書(shū)證號(hào)C#,讀者名N,讀者地址D); 借閱關(guān)系L(C#,B#,借書(shū)日期E,還書(shū)標(biāo)志BZ); BZ=‘1’表示已還; BZ=‘0’ 表示未還; 寫(xiě)出實(shí)現(xiàn)以下各題功能的SQL語(yǔ)句: (1)查詢(xún)“工業(yè)出版社”出版的圖書(shū)名 (2)將書(shū)號(hào)為B5的圖書(shū)的出版社改為“工業(yè)出版社” (3)查詢(xún)99年12月31日以前借書(shū)未還的讀者名與書(shū)名 (4)查所借的書(shū)包含借書(shū)證號(hào)為C1的讀者借出未還的所有書(shū)的讀者名與借書(shū)證號(hào)。 (5)刪去“工業(yè)出版社”出版的所有圖書(shū)及相關(guān)的借閱信息。 解: (1)SelectTfromBWhereP = ’工業(yè)出版社’ (2)UpdateBSetP=’工業(yè)出版社’ 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=’工業(yè)出版社’); Delete from B Where P=’工業(yè)出版社’; sql語(yǔ)句學(xué)習(xí) ? 數(shù)據(jù)定義語(yǔ)言(DDL): 1)創(chuàng)建數(shù)據(jù)庫(kù)(create):create database database-name; eg.create database test; 2)刪除數(shù)據(jù)庫(kù):drop database dbname; eg.drop database test; 3)創(chuàng)建新表:create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..); eg.根據(jù)已有的表創(chuàng)建新表的例子:create table tab_new like tab_old;create table tab_new as select col1,col2… from tab_old definition only; 4)刪除表:drop table tabname; 5)增加列:alter table tabname add column col type; 6)添加主鍵: alter table tabname add primary key(col); 7)刪除主鍵:alter table tabname drop primary key(col); 8)創(chuàng)建索引:create [unique] index idxname on tabname(col….); 9)刪除索引:drop index idxname;注:索引是不可更改的,想更改必須刪除重新建; 10)創(chuàng)建視圖:create view viewname as select statement; 2.數(shù)據(jù)操縱語(yǔ)言(DML) 1)查詢(xún)語(yǔ)句(select) eg1.select * from table1 where field1 like '%value1%'; eg2.select * from table1 order by field1,field2 [desc]; eg3.select count as totalcount from table1; eg4.select sum(field1)as sumvalue from table1; eg5.select avg(field1)as avgvalue from table1; eg6.select max(field1)as maxvalue from table1; eg7.select min(field1)as minvalue from table1; eg8.select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c;(注:此為左外連接,結(jié)果集中包括連接表的匹配行,也包括左連接表的所有行) 2)插入語(yǔ)句(insert) insert into table1(field1,field2)values(value1,value2); 3)刪除語(yǔ)句(delete) delete from table1 where 范圍; 4)更新語(yǔ)句(update) update table1 set field1=value1 where 范圍; 3.數(shù)據(jù)控制語(yǔ)言(DCL) 1)授予權(quán)限語(yǔ)句(GRANT) GRANT privileges(columns)ON what TO user IDENTIFIED BY “password” WITH GRANT OPTION; 其中:privileges可為如下限定符:ALTER 修改表和索引、CREATE(創(chuàng)建數(shù)據(jù)庫(kù)和表)、DELETE(刪除表中已有的記錄)、DROP(刪除數(shù)據(jù)庫(kù)和表)、INDEX(創(chuàng)建或刪除索引)、INSERT(向表中插入新行)、REFERENCE(未用)、SELECT(檢索表中的記錄)、UPDATE(修改現(xiàn)存表記錄)、FILE(讀或?qū)懛?wù)器上的文件)、PROCESS(查看服務(wù)器中執(zhí)行的線(xiàn)程信息或殺死線(xiàn)程)、RELOAD(重載授權(quán)表或清空日志、主機(jī)緩存或表緩存)、SHUTDOWN(關(guān)閉服務(wù)器)、ALL 所 有;ALL PRIVILEGES同義詞、USAGE(特殊的“無(wú)權(quán)限”權(quán)限) columns:權(quán)限運(yùn)用的列,它是可選的,并且你只能設(shè)置列特定的權(quán)限。如果命令有多于一個(gè)列,應(yīng)該用逗號(hào)分開(kāi)它們; what:權(quán)限運(yùn)用的級(jí)別。權(quán)限可以是全局的(適用于所有數(shù)據(jù)庫(kù)和所有表)、特定數(shù)據(jù)庫(kù)(適用于一個(gè)數(shù)據(jù)庫(kù)中的所有表)或特定表的??梢酝ㄟ^(guò)指定一個(gè)columns字句是權(quán)限是列特定的。 user :權(quán)限授予的用戶(hù),它由一個(gè)用戶(hù)名和主機(jī)名組成。MySQL中的一個(gè)用戶(hù)名就?悄懔臃衿魘敝付ǖ撓沒(méi)?該名字不必與你的Unix登錄名或Windows名聯(lián)系起來(lái)。缺省地,如果你不明確指定一個(gè)名字,客戶(hù)程序?qū)⑹褂?/p> 你的登錄名作為MySQL用戶(hù)名。這只是一個(gè)約定。你可以在授權(quán)表中將該名字改為nobody,然后以nobody連接 執(zhí)行需要超級(jí)用戶(hù)權(quán)限的操作。 password:賦予用戶(hù)的口令,它是可選的。如果你對(duì)新用戶(hù)沒(méi)有指定IDENTIFIED BY子句,該用戶(hù)不賦給口令(不安全)。對(duì)現(xiàn)有用戶(hù),任何你指定的口令將代替老口令。如果你不指定口令,老口令保持不變,當(dāng)你用IDENTIFIED BY 時(shí),口令字符串用改用口令的字面含義,GRANT將為你編碼口令,不要象你用SET PASSWORD 那樣使用password() 函數(shù)。 WITH GRANT OPTION子句是可選的。如果你包含它,用戶(hù)可以授予權(quán)限通過(guò)GRANT語(yǔ)句授權(quán)給其它用戶(hù)。你可以用該子句給與其它用戶(hù)授權(quán)的能力。 用戶(hù)名、口令、數(shù)據(jù)庫(kù)和表名在授權(quán)表記錄中是大小寫(xiě)敏感的,主機(jī)名和列名不是。 eg1.創(chuàng)建一個(gè)超級(jí)用戶(hù)test1 grant all privilleges on *.* to test1@localhost identified by '123456' with grant option;eg2.創(chuàng)建一個(gè)只能查詢(xún)的用戶(hù) test2 mysql> grant select on *.* to test2@localhost identified by '9876543'; 2)撤權(quán)并刪除用戶(hù)(revoke) 要取消一個(gè)用戶(hù)的權(quán)限,使用REVOKE語(yǔ)句。REVOKE的語(yǔ)法非常類(lèi)似于GRANT語(yǔ)句,除了TO用FROM取代并且沒(méi)有INDETIFED BY和WITH GRANT OPTION子句: revoke privileges(columns)ON what FROM user user部分必須匹配原來(lái)GRANT語(yǔ)句的你想撤權(quán)的用戶(hù)的user部分。privileges部分不需匹配,你可以用GRANT 語(yǔ)句授權(quán),然后用REVOKE語(yǔ)句只撤銷(xiāo)部分權(quán)限。REVOKE語(yǔ)句只刪除權(quán)限,而不刪除用戶(hù)。即使你撤銷(xiāo)了所有 權(quán)限,在user表中的用戶(hù)記錄依然保留,這意味著用戶(hù)仍然可以連接服務(wù)器。要完全刪除一個(gè)用戶(hù),你必須 用一條DELETE語(yǔ)句明確從user表中刪除用戶(hù)記錄: #mysql-u root mysql DELETE FROM user WHERE User=“user_name” and Host=“host_name”; FLUSH PRIVILEGES; DELETE語(yǔ)句刪除用戶(hù)記錄,而FLUSH語(yǔ)句告訴服務(wù)器重載授權(quán)表。(當(dāng)你使用GRANT和REVOKE語(yǔ)句時(shí),表自動(dòng)重載,而你直接修改授權(quán)表時(shí)不是。) eg.刪除用戶(hù)test1 revoke all on *.* from; use mysql; delete from user where user='test' and host='localhost';flush privileges; 3)提交語(yǔ)句(commit) 4)回滾語(yǔ)句(rollback) //創(chuàng)建臨時(shí)表空間 create temporary tablespace test_temp tempfile 'E:oracleproduct10.2.0oradatatestservertest_temp01.dbf'size 32m autoextend on next 32m maxsize 2048m extent management local; //創(chuàng)建數(shù)據(jù)表空間 create tablespace test_data logging datafile 'E:oracleproduct10.2.0oradatatestservertest_data01.dbf'size 32m autoextend on next 32m maxsize 2048m extent management local; //創(chuàng)建用戶(hù)并指定表空間 create user username identified by password default tablespace test_data temporary tablespace test_temp; //給用戶(hù)授予權(quán)限 //一般用戶(hù) grant connect,resource to username; //系統(tǒng)權(quán)限 grant connect,dba,resource to username //創(chuàng)建用戶(hù) create user user01 identified by u01 //建表 create table test7272(id number(10),name varchar2(20),age number(4),joindate date default sysdate,primary key(id)); //存儲(chǔ)過(guò)程 //數(shù)據(jù)庫(kù)連接池 數(shù)據(jù)庫(kù)連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫(kù)連接 // //創(chuàng)建表空間 create tablespace thirdspace datafile 'C:/Program Files/Oracle/thirdspace.dbf' size 10mautoextend on; //創(chuàng)建用戶(hù) create user binbin identified by binbin default tablespace firstspace temporary tablespace temp; //賦予權(quán)限 GRANT CONNECT, SYSDBA, RESOURCE to binbin //null與""的區(qū)別 簡(jiǎn)單點(diǎn)說(shuō)null表示還沒(méi)new出對(duì)象,就是還沒(méi)開(kāi)辟空間 個(gè)對(duì)象裝的是空字符串。 //建視圖 create view viewname as sql //建索引 create index indexname on tablename(columnname) //在表中增加一列 alter table tablename add columnname columntype //刪除一列 alter table tablename drop columnname //刪除表格內(nèi)容,表格結(jié)構(gòu)不變 truncate table tableneme //新增數(shù)據(jù) insert into tablename()values() //直接新增多條數(shù)據(jù) insert into tablename() selecte a,b,c from tableabc //更新數(shù)據(jù) new除了對(duì)象,但是這“”表示 update tablename set columnname=? where //刪除數(shù)據(jù) delete from tablename where //union語(yǔ)句 sql union sql //case case when then else end SQL練習(xí) 一、設(shè)有如下的關(guān)系模式,試用SQL語(yǔ)句完成以下操作: 學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系) 課程(課程號(hào),課程名,學(xué)分,學(xué)期,學(xué)時(shí)) 選課(學(xué)號(hào),課程號(hào),成績(jī)) 1. 求選修了課程號(hào)為“C2”課的學(xué)生學(xué)號(hào) 2. 求選修了課程號(hào)為“C2”課的學(xué)生學(xué)號(hào)和姓名 3. 求沒(méi)有選修課程號(hào)為“C2”課的學(xué)生學(xué)號(hào) 4. 求選修了課程號(hào)為“C2”,又選修了課程號(hào)為“C3”課的學(xué)生學(xué)號(hào) 5.求選修了課程號(hào)為“C2”或“C3”課的學(xué)生學(xué)號(hào) 6.求選修了全部課程的學(xué)生學(xué)號(hào) 7.求至少選修了學(xué)號(hào)為“98002”的學(xué)生所學(xué)過(guò)的所有課程的學(xué)生的學(xué)號(hào)和姓名。 8.查詢(xún)學(xué)生選課表中的全部數(shù)據(jù) 9.查詢(xún)計(jì)算機(jī)系學(xué)生的姓名、年齡 10.查詢(xún)成績(jī)?cè)?0—80分之間的學(xué)生的學(xué)號(hào)、課程號(hào)和成績(jī) 11.查詢(xún)計(jì)算機(jī)系年齡在18—20之間且性別為“男”的學(xué)生的姓名和年齡 12.查詢(xún)成績(jī)?cè)?0分以上的學(xué)生的姓名、課程號(hào)和成績(jī),并按成績(jī)的降序排列結(jié)果。 13.查詢(xún)哪些課程沒(méi)有人選修,要求列出課程號(hào)和課程名。 14.查詢(xún)數(shù)學(xué)系成績(jī)?cè)?0分以上的學(xué)生的學(xué)號(hào),姓名 15.查詢(xún)課程號(hào)為“C02”的課程的最高分?jǐn)?shù)。 16.查詢(xún)計(jì)算機(jī)系學(xué)生的最大年齡和最小年齡。 17.統(tǒng)計(jì)每個(gè)系的學(xué)生人數(shù)。 18.統(tǒng)計(jì)每門(mén)課程的選課人數(shù)和考試最高分。 19.統(tǒng)計(jì)每個(gè)學(xué)生的選課門(mén)數(shù)和考試總成績(jī),并按選課門(mén)數(shù)的升序顯示結(jié)果。 20.查詢(xún)總成績(jī)超過(guò)200分的學(xué)生,要求列出學(xué)號(hào)、總成績(jī)。 21.用子查詢(xún)實(shí)現(xiàn)如下查詢(xún): (1)查詢(xún)選修了課程號(hào)“C01”的學(xué)生的姓名和所在系。 (2)查詢(xún)數(shù)學(xué)系成績(jī)?cè)?0分以上的學(xué)生的學(xué)號(hào)和姓名。 (3)查詢(xún)計(jì)算機(jī)系考試成績(jī)最高的學(xué)生的姓名。 22.刪除選課成績(jī)小于60分的學(xué)生的選課記錄。 23.將所有選修了課程“C01”的學(xué)生的成績(jī)加10分。 24.將計(jì)算機(jī)系所有選修了課程“計(jì)算機(jī)文化基礎(chǔ)”課程的學(xué)生的成績(jī)加10分。 25.創(chuàng)建查詢(xún)學(xué)生的學(xué)號(hào)、姓名、所在系、課程號(hào)、課程名、課程學(xué)分的視圖。 26.創(chuàng)建查詢(xún)每個(gè)學(xué)生的平均成績(jī)的視圖,要求列出學(xué)生學(xué)號(hào)和平均成績(jī)。 27.創(chuàng)建查詢(xún)每個(gè)學(xué)生的選課學(xué)分的視圖,要求列出學(xué)生學(xué)號(hào)及總學(xué)分。 SQL語(yǔ)句,用友的SQL2000,通過(guò)查詢(xún)管理器寫(xiě)的語(yǔ)句 1、查詢(xún) 2、修改 3、刪除 4、插入 表名:users 包含字段:id,sname,sage 查詢(xún) select * from users查詢(xún)users表中所有數(shù)據(jù) select id,sname,sage from users查詢(xún)users表中id,sname,sage字段所有數(shù)據(jù) 可以限定查詢(xún)條件比如: select sname from users where sage>20查詢(xún)年齡大于20歲的所有人的名字 修改 update users set sname='李四',sage=22將users表中數(shù)據(jù)都改為姓名李四,年齡22 update users set sname='李四',sage=22 where id=1限定id為1的人的信息修改為 姓名李四,年齡22 可以加where條件。 刪除 delete from users where id=2刪除users表中id為2的一行數(shù)據(jù)delete from users 代表刪除users中所有數(shù)據(jù) 插入 insert into users(id,sname,sage)values(5,'劉三',21)插入一條數(shù)據(jù) SQL四條最基本的數(shù)據(jù)操作語(yǔ)句:Insert,Select,Update和Delete。 例如:SELECT columns FROM tables;其中columns為列的名稱(chēng),tables為表格名稱(chēng) 1、查詢(xún):select 字段名 from 表名 where 條件 查找在表(如A)中符合條件的字段 2、修改:update 表名 set 字段名=‘所要修改的內(nèi)容’ 修改在表(如A)中的字段的值為:所要修改的內(nèi)容 3、刪除: delete from 表名 where 條件 刪除符合條件的表(如A)中的信息 4、插入: insert into 表名(字段名)(‘插入內(nèi)容’) 在表(如A)中插入字段為:插入內(nèi)容 的一條信息第二篇:sql語(yǔ)句學(xué)習(xí)_經(jīng)典_推薦
第三篇:sql常用語(yǔ)句
第四篇:SQL語(yǔ)句
第五篇:SQL語(yǔ)句