mysql内置的命令:
1、连接数据库
-u
-h
-p
-P
-S
-e:免交互执行sql语句
mysql -uxxdog -p123 -e “show databases”;
<:恢复数据
mysql -uxxdog -p123 < /tmp/aaa.sql
2、内置命令
help
\G
source 恢复备份
SQL基础应用:
1、SQL介绍
结构化的查询语言
关系型数据库通用的命令
遵循SQL92标准(SQL_MODE)
2、SQL常用种类
DDL(数据定义语言)
DCL(数据控制语言)
DML(数据操作语言)
DQL(数据查询语言)
3、SQL引入-数据库的逻辑结构
库:
库名
库属性:字符集、排序规则
表:
表名
表属性:存储引擎类型、字符集、排序规则
列名
列属性:数据类型、约束、其他属性
数据行
4、属性
字符集:
查看支持的编码 show charset;
collation:
查看排序规则 show collation;
对于英文字符串的,大小写敏感
utf8mb4_general_ci 大小写不敏感
utf8mb4_bin 大小写敏感(存拼音、日文)
数据类型:
数字
整数
浮点数
字符串
char:定长,未占满用空格填充,最多存255个字符
varchar:变长,单独分配空间存储字符串长度,<=255一个字节,>255两个字节
enum:枚举
时间
datetime
timestamp
二进制
5、SQL的应用
DDL语句:
库
创建:
create database test charset utf8mb4;
show create database test;
删除:
drop database test;
修改数据库字符集:(从小往大改)
alter database test charset utf8mb4;
建库规范:
库名使用小写字符,不以数字开头,不能是数据库内部的关键字
必须设置字符集
表
创建
表名、列名、列属性、表属性
show create table testable;
–列属性
PRIMARY KEY:主键约束,一个表只能有一个,非空且唯一
UNIQUE KEY:唯一
AUTO_INCREMENT:自增长的列
NOT NULL:非空约束
DEFAULT:和NOT NULL一起用
UNSIGNED:无符号
COMMENT:注释
CREATE TABLE zabbix (
id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT ‘学号’,
name VARCHAR(255) NOT NULL DEFAULT ‘’ COMMENT ‘姓名’,
age TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT ‘年龄’,
gender ENUM(‘male’, ‘female’, ‘unknown’) NOT NULL DEFAULT ‘unknown’ COMMENT ‘性别’,
intime DATETIME NOT NULL DEFAULT NOW() COMMENT ‘入学时间’,
PRIMARY KEY(id)
) ENGINE INNODB CHARSET utf8mb4;
建表规范:
表名使用小写字符,不以数字开头
选择合适的数据类型和长度
每个列设置NOT NULL + DEFAULT
注释
表必须设置存储引擎和字符集
主键列尽量是无关数字列,最好是自增长
删除:
drop table testable;
修改表:
alter table testtable add wechar varchar(64) not null unique comment ‘微信号’ after name;
DCL:
grant
revoke
DML:
insert
update
delete
锁表问题???