日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 事务 数量_MySQL 数据查询语言(DQL) 事务控制语言(TCL)详解

發(fā)布時(shí)間:2025/3/15 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 事务 数量_MySQL 数据查询语言(DQL) 事务控制语言(TCL)详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、 數(shù)據(jù)查詢語言(DQL)(重中之重)

完整語法格式:

select 表達(dá)式1|字段,....

[from 表名 where 條件]

[group by 列名]

[having 條件]

[order by 列名 [asc|desc]]

[limit 位置,數(shù)量]

<1> 普通查詢

select 查詢表達(dá)式; // 最簡單的sql語句,是一個(gè)函數(shù)

select database();

select version();

select now();

<2> 條件查詢

where 條件表達(dá)式, 支持運(yùn)算符和函數(shù)

MySQL支持的運(yùn)算符:

=、 !=、 >、 >=、

and、 or、 not

is null、 is not null

between...and... (區(qū)間查詢,多少到多少之間)

in(set);

like 通配符和占位符: % _ (模糊查詢)

%: 表示0個(gè)或者多個(gè)字符

_: 表示占位一個(gè)

-- 查詢所有的老師信息

select * from teacher;

-- 查詢id 大于2的老師信息

select * from teacher where id>2;

-- 查詢姓名為空的老師信息 在數(shù)據(jù)庫中null永遠(yuǎn)都不等于null,那么怎么去判斷null值?通過 is null / is not null

-- select * from teacher where name=null; # 錯(cuò)誤

select * from teacher where name is not null;

-- 查詢id為1 并且 姓名是 "xiaosi"的老師信息

select * from teacher where id=1 and name='xiaosi';

-- 查詢id為1 并且 姓名是 "xiaosi"的老師信息

select * from teacher where id=1 or name='xiaosi';

-- 查詢薪水在2000到10000之間的老師信息

select * from teacher where sal >=2000 and sal <=10000;

select * from teacher where sal between 2000 and 10000; # 這種方式等同于上面

-- 查詢姓名中有 ‘塵’ 字的老師信息

select * from teacher where name like '%塵%';

-- 查詢姓名是三個(gè)字的

select * from teacher where name like '___';

-- 查詢姓 '小' 的老師信息

select * from teacher where name like '小%';

-- 查詢名字中含有下劃線的老師信息 '\' 轉(zhuǎn)義

-- select * from teacher where name like '%_%'; # 錯(cuò)誤

select * from teacher where name like '%\_%';

<3> 分組查詢

語法格式:

[group by 列名] [haveing 條件]

一般情況分組查詢結(jié)合聚合函數(shù)一起使用

max()

min()

sum()

avg()

count()

-- 查詢每個(gè)部門的平居薪資

# select * from teacher GROUP BY dname

# 記住:分組的正確使用方式,group by 后面沒有出現(xiàn)的列名不能出現(xiàn)在select 和from 的中間,

# 雖然不報(bào)錯(cuò),但是不是分組的正確使用方式

# 聚合函數(shù)中出現(xiàn)的列名group by后面沒有無所謂

select dname from teacher GROUP BY dname;

select dname, avg(sal) from teacher GROUP BY dname;

<4> 排序查詢

語法格式:

order by 列名 asc|desc 默認(rèn)升序(asc)

-- 查詢老師信息,根據(jù)薪資進(jìn)行排序,要求從大到小進(jìn)行排序

select * from teacher order by sal desc; # 根據(jù)sal進(jìn)行降序排序

select * from teacher order by sal asc; # 根據(jù)sal進(jìn)行升序排序

select * from teacher order by sal; # 根據(jù)sal進(jìn)行升序排序, 利用默認(rèn)排序

<5> 限制結(jié)果集數(shù)量的查詢(分頁)

編號????商品名稱????商品價(jià)格????操作 1?????????玩具娃娃????100.0?????????刪除 修改 2?????????玩具汽車????200.0?????????刪除 修改 3?????????玩具飛機(jī)????300.0?????????刪除 修改 ................................ 首頁????上一頁????1 2 3 4 5????下一頁???尾頁

語法格式

limit n條數(shù);-------從第一條開始取n條數(shù)據(jù)(了解)

limit start開始下標(biāo)索引,count條數(shù); ---- 從起始位置start取count條數(shù)據(jù)(起始位置是從0開始的) (推薦使用)

分頁(每頁顯示兩條數(shù)據(jù))

第一頁:select * from teacher limit 0,2;

第二頁:select * from teacher limit 2,2;

第三頁:select * from teacher limit 4,2;

第四頁:select * from teacher limit 6,2;

第五頁:select * from teacher limit 8,2;

分頁公式:

開始下標(biāo)索引(起始位置) = (當(dāng)前頁-1)*每頁顯示條數(shù);

-- 每頁顯示3條

-- 顯示第二頁

select * from teacher limit 3,3;

<6> 擴(kuò)展

別名

select * from teacher; # 查詢表中所有字段記錄

select name, sal, dname from teacher; # 查詢表中指定字段記錄

-- 給查詢的字段設(shè)置別名 同時(shí)也可以給表設(shè)置別名 通過as 關(guān)鍵字實(shí)現(xiàn)別名

select name as '姓名', sal '薪資', dname '部門名稱' from teacher

二、 事務(wù)控制語言(TCL)

MySQL事務(wù)默認(rèn)自動(dòng)開啟的

在MySQL數(shù)據(jù)庫中只有使用了Innodb數(shù)據(jù)庫引擎的數(shù)據(jù)表或庫才會(huì)支持事務(wù)

通過事務(wù)來管理 insert、update、delete語句

事務(wù)必須滿足4個(gè)條件(ACID):

原子性(不可分割性): 要么全部完成,要么全部不完成,不會(huì)結(jié)束在中間的某個(gè)環(huán)節(jié)。在執(zhí)行的過程中一旦出現(xiàn)錯(cuò)誤/異常,會(huì)被回滾(Rollback)到事務(wù)開始前的狀態(tài),就像這個(gè)事務(wù)從來沒有執(zhí)行過一樣。

一致性: 事務(wù)處理前后數(shù)據(jù)保持一致

隔離性: 事務(wù)處理必須是獨(dú)立的彼此隔離

持久性: 事務(wù)對數(shù)據(jù)的修改永久保存

<1> 為什么使用事務(wù)

銀行轉(zhuǎn)賬

事務(wù)廣泛使用:訂單系統(tǒng),銀行系統(tǒng)等....

<2> MySQL事務(wù)控制

commit(提交)

rollback(回滾)

savepoint(事務(wù)節(jié)點(diǎn))

<3> 實(shí)戰(zhàn)操作

create table student(

id int,

name varchar(32),

age int,

money double

);

insert into student values(1, '老王', 18, 60000);

select * from student;

rollback;

手動(dòng)關(guān)閉事務(wù)提交語法:

set autocommit = false|true; // 設(shè)置事務(wù)的提交方式

rollback; // 事務(wù)回滾

commit; // 事務(wù)提交

savepoint 節(jié)點(diǎn)名稱; // 設(shè)置回滾的節(jié)點(diǎn)

rollback to 節(jié)點(diǎn)名稱; // 回滾到具體的某個(gè)節(jié)點(diǎn)

set autocommit = false; # 設(shè)置事務(wù)手動(dòng)提交

select * from student;

delete from student where id=1; # 刪除id為1 的信息

rollback; # 事務(wù)回滾

commit; # 事務(wù)提交

update student set money = money-30000 where id=1;

savepoint t1; # 設(shè)置事務(wù)節(jié)點(diǎn)

update student set money = money-20000 where id=1;

rollback to t1; # 回滾到t1節(jié)點(diǎn)位置

commit; # 事務(wù)提交

總結(jié)

以上是生活随笔為你收集整理的mysql 事务 数量_MySQL 数据查询语言(DQL) 事务控制语言(TCL)详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。