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

MySQL表的CURD使用

 更新時(shí)間:2025年02月06日 14:08:05   作者:阿赭ochre  
文章主要介紹了MySQL數(shù)據(jù)庫操作的基本方法,包括創(chuàng)建表、插入數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)等,涵蓋了表結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)插入、查詢條件、排序、分頁、更新和刪除操作,以及聚合函數(shù)和GROUP BY子句的使用

一、Create

創(chuàng)建一張學(xué)生表

1.1單行數(shù)據(jù)+全列插入

1.2多行數(shù)據(jù)+指定列插入

1.3插入否則更新主鍵沖突

唯一鍵沖突

可疑選擇性進(jìn)行同步更新操作:使用ON DUPLICATE KEY UPDATE

-- 0 row affected: 表中有沖突數(shù)據(jù),但沖突數(shù)據(jù)的值和 update 的值相等

-- 1 row affected: 表中沒有沖突數(shù)據(jù),數(shù)據(jù)被 插入

-- 2 row affected: 表中有沖突數(shù)據(jù),并且數(shù)據(jù)已經(jīng)被更新使用MySQL庫函數(shù)來獲取受到影響的數(shù)據(jù)行數(shù):SELECT ROW_COUNT();

1.4替換

- - 主鍵 或者 唯一鍵 沒有沖突,則直接插入;

-- 主鍵 或者 唯一鍵 如果沖突,則刪除后再插入

二、Retrieve

創(chuàng)建表結(jié)構(gòu)

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

2.1 select列

2.1.1全列查詢

-- 通常情況下不建議使用 * 進(jìn)行全列查詢

-- 1. 查詢的列越多,意味著需要傳輸?shù)臄?shù)據(jù)量越大;

-- 2. 可能會(huì)影響到索引的使用。

2.1.2指定列查詢

指定列的順序不需要按定義表的順序來

2.1.3查詢字段為表達(dá)式

表達(dá)式不包含字段

表達(dá)式包含一個(gè)字段

表達(dá)式包含多個(gè)字段

2.1.4為查詢結(jié)果指定別名

SELECT column [AS] alias_name [...] FROM table_name;

2.1.5結(jié)果去重distinct關(guān)鍵字

2.2where條件

比較運(yùn)算符

運(yùn)算符說明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于, NULL 不安全,例如 NULL = NULL 的結(jié)果是 NULL
<=>等于, NULL 安全,例如 NULL <=> NULL 的結(jié)果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND a1范圍匹配, [a0, a1] ,如果 a0 <= value <= a1 ,返回 TRUE(1)
IN (option, ...)如果是 option 中的任意一個(gè),返回 TRUE(1)
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配, % 表示任意多個(gè)(包括 0 個(gè))任意字符; _ 表示任意一個(gè)字符

邏輯運(yùn)算符

運(yùn)算符說明
AND多個(gè)條件必須都為 TRUE(1) ,結(jié)果才是 TRUE(1)
OR任意一個(gè)條件為 TRUE(1), 結(jié)果為 TRUE(1)
NOT條件為 TRUE(1) ,結(jié)果為 FALSE(0

2.3結(jié)果排序

  • -- ASC 為升序(從小到大)
  • -- DESC 為降序(從大到?。?/li>
  • -- 默認(rèn)為 ASC
SELECT ... FROM table_name [WHERE ...] ORDER BY column [ASC|DESC], [...];

沒有order by返回的結(jié)果是未定義的

2.4篩選分頁結(jié)果

 -- 起始下標(biāo)為 0 -- 從 s 開始,篩選 n 條結(jié)果

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n

-- 從 0 開始,篩選 n 條結(jié)果

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;

-- 從 s 開始,篩選 n 條結(jié)果,比第二種用法更明確,建議使用

SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

按 id 進(jìn)行分頁,每頁 3 條記錄,分別顯示 第 1 、 2 、 3 頁

三、Update

UPDATE table_name SET column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]

對(duì)查詢到的結(jié)果進(jìn)行列值更新

更新為具體指

一次更新多個(gè)列

更新值為原值基礎(chǔ)上變更

沒有 WHERE 子句,則更新全表

四、Delete

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

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

刪除“孫悟空”的數(shù)據(jù)

刪除整張表的數(shù)據(jù)

在刪除的基礎(chǔ)上再插入一條數(shù)據(jù),可見刪除數(shù)據(jù)并不會(huì)重置auto_increment項(xiàng)

4.2截?cái)啾?/h3>
TRUNCATE [TABLE] table_name

只對(duì)整張表進(jìn)行操作,不能像delete一樣對(duì)部分?jǐn)?shù)據(jù)操作

實(shí)際上不對(duì)數(shù)據(jù)進(jìn)行操作,影響行數(shù)是0,所以比delete快,但是truncate在刪除數(shù)據(jù)時(shí),并不經(jīng)過真正的事務(wù),所以無法回滾

會(huì)重置auto_increment項(xiàng) 

五、插入查詢結(jié)果

INSERT INTO table_name [(column [, column ...])] SELECT ... 

案例:刪除表中的的重復(fù)復(fù)記錄,重復(fù)的數(shù)據(jù)只能有一份

創(chuàng)建一張空表 no_duplicate_table ,結(jié)構(gòu)和 duplicate_table 一樣

將 duplicate_table的去重?cái)?shù)據(jù)插入到no_duplicate_table

通過重命名表實(shí)現(xiàn)原子的去重操作 

六、聚合函數(shù)

函數(shù)說明
COUNT([DISTINCT] expr)返回查詢到的數(shù)據(jù)的數(shù)量
SUM([DISTINCT] expr)返回查詢到的數(shù)字總和,不是數(shù)字沒有意義
AVG([DISTINCT] expr)返回查詢到的數(shù)字平均值,不是數(shù)字沒有意義
MAX([DISTINCT] expr)返回查詢到的數(shù)字最大值,不是數(shù)字沒有意義
MIN([DISTINCT] expr)返回查詢到的數(shù)字最小值,不是數(shù)字沒有意義

使用 * 做統(tǒng)計(jì),不受 NULL 影響

使用表達(dá)式做統(tǒng)計(jì)

NULL 不會(huì)計(jì)入結(jié)果

COUNT(math)統(tǒng)計(jì)的是全部的數(shù)學(xué)成績

統(tǒng)計(jì)去重的數(shù)學(xué)成績個(gè)數(shù)

統(tǒng)計(jì)數(shù)學(xué)成績總分

配合where條件使用

統(tǒng)計(jì)平均分

返回英語最高分

返回>70以上數(shù)學(xué)的最低分

七、group by子句的使用

在 select 中使用 group by 子句可以對(duì)指定列進(jìn)行分組查詢

案例

  • 顯示每個(gè)部門的平均工資和最高工資: select deptno,avg(sal),max(sal) from EMP group by deptno;
  • 顯示每個(gè)部門的每種崗位的最低工資和平均工資:select avg(sal),min(sal),job, deptno from EMP group by deptno, job;
  • 顯示平均工資低于2000的部門和它的平均工資

統(tǒng)計(jì)各個(gè)部門的平均工資:

select avg(sal) from EMP group by deptno

having搭配group by使用,對(duì)group by的查詢結(jié)果進(jìn)行篩選:

select avg(sal) as myavg from EMP group by deptno having myavg<2000;

--having 經(jīng)常和 group by 搭配使用,作用是對(duì)分組進(jìn)行篩選,作用有些像 where

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql中FIND_IN_SET()和IN區(qū)別簡析

    Mysql中FIND_IN_SET()和IN區(qū)別簡析

    這篇文章主要介紹了Mysql中FIND_IN_SET()和IN區(qū)別簡析,設(shè)計(jì)實(shí)例代碼,具有一定參考價(jià)值。需要的朋友可以了解。
    2017-10-10
  • Mysq詳細(xì)講解如何解決庫存并發(fā)問題

    Mysq詳細(xì)講解如何解決庫存并發(fā)問題

    這篇文章主要為大家詳細(xì)介紹了如何使用Mysq解決庫存并發(fā)問題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MySQL查詢本周、上周、本月、上個(gè)月份數(shù)據(jù)的sql代碼

    MySQL查詢本周、上周、本月、上個(gè)月份數(shù)據(jù)的sql代碼

    MySQL查詢的方式很多,下面為您介紹的MySQL查詢實(shí)現(xiàn)的是查詢本周、上周、本月、上個(gè)月份的數(shù)據(jù),如果您對(duì)MySQL查詢方面感興趣的話,不妨一看
    2012-11-11
  • mysql當(dāng)中怎么執(zhí)行sql腳本文件

    mysql當(dāng)中怎么執(zhí)行sql腳本文件

    這篇文章主要給大家介紹了關(guān)于mysql當(dāng)中怎么執(zhí)行sql腳本文件的相關(guān)資料,需要的朋友可以參考下
    2023-08-08
  • MySQL中的集合運(yùn)算符詳解

    MySQL中的集合運(yùn)算符詳解

    本文主要介紹了MySQL中的集合運(yùn)算符,包括UNION、INTERSECT、EXCEPT等,這些運(yùn)算符用于結(jié)合兩個(gè)或多個(gè)SELECT語句的結(jié)果集,并進(jìn)行去重、合并或差集操作
    2025-02-02
  • 清空mysql 查詢緩存的可行方法

    清空mysql 查詢緩存的可行方法

    mysql對(duì)同一條sql進(jìn)行了緩存,在第二次運(yùn)行時(shí), 瞬間就完成了,若要清除緩存,可通過下面的方法來實(shí)現(xiàn)
    2014-07-07
  • MySQL如何使用union all獲得并集排序

    MySQL如何使用union all獲得并集排序

    這篇文章主要介紹了MySQL如何使用union all獲得并集排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 最全mysql數(shù)據(jù)類型梳理匯總

    最全mysql數(shù)據(jù)類型梳理匯總

    這篇文章主要介紹了最全mysql數(shù)據(jù)類型梳理匯總,??mysql??支持多種數(shù)據(jù)類型,主要有數(shù)值類型、日期與時(shí)間類型以及字符串類型,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-07-07
  • clickhouse分布式表的操作示例詳解

    clickhouse分布式表的操作示例詳解

    這篇文章主要為大家介紹了clickhouse分布式表的操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • MySQL 8.0 驅(qū)動(dòng)與阿里druid版本兼容問題解決

    MySQL 8.0 驅(qū)動(dòng)與阿里druid版本兼容問題解決

    MySQL 8.0 驅(qū)動(dòng)與阿里druid版本不兼容會(huì)導(dǎo)致有報(bào)錯(cuò)問題,本文就詳細(xì)的介紹一下解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-07-07

最新評(píng)論