MySql數(shù)據(jù)庫CRUD(增刪改查)操作全流程
CRUD 是 MySQL 核心操作,涵蓋增刪改查全流程。本文聚焦實戰(zhàn)場景,拆解基礎(chǔ)語法與避坑技巧,助力快速掌握數(shù)據(jù)操作核心,夯實數(shù)據(jù)庫應(yīng)用基礎(chǔ)。
1.insert添加數(shù)據(jù)
語法:insert into 表名[字段1,…] values (,…)[(,…),…]
指定列插入
語法:insert into 表名[指定列] values (,…)[(,…),…]
將舊表的數(shù)據(jù)插入到新表中
語法:insert into 表名[…] select …
注:
- 每次執(zhí)行所有的SQL語句的時候都有網(wǎng)絡(luò)開銷
- 寫入數(shù)據(jù)的時候也會有磁盤IO開銷
- 每次執(zhí)行一條SQL語句的時候都會開啟一個事務(wù),事務(wù)的開啟和關(guān)閉都需要消耗系統(tǒng)資源
2. 修改數(shù)據(jù)庫字符集
語法:alter table 表名 modify 字段名 字段類型 character set utf8mb4 collate utf8mb4_0900_ai_ci;
3. 查詢
- 全列查詢
語法:select * from 表名; – 工作中慎用,一定要添加條件判斷,否則一下幾千萬條數(shù)據(jù)加載出來會很占系統(tǒng)資源
- 指定列查詢
語法:select 列名,列名,… from 表名;
- 別名
用關(guān)鍵字as來寫,但是實際上工作中都用簡寫的方法,不用寫as直接在表名后面寫別名即可。
- 去重查詢(關(guān)鍵字distinct)
語法:select distinct 列名 from 表名;
只有每一列都相同,MySql才認為他是重復數(shù)據(jù)。
- 排序(order by)
語法:在查詢后面直接加 order by [要排序的字段] desc/asc 就行, mysql默認是asc的。
desc:降序
asc:升序
desc在這邊是降序的,但是還能來了查看表結(jié)構(gòu)。
在沒有指定排序的時候,一般是隨機按照某個字段來排序的。
NULL在排序中是最小的,比任何數(shù)都要小,包括負數(shù)

不論任何值和null運算結(jié)果都是null
null始終被判定為false
可以對多個字段進行排序,排序的優(yōu)先級和插入的順序有關(guān)系

條件查詢(where關(guān)鍵字)

可以在表名后面添加條件,判斷是否符合條件的查詢。
但是=判斷不了null,所以就需要用<=> 來判斷是否是等于null了

- beween n1 on n2; – 一個范圍

查詢英語成績在60~70之間的數(shù)據(jù)
- in (…)
只查找在()里面的數(shù)據(jù),只查找英語成績?yōu)?7和98的數(shù)據(jù)

- is null
判斷是否為空
- is not null
判斷是否不為空
- like(模糊匹配)
這里有兩個選項%/_ ,%是指匹配大于等于0個字符的數(shù)據(jù),_是只匹配只有一個字符的數(shù)據(jù)

- 邏輯運算符
and => && or => || not => !
當where條件使用了表達式的時候,那么必須要先把完整的表達式寫到where中,不能用別名。
一條select語句的執(zhí)行順序
eg: select * from exam where name = ‘馬超’ order by english asc limit 0,3;
- 首先肯定是先執(zhí)行from后面的表,先找到需要查詢的是哪張表
- 工具where條件來過濾掉那些不需要的數(shù)據(jù)
- 看用戶需要哪些字段
- 排序規(guī)則
- 要分幾頁,從第幾行開始查詢
- 分頁查詢
語法:limit n or limit s,n or limit n offset s
n:要分幾頁
s:從第幾行開始分
limit和offset都是關(guān)鍵字
4.修改數(shù)據(jù)updata
語法:updata 表名 set 列名=…[,…,…] [where] … [order by …] [limit …];
重點?。?!
修改數(shù)據(jù)的時候一定要添加where,否則將這個字段的所有數(shù)據(jù)全部修改了,是很恐怖的?。?!
5.刪除delete
語法:delete from 表名 [where…] [order by…] [limit…]
總結(jié)
到此這篇關(guān)于MySql數(shù)據(jù)庫CRUD(增刪改查)操作全流程的文章就介紹到這了,更多相關(guān)MySql CRUD操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文弄懂MySQL中redo?log與binlog的區(qū)別
在學習mysql數(shù)據(jù)庫時,不可避免要去接觸到redo log和binlog,好多人對這兩者的概念分不太清,下面這篇文章主要給大家介紹了關(guān)于MySQL中redo?log與binlog區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-02-02
mysql報錯:Deadlock found when trying to get lock; try restarti
這篇文章主要給大家介紹了關(guān)于mysql出現(xiàn)報錯:Deadlock found when trying to get lock; try restarting transaction的解決方法,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-07-07


