溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)庫查詢語句

發(fā)布時(shí)間:2020-06-25 16:29:54 來源:網(wǎng)絡(luò) 閱讀:619 作者:張晧 欄目:數(shù)據(jù)庫

插入數(shù)據(jù)

    INSERT 語法結(jié)構(gòu)

        INSERT [INTO] <表名>  [列名] VALUES <值列表>

    參數(shù)解釋

        [INTO]和[列名]是可選的

        <表名>是必需的

        如果省略[列名],<值列表>與表中字段的順序保持一致

        多個(gè)列名和多個(gè)值列表用逗號分隔

    向student表中插入一行數(shù)據(jù)

        insert into student (姓名,×××號,所在班級,成績) 

        values('王蘭', '126125199008222446', 2,90)

更新數(shù)據(jù)

  UPDATE 語法結(jié)構(gòu)

    UPDATE  <表名>  SET  <列名 = 更新值>  [WHERE  <更新條件>]

  參數(shù)解釋

    WHERE子句是可選的,用來限制條件

    如果省略WHERE字句,表中所有數(shù)據(jù)行將被更新

  更改student表中王蘭的成績?yōu)?5,備注為“勤奮好學(xué)”

    update student set 成績='95',備注='勤奮好學(xué)‘ where 姓名='王蘭'

刪除數(shù)據(jù)

    DELETE 語法結(jié)構(gòu)

        DELETE  FROM  <表名>  [WHERE <刪除條件>]

    參數(shù)解釋

        WHERE子句是可選的,用來限制刪除條件

        如果省略WHERE字句,表中所有數(shù)據(jù)行將被刪除

    Truncate Table語法結(jié)構(gòu)

        Truncate  table <表名>

            刪除表中的所有行


條件刪除

記錄事物日志

重置標(biāo)識符列

外鍵約束

Delete

使用where子句按條件刪除

是,數(shù)據(jù)可以恢復(fù)

可以用于含有外鍵約束的表

Truncate table

只能清空整個(gè)表

否,數(shù)據(jù)無法恢復(fù)

重置標(biāo)識符列為0


    Truncate Table執(zhí)行速度更快,用于清空大數(shù)據(jù)量表

    在執(zhí)行Truncate Table前要確保數(shù)據(jù)可刪除

SQL和T-SQL

    SQL(結(jié)構(gòu)化查詢語言)

        關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言

            SQL Server、 Oracle、DB2

        非過程化語言

            不需要指定對數(shù)據(jù)的存放方法

        統(tǒng)一的語言

            創(chuàng)建、修改以及刪除數(shù)據(jù)對象(數(shù)據(jù)庫、表等)

    T-SQL

        SQL的加強(qiáng)版, 提供了類似于程序語言的基本功能

            變量說明、流程控制、功能函數(shù)

T-SQL的組成

    DML:數(shù)據(jù)操縱語言

        查詢、插入、刪除和修改數(shù)據(jù)

        SELECT、INSERT、UPDATE、DELETE

    DDL:數(shù)據(jù)定義語言

        建立數(shù)據(jù)庫、數(shù)據(jù)庫對象和定義其列

        CREATE、ALTER、DROP

    DCL:數(shù)據(jù)控制語言

        控制數(shù)據(jù)庫組件的存取許可、存取權(quán)限等

        GRANT、REVOKE

SELECT語法結(jié)構(gòu)

    SELECT select_list 

    [INTO new_table_name]

    FROM table_name

    [ WHERE search_conditions ]

    [GROUP BY group_by_expression] [HAVING search_conditions]

    [ORDER BY order_expression [ASC|DESC] ]

 參數(shù)解釋

    SELECT子句:指定查詢內(nèi)容

    INTO子句:把查詢結(jié)果存放到一個(gè)新表中

    FROM子句:指定查詢源

    WHERE子句:查詢條件

    GROUP BY子句:指定查詢結(jié)果的分組條件

    HAVING子句:指定分組搜索條件,與GROUP BY子句一起使用

    ORDER BY子句:指定查詢結(jié)果的排序方式

表達(dá)式

    條件表達(dá)式

        常量:表示單個(gè)指定數(shù)據(jù)值的符號

            字母、數(shù)字或符號

         列名:表中列的名稱

          一元運(yùn)算符:僅有一個(gè)操作數(shù)的運(yùn)算符

            “+”表示正數(shù),“-”表示負(fù)數(shù)

          二元運(yùn)算符:將兩個(gè)操作數(shù)組合執(zhí)行操作的運(yùn)算符

                 算術(shù)運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符

運(yùn)算符含義

=等于

>大于

<小于

>=大于或等于

<=小于或等于

<>不等于

!=不等于

BETWEEN指定值的包含范圍(包含邊界)。使用 And 分隔開始值和結(jié)束值

IS [Not] NULL指定是否搜索空值或非空值

LIKE模糊查詢,與指定字符串進(jìn)行模式匹配

IN是否在數(shù)據(jù)范圍里面

條件表達(dá)式舉例

PRICE > 20,表示滿足大于20的PRICE值               

PRICE <> 20,表示滿足不等于20的PRICE值

PRICE Between 10 And 20,表示滿足大于等于10并且小于等于20的PRICE值

NAME Like '李%',表示滿足NAME姓名字段里姓李的所有姓名

邏輯表達(dá)式

    用邏輯運(yùn)算符將條件連接起來,運(yùn)算結(jié)果是一個(gè)邏輯值

        TRUE或FALSE

                    邏輯運(yùn)算符

運(yùn)算符含義

AND組合兩個(gè)條件,并在兩個(gè)條件都為True時(shí)取值為True

OR組合兩個(gè)條件,并在兩個(gè)條件之一為 True 時(shí)取值為True

NOT和其他操作符一起使用,取反的操作

邏輯表達(dá)式舉例

    付款方式為信用卡,并且只能是牡丹卡、金穗卡或龍卡

    付款方式 = ‘信用卡’ AND 信用卡 in (‘牡丹卡’, ‘金穗卡’, ‘龍卡’)

查詢舉例——查詢列

    查詢表中所有列

          SELECT * FROM table_name

    查詢student 表中的所有學(xué)生信息

       SELECT * FROM student

    查詢表中特定列

       SELECT column_name_1,column_name_2,... FROM table_name

    查詢student表中姓名、所在班級、成績列的內(nèi)容

           SELECT 姓名,所在班級,成績 FROM student

查詢舉例——查詢特定行

    語法結(jié)構(gòu)

      SELECT select_list FROM table_name WHERE search_conditions

    查詢student表中2班的名叫劉婷的學(xué)生

         SELECT * FROM student WHERE 姓名='劉婷' AND 所在班級=2

    查詢student表中成績在90到100的所有學(xué)生

       SELECT * FROM student WHERE 成績 BETWEEN 90 AND 100

    查詢student表中姓劉的所有學(xué)生

       SELECT * FROM student WHERE 姓名 LIKE '劉%'

    查詢student表中備注不為空的所有學(xué)生

       SELECT * FROM student WHERE 備注 is NOT NULL

查詢舉例——查詢返回限制的行數(shù)

    語法結(jié)構(gòu)

      SELECT TOP n select_list FROM table_name

    參數(shù)解釋

        TOP關(guān)鍵字用來限制查詢返回的行數(shù),n為需要返回的行數(shù)

    查詢student表中前5行的數(shù)據(jù)

         SELECT top 5 * FROM student

查詢舉例——改變查詢結(jié)果集列名稱

    語法結(jié)構(gòu)

        SELECT column_name AS column_alias FROM table_name

    參數(shù)解釋

        AS子句用來改變結(jié)果集列的名稱

    查詢student表中姓名和×××號兩列數(shù)據(jù)

         SELECT 姓名 AS name,×××號 as idcard FROM student

查詢舉例——查詢結(jié)果排序

    語法結(jié)構(gòu)

       SELECT select_list FROM table_name ORDER BY column_name [ASC|DESC]

    參數(shù)解釋

        ASC:升序

        DESC:降序

    查詢student表中學(xué)生信息,按照成績從高到低顯示結(jié)果

      SELECT * FROM student order by 成績 DESC

查詢舉例——聚合函數(shù)

    用于對一組值執(zhí)行計(jì)算,并返回單個(gè)值

    如求總和、平均值、最大或最小值等

   SUM:求總和

    查詢student表中所有學(xué)生的總成績

            SELECT SUM(成績) 總成績 FROM student

     AVG:求平均數(shù)

    查詢student表中所有學(xué)生的平均成績

            SELECT AVG(成績) 平均成績 FROM student                                      MAX和MIN:返回最大最小值

    查詢student表中所有學(xué)生中的最高分和最低分

           SELECT MAX(成績) 最高分,MIN(成績) 最低分 FROM student

   COUNT:返回非空值的計(jì)數(shù)

    查詢student表中所有行數(shù)

        SELECT COUNT(*) 總行數(shù) FROM student

查詢舉例——分組查詢

    語法結(jié)構(gòu)

      SELECT select_list FROM table_name GROUP BY column_name 

        HAVING search_conditions

    參數(shù)解釋

        GROUP BY子句對查詢結(jié)果進(jìn)行分組

        HAVING子句指定分組搜索條件

    查詢student表中每個(gè)班級的總成績

       SELECT 所在班級,SUM(成績) AS 總成績 FROM student GROUP BY 所在班級

    查詢student表中總成績大于200的班級

       SELECT 所在班級,SUM(成績) AS 總成績 FROM student GROUP BY 所在班級 HAVING SUM(成績)>200

WHERE子句和 HAVING子句的區(qū)別

    WHERE子句在分組之前過濾數(shù)據(jù),條件中不能包含聚合函數(shù)

    HAVING子句在分組之后過濾數(shù)據(jù),條件中經(jīng)常包含聚合函數(shù)

查詢舉例——插入數(shù)據(jù)

    語法結(jié)構(gòu)

       SELECT select_list INTO new_table_name FROM table_name

    參數(shù)解釋

        INTO子句把一個(gè)表中的數(shù)據(jù)經(jīng)過篩選插入到另一個(gè)表中

    將student表的數(shù)據(jù)插入到新表student_bak中

          SELECT * INTO student_bak FROM student

    將student表中2班的學(xué)生信息保存到表student_2中

          SELECT * INTO student_2 FROM student WHERE 所在班級=2

表的連接類型

    內(nèi)連接(INNER JOIN)

        只返回兩個(gè)數(shù)據(jù)集合之間匹配關(guān)系的行

    外連接

        左外連接(LEFT JOIN )

            結(jié)果集包括左表的所有行

        右外連接(RIGHT JOIN )

            結(jié)果集包括右表的所有行

        完整外連接(FULL JOIN)

            返回左表和右表中的所有行

    交叉連接

        返回左表與右表挨個(gè)連接的所有行

內(nèi)連接

     方式一:在Where子句中指定連接條件

SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,B.job 職業(yè)B FROM A,B WHERE A.name=B.name

    方式二:在FROM子句中使用INNER JOIN…ON子句

SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,B.job 職業(yè)B FROM  A inner join B on A.name=B.name

左外連接和右外連接

    左外連接查詢

SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,job 職業(yè)B FROM A left join B on A.name=B.name

     右外連接查詢

SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,job 職業(yè)B FROM A right join B on A.name=B.name

    完整外連接查詢

SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,job 職業(yè)B FROM A full join B on A.name=B.name

                      

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI