整理部分容易忘記,且比較經常使用的語法mysql
一、關於NULL
,這裏之因此先說NULL,由於在開發中遇到很多坑。下面羅列幾個須要注意的點,若是還有其餘坑,後面遇到會繼續補齊
(1)=
及!=
不能用於NULL的篩選。舉個例子,假若有一個sql查詢根據A列進行條件查詢,A列含有NULL值,那麼使用=
及!=
這兩種邏輯判斷不能篩選出A字段爲NULL的行。
如圖:圖片描述
上圖中,第4行記錄的user_sex字段爲NULL,假設使用查詢語句select user_id from user_info where user_sex != -1;
,是不會篩選出第4行記錄,使用=
同理。結果如圖:
圖片描述
(2)使用NULL
及NOT NULL
的篩選,使用is
web
二、left join on
左鏈接
(1)LEFT JOIN 關鍵字會從左表 (table_name1) 那裏返回全部的行。在右表 (table_name2) 中沒有匹配的行,則右表的全部字段顯示爲NULL。
(2)left join on where
:在左鏈接的基礎上,進行where條件篩選,若是篩選條件的字段的值含有NULL
,將不會被篩選出來。若是想所有篩選出來,可使用增長條件or A is null
,注意,這裏使用or進行條件的鏈接。
(3)right join on
同理,所以不作累述sql
三、inner join on
內鏈接、等值鏈接
(1)只返回兩個表中聯結字段相等的行。也就是說,好比兩張表中都有知足鏈接條件的值,纔可以被篩選出來,若是其中某一行在另一張表找不到不匹配的行,那麼這一行就不會顯示出來。數據庫
四、on duplicate key update
:
(1)解釋:session
查看 UNIQUE索引或PRIMARY KEY 對應的行是否存在,存在則更新(執行on duplicate key update後面的語句),不存在則插入新行。.net
(2)實例:code
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
// 這裏a是主鍵,查看a=1的行是否存在,存在則更新,不然插入對象
五、desc
倒序、asc
正序(默認)blog
六、limit m,n
:
(1)解釋:從m+1開始,取n條記錄索引
(2)使用場景:分頁
七、where、group by、having
執行次序:
(1)where是對FROM指定的數據對象(基本表或者視圖)進行過濾,選擇知足條件的元組。若是後面接着group,則對where篩選出來的數據進行分組,having則是對分組之後的分組進行過濾。
八、存儲過程:
(1)聲明變量、循環:
DELIMITER ;; CREATE PROCEDURE `students_count3`() BEGIN declare num int; set num = 1; while num <= 1000000 do select count(1) from user_info; SET num = num + 1; end while; END;; DELIMITER ; call students_count3();
九、查看運行時間:
(1)select @@profiling;
:查看是否開啓
(2)set profiling=1;
: 開啓
(3)show profiles;
: 查看以前sql語句運行的時間
十、索引:
(1)添加普通索引: alter table table_name add index index_name(column)
(2)添加惟一索引:alter table table_name add unique index_name(column)
十一、增長字段:alter table table_name add field_name field_type;
十二、刪除字段:alter table table_name drop column field_name;
1三、更改值:update user_info set user_sex = '-1' where user_id = 1;
1四、修改PG字段類型:
`ALTER TABLE device_data alter column wechat_register_status type varchar(4);`
1五、修改字段名稱ALTER TABLE distributors RENAME COLUMN address TO city;
1六、修改默認值
https://blog.csdn.net/dynadot...
參考:https://www.jianshu.com/p/4af...
一、鏈接遠程mysql
mysql -h 127.0.0.1 -P 3306 -u root -p school
-p後面是數據庫名字
二、查看當前會話隔離級別
select @@tx_isolation;
三、查看系統當前隔離級別
select @@global.tx_isolation;
四、設置當前會話隔離級別
set session transaction isolatin level repeatable read;
五、設置系統當前隔離級別set global transaction isolation level repeatable read;