(<列名列表>)VALUES(<值列表>)如:INSERTINTOt_student(student_id,student_name,student_age,student_sex)VALUES(1,'大毛',18,'男');其中列名可以省略,省略之后要求插入的值必須與列一一對(duì)應(yīng):INSERTINTOt_studen" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

系統(tǒng) 1894 0

SQL語(yǔ)句第二篇,不說(shuō)廢話直接開(kāi)始吧。

?

首先創(chuàng)建一張表如下,創(chuàng)建表的方法在上篇介紹過(guò)了,這里就不再贅述。

?

添加新數(shù)據(jù):

      
        INSERT
      
      
        INTO
      
      
        <
      
      表名
      
        >
      
       (
      
        <
      
      列名列表
      
        >
      
      ) 
      
        VALUES
      
       (
      
        <
      
      值列表
      
        >
      
      )?
    

如:

      
        INSERT
      
      
        INTO
      
       t_student (student_id,student_name,student_age,student_sex) 
      
        VALUES
      
       (
      
        1
      
      ,
      
        '
      
      
        大毛
      
      
        '
      
      ,
      
        18
      
      ,
      
        '
      
      
      
        '
      
      );
    

其中列名可以省略,省略之后要求插入的值必須與列一一對(duì)應(yīng):

      
        INSERT
      
      
        INTO
      
       t_student 
      
        VALUES
      
       (
      
        2
      
      ,
      
        '
      
      
        王二
      
      
        '
      
      ,
      
        20
      
      ,
      
        '
      
      
      
        '
      
      );
    

多行數(shù)據(jù)添加:

      
        INSERT
      
      
        INTO
      
       t_student 
      
        VALUES
      
       (
      
        3
      
      ,
      
        '
      
      
        張三
      
      
        '
      
      ,
      
        22
      
      ,
      
        '
      
      
      
        '
      
      
        ),

                 (
      
      
        4
      
      ,
      
        '
      
      
        李四
      
      
        '
      
      ,
      
        17
      
      ,
      
        '
      
      
      
        '
      
      
        ),

                 (
      
      
        5
      
      ,
      
        '
      
      
        王五
      
      
        '
      
      ,
      
        23
      
      ,
      
        '
      
      
      
        '
      
      );
    

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

?

更改數(shù)據(jù):

      
        UPDATE
      
       表名 
      
        SET
      
       列1
      
        =
      
      新值1,列2
      
        =
      
      新值2 
      
        WHERE
      
       過(guò)濾條件
    

假如要修改李四的年齡為21歲

      
        UPDATE
      
       t_student 
      
        SET 
      
      student_age
      
        =
      
      
        21
      
      
        WHERE 
      
      student_name
      
        =
      
      
        '
      
      
        李四
      
      
        '
      
      ;
    

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

注:修改多個(gè)列的值時(shí)用逗號(hào)隔開(kāi)。要想設(shè)置某一列的值為空,只需讓<列名>=NULL 即可。WHERE表示過(guò)濾條件。

?

刪除數(shù)據(jù)(行): ?

      
        DELETE
      
      
        FROM
      
       表名 
      
        WHERE
      
       過(guò)濾條件
    

現(xiàn)要?jiǎng)h除20到22歲的學(xué)生信息:

      
        DELETE
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_age 
      
        BETWEEN
      
      
        20
      
      
        AND
      
      
        22
      
      ;
    

WHERE的判斷條件之后會(huì)更詳細(xì)的介紹。

刪除除了DELETE還有一種方法 TRUNCATE,寫(xiě)法:

      
        TRUNCATE
      
      
        TABLE
      
       表名
    

二者區(qū)別在于:

DELETE會(huì)記錄日志,意味著刪除后的數(shù)據(jù)還可以恢復(fù),但是效率低。TRUNCATE不會(huì)記錄日志,刪除后的數(shù)據(jù)不能恢復(fù),但是效率高。需要注意的是,TRUNCATE不能用于有外鍵約束引用的表。

?

查詢操作

分類(lèi):

–投影操作
  指定查詢結(jié)果中能顯示哪些列
–選擇操作
  指定哪些行出現(xiàn)在結(jié)果中
–排序操作
  指定查詢的結(jié)果以什么樣的順序顯示
?
投影操作:
          
            SELECT
          
           列1,列2 
          
            FROM
          
           表名
        

多個(gè)列中間用逗號(hào)隔開(kāi),如果選擇所有列可以用*號(hào)簡(jiǎn)寫(xiě)。

還是此表:

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

現(xiàn)在只想要查看姓名和年齡列:

          
            SELECT
          
           student_name,student_age 
          
            FROM
          
           t_student;
        

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

注意這里不是把其他列刪除了,而是只顯示我們想看見(jiàn)的部分。

          
            SELECT
          
           CONCAT(student_name,
          
            '
          
          
            ——
          
          
            '
          
          ,student_age) 
          
            '
          
          
            組合值
          
          
            '
          
          
            FROM
          
           t_student;
        

CONCAT,可以將列與列之間用想要的符號(hào)連接起來(lái):

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

?

排除重復(fù)——DISTINCT

現(xiàn)給原表加入一班級(jí)列:

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

按照之前方法查詢班級(jí)列得到:

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

但是我們只想查看具體有哪些班級(jí),這里就需要用到去重,也就是 DISTINCT

          
            SELECT
          
          
            DISTINCT
          
           student_class 
          
            FROM
          
           t_student;
        

?

返回限定行數(shù)的查詢——LIMIT

LIMIT后面參數(shù)為1或2個(gè):

LIMIT N 表示從第一行開(kāi)始返回N行結(jié)果,LIMIT i,N 表示從第i+1行開(kāi)始返回N行結(jié)果。

例:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student LIMIT 
      
        3
      
      ;
    

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student LIMIT 
      
        2
      
      ,
      
        3
      
      ;
    

*注:LIMIT很重要,它是之后做數(shù)據(jù)表格分頁(yè)的關(guān)鍵。

?

選擇操作——WHERE:

分為單條件選擇與多條件選擇

單條件選擇標(biāo)準(zhǔn)結(jié)構(gòu):

      
        SELECT
      
       列1, 列2 
      
        FROM
      
       表名 
      
        WHERE
      
       列3 
      
        =
      
       值?
    

關(guān)系運(yùn)算符包括:> ?>= ?< ?<= ?= ?!=

多條件選擇標(biāo)準(zhǔn)結(jié)構(gòu):

      
        SELECT
      
       列A, 列B 
      
        FROM
      
        WHERE
      
       條件1 (
      
        AND
      
      或者OR) 條件2
    

其中AND表示并且,OR表示或者。

?

選擇范圍——BETWEEN

如:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_age 
      
        BETWEEN
      
      
        20
      
      
        AND
      
      
        23
      
      ;
    

BETWEEN后的值為從下限到上限。

?

定義集合——IN或NOT IN

現(xiàn)在想查看年齡為17、20、23的學(xué)生信息: ?

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_age 
      
        IN
      
       (
      
        17
      
      ,
      
        20
      
      ,
      
        23
      
      );
    

反之NOT IN就是選擇不包括在集合里的學(xué)生信息。

?

模糊查詢——LIKE

為了更好的解釋模糊查詢,這里重新建張表:

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

這里姓王的兄弟們躺槍...別介意。

首先先說(shuō)下占位符與通配符:

占位符 "_",表示任何單個(gè)字符。

通配符 "%",表示包含零或多個(gè)字符。

下面就來(lái)用模糊查詢逐一選中我們想要的行。

名字只有兩個(gè)字的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        __
      
      
        '
      
      ;
    

這里可能看不清,引號(hào)里實(shí)際是兩個(gè)占位符。

所有姓王的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        王%
      
      
        '
      
      ;
    

最后一個(gè)字 是“王”的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        %王
      
      
        '
      
      ;
    

只要是名字中有“王”字的:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       student_name 
      
        LIKE
      
      
        '
      
      
        %王%
      
      
        '
      
      ;
    

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

這下模糊查詢就很明白了吧,當(dāng)然還有其他組合,大家可以自己嘗試。

?

處理空值數(shù)據(jù):

判斷條件不能用列名=NULL,而是要用IS NULL或IS NOT NULL。

標(biāo)準(zhǔn)寫(xiě)法:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        WHERE
      
       性別 
      
        IS
      
      
        NULL
      
    

?

排序操作——ORDER BY:

使用ORDER BY時(shí),列名上指定ASC或DESC。ASC表示正序,DESC表示倒序。如果不指定則默認(rèn)為正序。

按年齡排:

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        ORDER
      
      
        BY
      
       student_age 
      
        ASC
      
      ;
    

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

      
        SELECT
      
      
        *
      
      
        FROM
      
       t_student 
      
        ORDER
      
      
        BY
      
       student_age 
      
        DESC
      
      ;
    

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢

?

最后一定要注意!

基本查詢SQL的執(zhí)行順序:

1.執(zhí)行FROM 2.WHERE條件過(guò)濾 3.SELECT投影 4.ORDER BY排序

?

SQL的第二篇就到這里了,博主寫(xiě)的快吐了!感覺(jué)學(xué)的時(shí)候沒(méi)這么多啊,希望各位認(rèn)同的朋友頂一下,也好讓我有動(dòng)力寫(xiě)完。

SQL語(yǔ)句匯總(二)——數(shù)據(jù)修改、數(shù)據(jù)查詢


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!??!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 互助| 栾城县| 东山县| 拉萨市| 延庆县| 申扎县| 图片| 江孜县| 齐齐哈尔市| 密山市| 且末县| 老河口市| 兰考县| 永城市| 福海县| 平罗县| 海宁市| 会理县| 金寨县| 远安县| 临西县| 福安市| 广汉市| 尉犁县| 凉山| 五大连池市| 河间市| 临城县| 新平| 天祝| 渭南市| 康保县| 古浪县| 酉阳| 太原市| 漾濞| 永川市| 远安县| 调兵山市| 湘潭市| 福建省|