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