##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'; #设置日志存储文件
#其它同理