DB commands
常用數據庫操作命令
目錄
MySQL
基礎命令
| Key | Command |
|---|---|
| 清屏 | system clear Ctrl + l (滾屏[1]) |
| 登錄 | mysql -u root -p |
| 切換數據庫 | USE dbname |
| 查看數據庫 | SHOW DATABASES |
| 查看表 | SHOW TABLES |
| 查看表結構 | DESC tb_name | SHOW COLUMNS FROM tb_name |
| 退出 | quit | exit | \q |
| 幫助 | ? | help |
配置命令
| Key | Command |
|---|---|
| 查看可用字符集 | SHOW CHARSET |
| 查看默認字符集 | SHOW VARIABLES LIKE 'character_set_%' SHOW VARIABLES LIKE 'collation_%' |
| 設置默認字符集 | SET NAMES 'utf8mb4'[2] |
| 修改數據庫字符集 | ALTER DATABASE db_name DEFAULT CHARACTER SET 'utf8mb4' |
| 修改表字符集 | ALTER TABLE tb_name CONVERT CHARACTER SET 'utf8mb4' |
| 修改字段字符集 | ALTER TABLE tb_name MODIFY field_name field_properties CHARACTER SET 'utf8mb4' |
note:
-
在mysql中查看系統路徑的方法是通過
system+ 系統命令ls -
SET NAMES 'utf8mb4'相當於- SET character_set_client = utf8;
- SET character_set_connection = utf8;
- SET character_set_results = utf8;
- SET collation_connection = utf8
-
MySQL 配置文件中字符集相關變量
# 客戶端請求數據的字符集 character_set_client # 從客戶端接收到數據,然后傳輸的字符集 character_set_connection # 默認數據庫的字符集,無論默認數據庫如何改變,都是這個字符集;如果沒有默認數據庫,那就使用 character_set_server 指定的字符集,這個變量建議由系統自己管理,不要人為定義。 character_set_database # 把操作系統上的文件名轉化成此字符集,即把 character_set_client 轉換 character_set_filesystem, 默認 binary 是不做任何轉換的 character_set_filesystem # 結果集的字符集 mcharacter_set_results # 數據庫服務器的默認字符集 character_set_server # 存儲系統元數據的字符集,總是 utf8,不需要設置 character_set_system -
MySQL 8.0 默認的是
utf8mb4_0900_ai_ci,屬於utf8mb4_unicode_ci中的一種,具體含義如下:uft8mb4表示用 UTF-8 編碼方案,每個字符最多占4個字節。0900指的是 Unicode 校對算法版本。(Unicode 歸類算法是用於比較符合 Unicode 標准要求的兩個 Unicode 字符串的方法)。ai指的是口音不敏感。也就是說,排序時e,è,é,ê和ë之間沒有區別。ci表示不區分大小寫。也就是說,排序時p和P之間沒有區別。
-
如果需要重音靈敏度和區分大小寫,則可以使用
utf8mb4_0900_as_cs代替。
備份與還原
| Key | Command |
|---|---|
| 備份 | mysqldump -u root -p db_name tb_name1 [tb2 tb3...] > db_tables.sql(表備份) mysqldump -u root -p --databases DB1 [DB2 DB3...] > db_backup.sql(數據庫備份) mysqldump -u root -p --all-databases > db_all.sql(備份所有數據庫) |
| 還原 | mysql -u root -p db_name < db_backup.sql |
note:
- 登錄MySQL, 可以執行
source db_backup.sql還原數據庫; --databases-B指定數據庫,可以指定多個庫;(備份單個數據庫時不加改參數, 還原時需要手動創建數據庫)--all-databases-A備份所有數據庫;
PostgreSQL
常用命令
| Key | Command |
|---|---|
| 清屏 | Ctrl + l (滾屏[1:1]) |
| 登錄 | psql -U username [-d db_name] [-h db_host] [-p db_port] |
| 查看數據庫 | \l |
| 查看表 | \dt |
| 切換數據庫 | \c db_name [db_user] |
| 顯示歷史命令 | \s [file] |
| 退出 | \q |
| 幫助 | \? [commands] |
| SQL語法 | \h [sql_name] |
| 修改用戶密碼 | \password [username] |
| 顯示 /修改字符集 | \encoding [utf8] |
查看命令
| Key | Command |
|---|---|
| 查看數據庫 | \l |
| 查看結構 | \d tb_name |
| 查看所有 | \d |
| 查看表 | \dt |
| 查看角色(roles) | \dg | \du |
| 查看模式(schemas) | \dn |
| 查看索引(indexes) | \di |
| 查看序列(sequences) | \ds |
| 查看視圖(views) | \dv |
| 查看類型(types) | \dT |
| 查看訪問權限(access) | \dp | \z |
note:
+= 顯示額外細節(表大小和表描述等)S= 顯示系統對象- 比如:
\dt查看表,\dt+查看當前庫所有表細節,\dt+S查看所有表細節(當前庫和系統庫)
備份與恢復
| Key | Command |
|---|---|
| 備份 | pg_dump -U username db_name > db_backup.sql pg_dump -U username -Fc db_name > db_backup.tar |
| 還原 | psql -U username -d db_name < db_backup.sql |
| 恢復 | pg_restore -U username -d db_name < db_backup.tar |
Reference
