最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL DML語句整理匯總

 更新時間:2019年04月25日 10:08:56   作者:s_pr1te  
這篇文章主要介紹了MySQL DML語句整理匯總,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧

DML操作是指對數(shù)據(jù)庫中表記錄的操作,主要包括表記錄的插入(insert)、更新(update)、刪除(delete)和查詢(select),是開發(fā)人員日常使用最頻繁的操作。

1.插入(insert)

格式1.

INSERT INTO emp(ename,hiredate,sal,deptno) VALUES('zzx1','2000-01-01','2000',1);

格式2.

INSERT INTO emp VALUES('lisa','2003-02-01','3000',2);

不用指定字段名稱,但是value值需與表字段嚴格對應(yīng).

格式3.

INSERT INTO emp(ename,sal) VALUES('dony',1000);

對于含可空字段、非空但是含有默認值的字段、自增字段,可以不用在INSERT后的字段列表里面出現(xiàn),VALUES后面只寫對應(yīng)字段名稱的VALUE:

格式4

在MySQL中,INSERT語句還可以一次性插入多條記錄:

INSERT INTO tablename(field1,field2,......fieldn)
VALUES
(record1_value1,record1_value2,......record1_valuen),
(record2_value1,record2_value2,......record2_valuen),
......
(recordn_value1,recordn_value2,......recordn_valuen);

2.更新(update)

格式1

UPDATE emp SET sal=4000 WHERE ename='lisa';

格式2

UPDATE t1,t2,...tn SET 
t1.field1=expr1,
t2.field2=expr2,
...
tn.fieldn=exprn [WHERE CONDITION];

同時更新多個表中的數(shù)據(jù)

3.刪除(delete)

格式1

DELETE FROM tablename [WHERE CONDITION];

格式2

DELETE t1,t2,...tn FROM t1,t2,...tn [WHERE CONDITION];

注意:不管是單表還是多表,不加where條件將會把表的所有記錄刪除,所以操作時一定要小心。

4.查詢(select)

基本語法:

SELECT * FROM tablename [WHERE CONDITION];

1.查詢不重復(fù)的記錄,可以用distinct關(guān)鍵字實現(xiàn):

SELECT DISTINCT deptno FROM emp;

2.條件查詢:

SELECT * FROM emp WHERE deptno=1;

其中,where 后面的條件除“=” 外,還可以使用 >、<、>=、<=、!=等比較運算符;

多個條件之間還可以使用or、and等邏輯運算符進行多條件聯(lián)合查詢

3.排序和限制:

SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC], field2 [DESC|ASC],...fieldn [DESC|ASC]];

其中,DESC和ASC是排序關(guān)鍵字,
DESC表示按照字段進行降序排列(上大-下?。?br /> ASC則表示升序排列(上小-下大),
如果不寫此關(guān)鍵字默認是升序排列。
ORDER BY 后面可以跟多個不同的排列字段,并且每個排序字段可以有不同的排序順序。

如果排序字段的值一樣,則值相同的字段按照第二個排序字段進行排序,以此類推。如果只有一個排序字段,則這字段相同的記錄將會無序排列。

SELECT ......[LIMIT offset_start,row_count];

對于排序后的記錄,如果希望只顯示一部分,而不是全部,這時,就可以使用LIMIT關(guān)鍵字來實現(xiàn).

LIMIT 經(jīng)常和ORDER BY一起配合使用來進行記錄的分頁顯示。

注意:limit屬于MySQL擴展SQL92后的語法,在其他數(shù)據(jù)庫上并不能通用。

4.聚合

很多情況下,我們需要進行一些匯總操作,比如統(tǒng)計整個公司的人數(shù)或者統(tǒng)計每個部門的人數(shù),這是就要用到SQL的集合操作。

SELECT [field1,field2,......fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,......fieldn
[WITH ROLLUP]]
[HAVING where_contition];

對其參數(shù)進行以下說明:

  1. fun_name 表示要做的集合操作,也就是聚合函數(shù),常用的有sum(求和)、count(*)(記錄數(shù))、max(最大值)、min(最小值)。
  2. GROUP BY 關(guān)鍵字表示要進行分類聚合的字段,比如要按照部門分類統(tǒng)計員工數(shù)量,部門就應(yīng)該寫在group by后面。
  3. WITH ROLLUP 是可選語法,表明是否對分類聚合后的結(jié)果進行再匯總。
  4. HAVING 關(guān)鍵字表示對分類后的結(jié)果再進行條件的過濾。

注意:having和where的區(qū)別在于having是對聚合后的結(jié)果進行條件的過濾,而where是在聚合前就對記錄進行過濾,如果邏輯允許,我們盡可能用where先過濾記錄,這樣因為結(jié)果集減小,將對聚合的效率大大提高,最后再根據(jù)邏輯看是否用having進行再過濾。

5.表連接

表連接分為內(nèi)連接和外連接,它們之間的最主要區(qū)別是:
內(nèi)連接僅選出兩張表中互相匹配的記錄,
而外連接會選出其他不匹配的記錄。我們常用的是內(nèi)連接。

外連接有分為左連接和右連接,具體定義如下:

  1. 左連接:包含所有的左邊表中的記錄甚至是右邊表中沒有和它匹配的記錄
  2. 右連接:包含所有的右邊表中的記錄甚至是左邊表中沒有和它匹配的記錄
SELECT ename,deptname FROM emp LEFT JOIN dept ON emp.deptno=dept.deptno;

 6.子查詢

某些情況,當我們查詢的時候,需要的條件是另一個SELECT語句的結(jié)果,這個時候,就要用到子查詢。
用于子查詢的關(guān)鍵字主要包括in、not in、=、!=、exists、not exists等。

SELECT * FROM emp WHERE deptno IN(SELECT deptno FROM dept);

注意:子查詢和表連接之間的轉(zhuǎn)換主要應(yīng)用在兩個方面:

MySQL 4.1 以前的版本不支持子查詢,需要用表連接來實現(xiàn)子查詢的功能
表連接在很多情況下用于優(yōu)化子查詢

7.記錄聯(lián)合

我們經(jīng)常會碰到這樣的應(yīng)用,將兩個表的數(shù)據(jù)按照一定的查詢條件查詢出來后,將結(jié)果合并到一起顯示出來,這個時候,就需要用到union和union all關(guān)鍵字來實現(xiàn)這樣的功能,具體語法如下:

SELECT * FROM t1
UNION|UNION ALL
SELECT * FROM t2
......
UNION|UNION ALL
SELECT * FROM tn;

UNION 和 UNION ALL的主要區(qū)別是 UNION ALL 是把結(jié)果集直接合并在一起,而UNION是將UNION ALL后的結(jié)果進行一次DISTINCT,去除重復(fù)記錄后的結(jié)果。

以上所述是小編給大家介紹的MySQL DML語句整理匯總詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 簡單介紹MySQL中的事務(wù)機制

    簡單介紹MySQL中的事務(wù)機制

    這篇文章主要介紹了MySQL中的事務(wù)機制,通過實例介紹了大概的流程,需要的朋友可以參考下
    2015-04-04
  • linux采用binary方式安裝mysql

    linux采用binary方式安裝mysql

    這篇文章主要為大家詳細介紹了linux采用binary方式安裝mysql步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • mysql5.6 解析JSON字符串方式(支持復(fù)雜的嵌套格式)

    mysql5.6 解析JSON字符串方式(支持復(fù)雜的嵌套格式)

    這篇文章主要介紹了mysql5.6 解析JSON字符串方式(支持復(fù)雜的嵌套格式),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MySQL常見的底層優(yōu)化操作教程及相關(guān)建議

    MySQL常見的底層優(yōu)化操作教程及相關(guān)建議

    這篇文章主要介紹了MySQL常見的底層優(yōu)化操作教程及相關(guān)建議,包括對運行操作系統(tǒng)的硬件方面及存儲引擎參數(shù)的調(diào)整等零碎方面的小整理,需要的朋友可以參考下
    2015-12-12
  • MySQL 視圖(View)原理解析

    MySQL 視圖(View)原理解析

    本篇重點講述視圖是如何實現(xiàn)的,以及視圖如何和查詢優(yōu)化器交互,從而我們可以根據(jù)這些知識了解如何通過視圖提高性能。
    2021-05-05
  • MySql 備忘錄

    MySql 備忘錄

    在MySQL中如果不為NOT NULL字段賦值(等同于賦NULL值)也就是說,MySQL中NOT NULL并不是一個約束條件了
    2012-03-03
  • MySQL數(shù)據(jù)庫高可用HA實現(xiàn)小結(jié)

    MySQL數(shù)據(jù)庫高可用HA實現(xiàn)小結(jié)

    MySQL數(shù)據(jù)庫是目前開源應(yīng)用最大的關(guān)系型數(shù)據(jù)庫,有海量的應(yīng)用將數(shù)據(jù)存儲在MySQL數(shù)據(jù)庫中,這篇文章主要介紹了MySQL數(shù)據(jù)庫高可用HA實現(xiàn),需要的朋友可以參考下
    2022-01-01
  • MySQL查詢優(yōu)化:LIMIT 1避免全表掃描提高查詢效率

    MySQL查詢優(yōu)化:LIMIT 1避免全表掃描提高查詢效率

    在某些情況下,如果明知道查詢結(jié)果只有一個,SQL語句中使用LIMIT 1會提高查詢效率,感興趣的朋友可以了解下哈,希望對你優(yōu)化mysql查詢有所幫助
    2013-04-04
  • MYSQL中SWITCH語句和循環(huán)語句舉例詳解

    MYSQL中SWITCH語句和循環(huán)語句舉例詳解

    MySQL提供了多種循環(huán)語句來實現(xiàn)循環(huán)操作,其中包括while循環(huán)、loop循環(huán)、repeat循環(huán)和非標準的goto循環(huán),下面這篇文章主要給大家介紹了關(guān)于MYSQL中SWITCH語句和循環(huán)語句的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • Mysql服務(wù)添加 iptables防火墻策略的方案

    Mysql服務(wù)添加 iptables防火墻策略的方案

    這篇文章主要介紹了給Mysql服務(wù)添加 iptables防火墻策略的方案,本文給大家分享兩種解決方案,需要的朋友可以參考下
    2021-04-04

最新評論

仁怀市| 清水河县| 大渡口区| 宜州市| 弥勒县| 旬阳县| 抚宁县| 株洲县| 科尔| 苍梧县| 清河县| 鹰潭市| 上高县| 临沧市| 布尔津县| 邵阳市| 巴东县| 治县。| 永新县| 徐闻县| 社旗县| 郯城县| 永顺县| 蕲春县| 康定县| 枣阳市| 卢龙县| 遂溪县| 进贤县| 吉木乃县| 丽江市| 铜山县| 白山市| 麻江县| 苏尼特左旗| 涞水县| 河南省| 大城县| 涟源市| 商洛市| 博客|