欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

非常不錯的SQL語句學(xué)習(xí)手冊實(shí)例版

 更新時間:2007年03月25日 00:00:00   作者:  

例 26  找出籍貫為山西或河北,成績?yōu)?nbsp;90 分以上的學(xué)生的姓名、籍貫和成績。(當(dāng)構(gòu)造多表連接查詢命令時,必須遵循兩條規(guī)則。第一,連接條件數(shù)正好比表數(shù)少 1 (若有三個表,就有兩個連接條件 ) ;第二,若一個表中的主關(guān)鍵字是由多個列組成,則對此主關(guān)鍵字中的每一個列都要有一個連接條件(也有少數(shù)例外情況)) 

        Select  SNAME, BPLACE, GRADE  FROM   STUDENTS, ENROLLS 
                          Where  BPLACE IN (‘ 山西 ' , ‘ 河北 ')  AND  GRADE >= 90  AND                          STUDENTS.SNO=ENROLLS.SNO 
例 28  查出課程成績在 80 分以上的女學(xué)生的姓名、課程名和成績。( FROM 子句中的子查詢) 

        Select  SNAME,CNAME, GRADE   FROM   (Select SNAME, CNAME , GRADE 
                          FROM  STUDENTS, ENROLLS,COURSES Where  SEX = ' 女 ') 
                          AS TEMP (SNAME, CNAME,GRADE)  Where  GRADE > 80 
表達(dá)式與函數(shù)的使用 
例 29  查詢各課程的學(xué)時數(shù)。(算術(shù)表達(dá)式由算術(shù)運(yùn)算符+、-、 * 、/與列名或數(shù)值常量所組成。) 

        Select  CNAME,COURSE_TIME = CREDIT*16  FROM   COURSES
例 30  找出教師的最小年齡。(內(nèi)部函數(shù): SQL 標(biāo)準(zhǔn)中只使用 COUNT 、 SUM 、 AVG 、 MAX 、 MIN 函數(shù),稱之為聚集函數(shù)( Set Function )。 COUNT 函數(shù)的結(jié)果是該列統(tǒng)計(jì)值的總數(shù)目, SUM 函數(shù)求該列統(tǒng)計(jì)值之和, AVG 函數(shù)求該列統(tǒng)計(jì)值之平均值, MAX 函數(shù)求該列最大值, MIN 函數(shù)求該列最小值。) 

        Select  MIN(AGE)  FROM   TEACHERS 
例 31  統(tǒng)計(jì)年齡小于等于 22 歲的學(xué)生人數(shù)。(統(tǒng)計(jì)) 

        Select  COUNT(*)  FROM   STUDENTS  Where  AGE < = 22 
例 32  找出學(xué)生的平均成績和所學(xué)課程門數(shù)。 

       Select  SNO, AVG(GRADE), COURSES = COUNT(*)   FROM   ENROLLS  GROUP  BY SNO
例 34  找出年齡超過平均年齡的學(xué)生姓名。 

        Select SNAME  FROM STUDENTS  
                         Where AGE > (Select  AVG(AGE)  FROM   STUDENTS) 
例 35  找出各課程的平均成績,按課程號分組,且只選擇學(xué)生超過 3 人的課程的成績。( GROUP BY 與 HAVING 
        GROUP BY 子句把一個表按某一指定列(或一些列)上的值相等的原則分組,然后再對每組數(shù)據(jù)進(jìn)行規(guī)定的操作。 
        GROUP BY 子句總是跟在 Where 子句后面,當(dāng) Where 子句缺省時,它跟在 FROM 子句后面。 
        HAVING 子句常用于在計(jì)算出聚集之后對行的查詢進(jìn)行控制。) 

      Select CNO, AVG(GRADE), STUDENTS = COUNT(*)  FROM ENROLLS 
                      GROUP BY CNO  HAVING COUNT(*) >= 3 
相關(guān)子查詢   
例 37  查詢沒有選任何課程的學(xué)生的學(xué)號和姓名。(當(dāng)一個子查詢涉及到一個來自外部查詢的列時,稱為相關(guān)子查詢( Correlated Subquery) 。相關(guān)子查詢要用到存在測試謂詞 EXISTS 和 NOT EXISTS ,以及 ALL 、 ANY ( SOME )等。) 

     Select SNO, SNAME   FROM   STUDENTS   Where  NOT EXISTS 
                    (Select *  FROM ENROLLS  Where ENROLLS.SNO=STUDENTS.SNO) 
例 38   查詢哪些課程只有男生選讀。 

        Select DISTINCT CNAME  FROM   COURSES C 
                         Where ' 男 ' = ALL
                                    (Select SEX FROM  ENROLLS , STUDENTS Where ENROLLS.SNO=STUDENTS.SNO AND ENROLLS.CNO=C.CNO) 
例 39  要求給出一張學(xué)生、籍貫列表,該表中的學(xué)生的籍貫省份,也是其他一些學(xué)生的籍貫省份。 

        Select  SNAME, BPLACE  FROM   STUDENTS A  Where  EXISTS 
                         (Select *  FROM STUDENTS B  Where A.BPLACE=B.BPLACE AND           A.SNO < > B.SNO) 
例 40  找出選修了全部課程的學(xué)生的姓名。本查詢可以改為:查詢這樣一些學(xué)生,沒有一門課程是他不選修的。 

      Select  SNAME  FROM   STUDENTS Where  NOT EXISTS 
                       (Select * FROM COURSES Where  NOT EXISTS
                                        (Select * FROM ENROLLS Where ENROLLS.SNO = STUDENTS.SNO AND ENROLLS.CNO=
關(guān)系代數(shù)運(yùn)算 
例 41  設(shè)有某商場工作人員的兩張表:營業(yè)員表 SP_SUBORD 和營銷經(jīng)理表 SP_MGR ,其關(guān)系數(shù)據(jù)模式如下: 
    SP_SUBORD (SALPERS_ID, SALPERS_NAME, MANAGER_ID, OFFICE) 
      SP_MGR (SALPERS_ID, SALPERS_NAME, MANAGER_ID, OFFICE) 
      其中,屬性 SALPERS_ID 為工作人員的編號 , SALPERS_NAME 為工作人員的姓名 , MANAGER_ID 為所在部門經(jīng)理的編號 , OFFICE 為工作地點(diǎn)。 
若查詢?nèi)可虉龉ぷ魅藛T,可以用下面的 SQL 語句: 

     (Select * FROM SP_SUBORD)  UNION  (Select * FROM SP_MGR) 
或等價地用下面的 SQL 語句: 

     Select *  FROM (TABLE SP_SUBORD UNION TABLE SP_MGR)
(2) INTERSECT  (Select * FROM SP_SUBORD) 
      INTERSECT  (Select * FROM SP_MGR) 
或等價地用下面的 SQL 語句: 
    Select * FROM (TABLE SP_SUBORD INTERSECT TABLE SP_MGR) 
或用帶 ALL 的 SQL 語句: 
       (Select * FROM SP_SUBORD) INTERSECT ALL (Select * FROM SP_MGR) 
或 
     Select * FROM (TABLE SP_SUBORD INTERSECT ALL TABLE SP_MGR) 
(3) EXCEPT  (Select * FROM SP_MGR) 
      EXCEPT  (Select * FROM SP_SUBORD) 
或等價地用下面的 SQL 語句: 
    Select *  FROM (TABLE SP_MGR EXCEPT TABLE SP_ SUBORD) 
或用帶 ALL 的 SQL 語句: 
    (Select * FROM SP_MGR)  EXCEPT  ALL  (Select * FROM SP_SUBORD) 
例 42  查詢籍貫為四川、課程成績在 80 分以上的學(xué)生信息及其成績。(自然連接) 
     (Select * FROM STUDENTS  Where BPLACE=‘ 四川 ')  NATURAL JOIN 
        (Select * FROM ENROLLS    Where GRADE >=80) 
例3.43          列出全部教師的姓名及其任課的課程號、班級。(外連接與外部并外連接允許在結(jié)果表中保留非匹配元組,空缺部分填以 NULL 。外連接的作用是在做連接操作時避免丟失信息。 
外連接有 3 類: 
(1)左外連接( Left Outer Join )。連接運(yùn)算謂詞為 LEFT [OUTER] JOIN ,其結(jié)果表中保留左關(guān)系的所有元組。 
(2)右外連接( Right Outer Join )。連接運(yùn)算謂詞為 RIGHT [OUTER] JOIN ,其結(jié)果表中保留右關(guān)系的所有元組。 
(3)全外連接( Full Outer Join )。連接運(yùn)算謂詞為 FULL [OUTER] JOIN ,其結(jié)果表中保留左右兩關(guān)系的所有元組。) 

      Select TNAME, CNO, CLASS  FROM TEACHERS LEFT OUTER JOIN TEACHING USING (TNO) 
SQL 的數(shù)據(jù)操縱 
例 44  把教師李映雪的記錄加入到教師表 TEACHERS 中。(插入) 

     Insert INTO TEACHERS  VALUES(1476 , ' 李映雪 ' , 44 , ' 副教授 ') 
例 45  成績優(yōu)秀的學(xué)生將留下當(dāng)教師。 

     Insert INTO TEACHERS (TNO , TNAME)  Select DISTINCT SNO , SNAME 
                             FROM   STUDENTS , ENROLLS 
                             Where STUDENTS.SNO = ENROLLS.SNO AND GRADE >= 90
例 47  把所有學(xué)生的年齡增加一歲。(修改) 

     Update STUDENTS   SET AGE = AGE+1 
例 48  學(xué)生張春明在數(shù)據(jù)庫課考試中作弊,該課成績應(yīng)作零分計(jì)。 

     Update ENROLLS   SET GRADE = 0  Where CNO = 'C1' AND 
                     ' 張春明 ' = (Select SNAME  FROM STUDENTS   Where STUDENTS.SNO=ENROLLS.SNO) 
例 49  從教師表中刪除年齡已到 60 歲的退休教師的數(shù)據(jù)。(刪除) 

     Delete FROM TEACHERS  Where  AGE >= 60 
SQL 的數(shù)據(jù)控制 
例 50  授予 LILI 有對表 STUDENTS 的查詢權(quán)。(表/視圖特權(quán)的授予  一個 SQL 特權(quán)允許一個被授權(quán)者在給定的數(shù)據(jù)庫對象上進(jìn)行特定的操作。授權(quán)操作的數(shù)據(jù)庫對象包括:表 / 視圖、列、域等。授權(quán)的操作包括: Insert 、 Update 、 Delete 、 Select 、 REFERENCES 、 TRIGGER 、 UNDER 、 USAGE 、 EXECUTE 等。其中 Insert 、 Update 、 Delete 、 Select 、 REFERENCES 、 TRIGGER 有對表做相應(yīng)操作的權(quán)限,故稱為表特權(quán)。) 

     GRANT Select ON STUDENTS  TO LILI  WITH GRANT OPTION 
例 51  取消 LILI 的存取 STUDENTS 表的特權(quán)。 

     REVOKE ALL  ON  STUDENTS   FROM LILI CASCADE 

相關(guān)文章

  • sqlserver 導(dǎo)出插入腳本代碼

    sqlserver 導(dǎo)出插入腳本代碼

    工作中經(jīng)常遇到需要將遠(yuǎn)程客戶數(shù)據(jù)庫中的數(shù)據(jù)復(fù)制到本地來測試,下載整個數(shù)據(jù)庫太大了不值得,用下面的腳本可以按指定表生成Insert腳本,將腳本復(fù)制到本地來執(zhí)行,這樣快捷了不少
    2012-01-01
  • sql server利用不同語種語言顯示報(bào)錯錯誤消息的方法示例

    sql server利用不同語種語言顯示報(bào)錯錯誤消息的方法示例

    這篇文章主要給大家介紹了關(guān)于sql server利用不同語種語言顯示報(bào)錯錯誤消息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用sql server具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • SQLSERVER中得到執(zhí)行計(jì)劃的兩種方式

    SQLSERVER中得到執(zhí)行計(jì)劃的兩種方式

    得到執(zhí)行計(jì)劃的方式有兩種:一種是在指令的前面打開一些開關(guān),讓執(zhí)行計(jì)劃信息打在結(jié)果集里,這種方法比較適合在一個測試環(huán)境里對單個語句調(diào)優(yōu);另一種方法是使用SQL Trace里的事件跟蹤來跟蹤語句的執(zhí)行計(jì)劃,感興趣的朋友可以了解下
    2013-01-01
  • 幾個擴(kuò)展存儲過程使用方法

    幾個擴(kuò)展存儲過程使用方法

    sqlserver里面有一些危險(xiǎn)的擴(kuò)展存儲過程,可以操作注冊表,所以很多情況下,下面的存儲過程為了服務(wù)器安全都會將這些存儲過程刪除。不過防御與安全同等重要。下面是具體的注冊的操作方法。
    2010-07-07
  • SQL Server中使用Linkserver連接Oracle的方法

    SQL Server中使用Linkserver連接Oracle的方法

    SQL Server提供了Linkserver來連接不同數(shù)據(jù)庫上的同構(gòu)或異構(gòu)數(shù)據(jù)源。下面以圖示介紹一下連接Oracle的方式
    2012-07-07
  • 用sql腳本創(chuàng)建sqlserver數(shù)據(jù)庫范例語句

    用sql腳本創(chuàng)建sqlserver數(shù)據(jù)庫范例語句

    創(chuàng)建sqlserver數(shù)據(jù)庫腳本 范例 ,主要是熟悉下用sql語句創(chuàng)建數(shù)據(jù)庫的代碼。
    2010-09-09
  • BCP 大容量數(shù)據(jù)導(dǎo)入導(dǎo)出工具使用步驟

    BCP 大容量數(shù)據(jù)導(dǎo)入導(dǎo)出工具使用步驟

    bcp工具的參數(shù)幫忙請查看聯(lián)機(jī)叢書.
    2010-05-05
  • SQL注入之報(bào)錯注入的具體使用

    SQL注入之報(bào)錯注入的具體使用

    報(bào)錯注入就是利用了數(shù)據(jù)庫的某些機(jī)制,人為地制造錯誤條件,使得查詢結(jié)果能夠出現(xiàn)在錯誤信息中,主要介紹了SQL注入之報(bào)錯注入的具體使用,感興趣的可以了解一下
    2023-08-08
  • SQL對冗余數(shù)據(jù)的刪除重復(fù)記錄只保留單條的說明

    SQL對冗余數(shù)據(jù)的刪除重復(fù)記錄只保留單條的說明

    本文講一下數(shù)據(jù)庫中通常存在一些冗余數(shù)據(jù),如重復(fù)記錄就是一種,那這樣的記錄如何刪除呢?
    2010-03-03
  • Sql學(xué)習(xí)第三天——SQL 關(guān)于with ties介紹

    Sql學(xué)習(xí)第三天——SQL 關(guān)于with ties介紹

    with ties一般是和Top , order by相結(jié)合使用的,會查詢出最后一條數(shù)據(jù)額外的返回值,接下來將為大家詳細(xì)介紹下,感興趣的各位可以參考下哈
    2013-03-03

最新評論