子查询:select语句嵌套select语句被称为子查询
limit使用
作用:(只在MySQL中起作用)获取一表的前几行或者中间几行的数据
用法:limit起始下标m,长度n
m:记录开始的index,默认从0开始,表示第一条记录
n:指从m+1开始读取n条
创建表的语法:
create table 表名(
字段名称 字段类型 字段长度 字段约束,
字段名称 字段类型 字段长度 字段约束
);
复制表语句:
create table 表名 as 查询语句
查看建表语句:
show create table 表名;
删除表
drop table 表名;(不建议使用)
drop table if exists 表名;(推荐使用)
MySQL常用数据类型
数据类型 | 占用字节数 | 描述 |
char | char(n) | 定长字符串,存储大小固定 使用char(2)来表示类型或状态 |
varchar | varchar(n) | 变长字符串,存储空间等于实际数据空间。 只包含英文字符的字符串 |
int | 4个字节 | 表示整型 比如自增ID和表示数量 |
bigint | 8个字节 | 表示整型,比如自增ID(数量比较大的情况下) |
float | float | 数值型 |
double | double | 数值型 |
BLOB | Binary Large Object (二进制大对象) | |
date | 8个字节 | 表示日期和时间 |
CLOB | Character Large Object (字符大对象) |
char与varcahr对比
- 都是字符串
- VARCHAR比较智能 ,可以根据实际的长度分配空间,比较节省空间; 但在分配的时候需要相关判断,效率低。
- CHAR不需要动态分配空间,所以执行效率高,但可能会导致空间浪费
- 若字段中的数据不具备伸缩性,建议采用CHAR类型存储
- 若字段中的数据具备很强的伸缩性,建议采用VARCHAR类型存储。
DML数据操作语言:insert update delete
insert 语法:
insert into 表名(字段名,字段名)values (字段值,字段值);
update语法:
update 表名 set 字段名称=字段值,字段名称=字段值 where 限制条件;
delete语法:
delete from 表名 ----删除表中所有的数据
delete from 表名 where 限制条件
修改表的结构
---添加新的字段
alter table 表名 add 字段名称 字段类型 字段长度 字段约束;
---修改字段类型
alter table 表名 modify 要修改的字段名 字段长度...
--删除字段
alter table 表名 drop 字段名
---修改字段名
alter table 表名 change 原字段名 新字段名 字段类型。。。
创建表加入约束
非空约束(not null)
唯一性约束(unique)
- 列级约束
- 表级约束(联合唯一性约束)