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

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é)成績(jī)

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

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

配合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)文章

最新評(píng)論

丰台区| 呼玛县| 察隅县| 大化| 虞城县| 黄龙县| 西青区| 筠连县| 平塘县| 安康市| 开阳县| 凤庆县| 遂溪县| 如东县| 巧家县| 嘉义县| 天镇县| 乐都县| 博湖县| 上蔡县| 扬州市| 长治市| 荥经县| 彰化市| 武强县| 灌阳县| 石河子市| 乐昌市| 阜阳市| 万盛区| 本溪市| 青田县| 泸溪县| 郁南县| 黄龙县| 昆明市| 芮城县| 衢州市| 澜沧| 南开区| 泾源县|