MySQL資料庫學習筆記02(事務控制,資料查詢)
一、事務控制
什麼是事務控制:在運算元據時需要讓有關係的資料進行聯動(一起有效、無效)。
注意:資料定義語句立即有效,不需要事務控制,只有資料操作語句才需要事務控制。
1、commit提交
一個使用者向表中插入一條記錄,其它使用者並不能立即查詢到,只有執行提交命令才確定有效。
注意:MySQL資料庫預設設定了自動提交
檢視是否開啟自動提交:show variables like 'autocommit';
'autocommit', 'OFF' 關閉
'autocommit', 'ON' 開啟
設定當前連線的自動提交:set session autocommit=1|0;
設定所有連線的自動提交:set global autocommit=1|0;
當需要執行原子操作時,需要關閉自動提交,當所有操作完成後才執行commit命令。
2、rollback回滾
當使用資料操作語句對資料進行更改時,如果還沒有commit,那麼就可以使用rollback撤銷,把資料還原成修改前的樣子。
3、savepoint儲存點
預設情況下執行rollback語句,資料會加到最近一次的commit,設定儲存點可以在rollback時返回到指定的位置。
操作1
savepoint sp1;
操作2
savepoint sp2;
操作3
savepoint sp3;
操作4
如果還是直接執行rollback語句,四項操作還是會直接消失,讓rollback與儲存點配合,返回的指定的位置:rollback to savepoint spn;
二、查詢
1、排重查詢
select distinct 欄位 from 表名;
注意:查詢多個欄位時,所有欄位都相同才會被認為是重複的資料。
2、算術運算子
select 字元±*/資料 from 表名;
如果相改變運算子的優先順序可以使用小括號。
3、排序
select 欄位 from 表名 order by 欄位 [desc|asc],欄位 [desc|asc];
降序:desc 升序:asc,預設按照升序顯示。
4、條件查詢
配合關係運算子邏輯運算子:> < >= <= = !=,and(&&) or(||) not(!)
select 欄位 from 表名 where 欄位 關係運算子 資料;
5、特殊條件
select 欄位 from 表名 where 欄位 between A and B;
注意:包括A且包括B,並且A<B
select 欄位 from 表名 where 欄位 in (A,B,C,…);
select 欄位 from 表名 where 欄位 is null;
select 欄位 from 表名 where 欄位 is not null;
注意:在資料庫,空是一種狀態,而不是固定的資料。
6、模糊查詢
select 欄位 from 表名 where 欄位 like ‘%_’;
注意:所有型別都可以進行模糊查詢,它的原理就是把所有資料查詢出來轉換成字串,因此這種查詢方式效率非常低。
% 替換0個或多個字元,相當於命令列中的*
_ 替換一個字元
7、函式
函式就是資料庫已經實現好的一些功能,這些不屬於SQL語句,所以沒有統一,不同的資料庫實現的函式差別很大。
行函式:一行資料就會返回一個結果。
數值相關:
round(資料,[n]) 把資料四捨五入,n表示小數點後的位數。
truncate(資料,[n]) 擷取顯示,n表示小數點後的位數。
floor(資料) 向下取整,直接丟棄小數點後的資料。
ceil(資料) 向下取整,丟棄小數點後的資料+1。
abs(資料) 求絕對值
pow(x,n) 求x的n次方
字串相關:
char_length(str) 計算字串的長度
concat(str1,str2,str3,…) 連線若干個字串
lower(str) 把字串中的所有字母轉換成小寫
upper(str) 把字串中的所有字母轉換成大寫
trim(str) 去除掉字串總部和尾部的空格
locate(s1,str) 返回在str字串中s1首次出的位置,第幾個字元。
left(str,n) 返回字串的前n個字元
right(str,n) 返回字串的後n個字元
mid(str,n,len) 返回字串從n開始的len個字元。
strcmp(str1,str2) 功能與C標準庫的一致
reverse(str) 字串逆序顯示
日期相關:
now() 獲取當前日期和時間
current_date() 獲取當前日期
current_time() 獲取當前時間
date(str) 把字串轉換成日期
adddate(date,n) 在日期date的基礎上加上n天
date_sub(date,n) 日期減掉n天得到一個新日期
datediff(date1,date2) 計算兩個日期之間相隔多少天
dayofweek(date) 把日期轉換成星期幾
date_format(date,fromat) 按指定的格式顯示時間
%a 星期幾
%b 月份縮寫
%d 天數
%y 只顯示年份的後兩位
%Y 顯示4位年份
%r 顯示12小時制時間
%T 顯示24小時制時間
相關文章
- 資料庫學習筆記之查詢表資料庫筆記
- Mysql資料庫之多表查詢、事務、DCLMySql資料庫
- MySQL資料庫學習筆記MySql資料庫筆記
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- MySQL事務控制語句(學習筆記)MySql筆記
- MySQL學習筆記-使用Navicat操作MySQL資料庫MySql筆記資料庫
- 1029學習筆記 資料庫筆記資料庫
- 資料庫學習筆記資料庫筆記
- 資料庫學習筆記:事務的特性和隔離級別資料庫筆記
- 資料庫學習(五)子查詢資料庫
- 資料庫學習(三)基本查詢資料庫
- mysql資料庫多表查詢MySql資料庫
- mysql資料庫容量查詢MySql資料庫
- 資料庫學習筆記 - MySQL基礎知識資料庫筆記MySql
- 資料庫學習(四)連線查詢資料庫
- Hive學習筆記 5 Hive的資料查詢、函式Hive筆記函式
- MySQL學習筆記--資料型別MySql筆記資料型別
- MySQL資料庫初級學習筆記---第一章-資料庫概述MySql資料庫筆記
- 資料庫事務與 MySQL 事務總結資料庫MySql
- spring學習筆記(20)資料庫事務併發與鎖詳解Spring筆記資料庫
- 【資料庫】MySQL查詢優化資料庫MySql優化
- MySQL資料庫本地事務原理MySql資料庫
- Redis學習筆記(七) 資料庫Redis筆記資料庫
- 達夢資料庫學習筆記資料庫筆記
- python學習筆記:資料庫Python筆記資料庫
- 資料庫原理學習筆記——引言資料庫筆記
- 資料庫 - 資料查詢資料庫
- 資料庫學習筆記1(資料管理歷史)資料庫筆記
- 資料庫學習(六)聯合查詢union資料庫
- Mybatis學習01:利用mybatis查詢資料庫MyBatis資料庫
- 重新學習MySQL資料庫6:淺談MySQL的中事務與鎖MySql資料庫
- MySQL學習筆記12:資料型別MySql筆記資料型別
- MYSQL學習筆記26: 多表查詢|子查詢MySql筆記
- 查詢MySQL資料庫,MySQL表的大小MySql資料庫
- MySQL資料庫基礎——多表查詢:子查詢MySql資料庫
- MySQL資料庫6:Go與MySQL事務MySql資料庫Go
- MySQL(一):MySQL資料庫事務與鎖MySql資料庫
- MySQL資料查詢MySql