1.查詢所有數據庫
SHOW DATABASES;
2.查詢庫中所有表
寫法1:
① USE [DATABASE_NAME]; ② SHOW TABLES;
寫法2:
SHOW TABLES FROM [DATABASE_NAME]
3. 查詢表結構
寫法1:
① USE [DATABASE_NAME]; ② SHOW CREATE TABLE [TABLE_NAME];
寫法2:
SHOW CREATE TABLE [DATABASE_NAME.TABLE_NAME];
4. 查詢表所有字段
寫法1:
① USE [DATABASE_NAME]; ② SHOW COLUMNS FROM [TABLE_NAME];
寫法2:
SHOW COLUMNS FROM [DATABASE_NAME.TABLE_NAME];
寫法3:
① USE [DATABASE_NAME]; ② SHOW FIELDS FROM [TABLE_NAME];
寫法4:
SHOW FIELDS FROM [DATABASE_NAME.TABLE_NAME];
擴展:MySQL安裝完成后,一般會有mysql庫、information_schema庫、test庫等,而infomation_schema庫中有一個表為COLUMNS 的表,這個表記錄了所有數據庫所有表的字段信息,因此可以通過這個表查詢某個表的字段信息,但這樣查的話會查出所有同名的表
寫法5:
SELECT COLUMN_NAME, COLUMN_TYPE from information_schema.COLUMNS WHERE TABLE_NAME = '[TABLE_NAME]';
因此還可以約束所在庫,例如
寫法6:
SELECT COLUMN_NAME, COLUMN_TYPE from information_schema.COLUMNS WHERE TABLE_SCHEMA = '[DATABASE_NAME]' AND TABLE_NAME = '[TABLE_NAME]';
5. 查詢表所有字段及詳細信息
寫法1:
① USE [DATABASE_NAME]; ② SHOW FULL COLUMNS FROM [TABLE_NAME];
寫法2:
SHOW FULL COLUMNS FROM [DATABASE_NAME.TABLE_NAME];
寫法3:
① USE [DATABASE_NAME]; ② SHOW FULL FIELDS FROM [TABLE_NAME];
寫法4:
SHOW FULL FIELDS FROM [DATABASE_NAME.TABLE_NAME];
6. 查詢表中所有索引
寫法1:
① USE [DATABASE_NAME]; ② SHOW INDEX FROM [TABLE_NAME];
寫法2:
SHOW INDEX FROM [DATABASE_NAME.TABLE_NAME];
7. 查詢MySQL系統環境變量
SHOW VARIABLES;
直接使用此語句查詢結果非常多!
用此命令查詢當前MySQL 默認編碼集:進入MySQL后直接輸入命令
SHOW VARIABLES LIKE 'CHARACTER_SET_DATABASE';
用此命令查詢某個庫的編碼集:
① USE [DATABASE]; ② SHOW VARIABLES LIKE 'CHARACTER_SET_DATABASE';
8. 查看當前連接數,root賬號可以看到所有連接,普通賬號只能看到自己的連接
SHOW PROCESSLIST;
9. 查詢用戶權限
SHOW GRANTS FOR [USER];
10.刪除默認值,反引號(`)可加可不加
ALTER TABLE myemployees.jobs ALTER `job_id` DROP DEFAULT;
11.設置默認值、如存在則覆蓋默認值
ALTER TABLE myemployees.jobs ALTER `job_id` SET DEFAULT 0;
12.修改字段類型
ALTER TABLE myemployees.jobs MODIFY `job_id` INT(2);
ALTER TABLE myemployees.jobs CHANGE `job_id` `job_id` INT(2);
13.修改字段名字
ALTER TABLE myemployees.jobs CHANGE `job_id` `job_id_new` INT(2);
14.查看數據存放目錄
show variables like '%datadir%';
15.查看當前數據庫使用線程相關信息
show status like 'Threads%';
Thread_cached:The number of threads in the thread cache.
線程緩存中的線程數,代表mysql管理的線程池中還有多少可以被復用的資源
Thread_connected:The number of currently open connections.
當前打開的連接數,mysql當前連接數,等於show processlist
Thread_created:The number of threads created to handle connections.
為處理連接而創建的線程數,代表新創建的thread,如果thread_created增大迅速,需要適當調高thread_cache_size
Thread_running:The number of threads that are not sleeping.
未睡眠的線程數,即此時真正運行的線程數,如果是等於1的話,一般就是調用show status命令本身占用的線程
16.修改索引名稱
ALTER TABLE table_name RENAME INDEX old_index_name TO new_index_name;
17.修改表的編碼
ALTER TABLE `jobs` CONVERT TO CHARACTER SET utf8mb4;