1、数据约束
数据约束:约束是指数据在数据类型限定的基础上额外增加的要求.
常见的约束如下:
主键 primary key: 物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.
非空 not null: 此字段不允许填写空值.
惟一 unique: 此字段的值不允许重复.
默认 default: 当不填写字段对应的值会使用默认值,如果填写时以填写为准.
外键 foreign key: 对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常.添加外键约束: alter table 从表 add foreign key(外键字段) references 主表(主键字段)。

2、常用的数据类型:
整数:int,bit
小数:decimal
字符串:varchar,char
日期时间: date, time, datetime
枚举类型:(enum)

3、数据库相关
查看所有数据库:show databases;

创建数据库:create database 数据库名 charset=utf8;

使用数据库:use 数据库名;

查看当前使用的数据库:select database();
删除数据库-慎重:drop database 数据库名;

查看当前数据库中所有表:show tables。

4、表相关
创建表:create table 表名

修改表-添加字段:alter table 表名 add 列名 类型 约束;

修改表-修改字段类型:alter table 表名 modify 列名 类型 约束;

修改表-修改字段名和字段类型:alter table 表名 change 原名 新名 类型及约束;

修改表-删除字段:alter table 表名 drop 列名;

查看创表SQL语句:show create table 表名;

查看创库SQL语句:show create database 数据库名;

删除表:drop table 表名。

5、添加数据
全列插入:insert into 表名 values (…)

部分列插入:insert into 表名 (列1,…) values(值1,…)

全列多行插入:insert into 表名 values(…),(…)…;

部分列多行插入:insert into 表名(列1,…) values(值1,…),(值1,…)…;

修改数据:update 表名 set 列1=值1,列2=值2,… where 条件;

删除数据:delete from 表名 where 条件。

6、查询

(1)查询数据
查询所有列 select * from 表名;
查询指定列 select 列1,列2,… from 表名;

(2)连接查询

内连接查询
查询两个表中符合条件的共有记录
select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2;

左连接查询
以左表为主条件查询右表数据,根据条件查询如果数据不存在使用null值填充
select 字段,字段n… from 表1 left join 表2 on 表1.字段1 = 表2.字段2;

右连接查询
以右表为主条件查询左表数据,如果根据条件查询左表数据不存在使用null值填充
select 字段 from 表1 right join 表2 on 表1.字段1 = 表2.字段2。