數據庫操作命令


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 表示不區分大小寫。也就是說,排序時 pP 之間沒有區別。
  • 如果需要重音靈敏度和區分大小寫,則可以使用 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

PostgreSQL 數據庫備份與還原



Reference


  1. 滾屏,本質上只是讓終端顯示頁向后翻了一頁,如果向上滾動屏幕還可以看到之前的操作信息。 ↩︎ ↩︎

  2. utf8是MySQL中的一種字符集,表示用UTF-8編碼方案,每個字符最多占3個字節。而uft8mb4每個字符最多占4個字節。 ↩︎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM