記一些MySQL比較常用的SQL語句
阿新 • • 發佈:2018-12-26
記一些MySQL比較常用的SQL語句
在這裡記錄一些平時經常使用的一些SQL,方便以後直接拿來使用。大家也可以在評論裡補充,然後我再加進來。
自增id的重置
下面的表名
填需要重置的表
-
使用truncate:
truncate 表名;
- 說明:使用
truncate
會刪除表的資料釋放空間,並且重置字自增id,但不會刪除表的定義。 - 用處:需要清空表的時候才能使用。
- 說明:使用
-
使用修改表的方法:
alter table 表名 auto_increment = 1
- 說明:此方法和上面的二方法類似。也不會清空資料,有可能會出現重複key的可能,所以此方法也只適用於清空表之後重置自增id或者大量刪除後修改自增id。
使外來鍵暫時失效、有效
-
暫時失效
SET FOREIGN_KEY_CHECKS = 0;
-
外來鍵有效
SET FOREIGN_KEY_CHECKS = 1;
設定步長
- 注意:全域性,整個系統.
-- 設定步長為5 SET @@auto_increment_increment = 5;
資料庫匯出為資料字典
- 在工具裡面執行下面的SQL,我使用的是
sqlyog
,指定要匯出的資料庫即可, 這裡test為資料庫,然後再用sqlyog
工具匯出為Excel表格即可。-- 把MySQL資料庫匯出為資料字典 USE
解決MySQL不區分大小寫
-
MySQL預設的字元檢索策略:
utf8_general_ci
,表示不區分大小寫;utf8_general_cs
表示區分大小寫,utf8_bin
表示二進位制比較,同樣也區分大小寫。-
建庫、建表時區分
建立表時,直接設定表的
collate
屬性為utf8_general_cs
或者utf8_bin
,像下面這樣:CREATE TABLE 表名( id INT PRIMARY KEY, name VARCHAR(32) NOT NULL ) ENGINE = INNODB COLLATE = utf8_bin;
如果已經建立表,則直接修改欄位的
Collation
屬性為utf8_general_cs
或者utf8_bin
,像下面這樣:ALTER TABLE 表名 MODIFY COLUMN 列名 VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
-
查詢時區分
直接修改sql語句,在要查詢的欄位前面加上
binary
關鍵字即可在每一個條件前加上binary關鍵字, 下面的
username
和password
均區分大小寫。select * from user where binary username = 'admin' and binary password = 'admin';
將引數以
binary('')
包圍select * from user where username like binary('admin') and password like binary('admin');
注意:如果你的專案中使用的是hibernate框架的話,使用
from User where binary username = ? and binary password = ?
會報錯, 使用from User where username like binary(?) and password like binary(?;
才不會報錯,hibernate使用的是hql,和原生sql有點區別。
-