##Base
- 創建數據庫 指定編碼
# 查詢所有數據庫
# 關鍵字全部大寫提高效率,但是可以忽略
SHOW DATABASES;
# 全部使用utf8mb4而不使用uft8因爲mysql的utf8有遺留問題,部分字符不能顯示和保存
CREATE DATABASE IF NOT EXISTS `learn` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 切換數據庫
USE `learn`;
# 展示所有表
SHOW tables;
# 刪除表
DROP TABLE IF EXISTS `learn_demo`;
# 創建表
CREATE TABLE IF NOT EXISTS `learn_demo`
(
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id(所有表必須含有的3個字段)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP() COMMENT 'createTime(所有表必須含有的3個字段)',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP() COMMENT 'updateTime(所有表必須含有的3個字段)',
`is_delete` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '設置Boolean也會自動轉爲tinyint(1),pojo中直接使用boolean',
`money` decimal(10, 2) unsigned NOT NULL DEFAULT 0 COMMENT '所有小數類型使用該類型,10表示精度,2表示小數點後位數,java中對應BigDecimal',
`name` varchar(20) NOT NULL DEFAULT 'demoName' COMMENT '默認值不能爲空字符串',
`tinyint` tinyint(4) DEFAULT NULL COMMENT '記錄一下不寫範圍時默認範圍,無符號範圍:0-255,2`8,8bit(比特位)=1byte(字節)=1b',
`smallint` smallint(6) DEFAULT NULL COMMENT '記錄一下不寫範圍時默認範圍,無符號範圍:0-65536,2`16,2b',
`int` int(11) zerofill DEFAULT NULL COMMENT '記錄一下不寫範圍時默認範圍,4b,zerofill自動填充0',
`bigint` bigint(20) DEFAULT NULL COMMENT '記錄一下不寫範圍時默認範圍,8b',
`decimal` decimal(10, 0) DEFAULT NULL COMMENT '記錄一下不寫範圍時默認範圍',
`varchar` varchar(20) DEFAULT NULL COMMENT '記錄一下不寫範圍時默認範圍',
CONSTRAINT pk_demo_id PRIMARY KEY (`id`)
) COMMENT '表名規則:業務名稱_表的作用';
##Other
- 控制檯登陸
mysql -h [address] -P [port] -u [user] -p
[password]
- 查看mysql版本:
select version();
- 查看引擎信息:
show engines;
- 數據庫備份:
mysqldump -h[address] -P[port] -u[user] -p[password] [dbname] > [copyAddress]
示例:
mysqldump -h127.0.0.1 -P3306 -uroot -proot test > /test.sql
###日誌
show variables like '%general_log%'; #日誌
show variables like '%log_error%'; #錯誤日誌
show variables like '%slow_query_log%'; #慢查詢日誌
set global general_log = 'On'; #開啓日誌
set global general_log_file = '/mysql/mysql.log'; #設置日誌存儲文件
#其它同理