1:mysql简介(是什么)?

Oracle公司开源的小型数据库

2:sql语句分类?

DDL:数据定义语言 ————》用来定义数据库对象————》create,drop,alter等
DML:数据操作语言 ————》对数据库表中的数据进行修改————》insert,delete,update等
DQL:数据查询语言 ————》对数据库表中的数据进行查询————》select,where等
DCL:数据控制语言 ————》用来定义数据库的访问级别和安全权限————》grant,revoke

3:mysql的数据类型?

(1). int:整数类型
age int
(2). double:小数类型
score double(5,2)
price double
(3). date:日期,只包含年月日 yyyy-MM-dd
(4). datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
(5). timestamp:时间戳类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
(6). varchar:字符串
name varchar(20):姓名最大20个字符
zhangsan 8个字符 张三 2个字符

4:乱记~emmmmmmm~~~~

— 修改表名标准语法
ALTER TABLE 表名 RENAME TO 新的表名;
— 添加一列标准语法
ALTER TABLE 表名 ADD 列名 数据类型;
— 修改列名和数据类型 标准语法
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
— 标准语法
ALTER TABLE 表名 DROP 列名;
— 删除表数据标准语法
DELETE FROM 表名 [WHERE 条件];
— 去重标准语法
SELECT DISTINCT 列名1,列名2,… FROM 表名;
select 字段列表 from 表名列 where 条件列表 group by 分组字段 having 分组之后的条件order by 排序 limit分页限定
image.png

聚合查询:
image.png
约束:
image.png
index是在存出引擎层定义的,因此每个存储引擎的index都会有一点区别

innodb和myIsam的区别?

innodb支持事务,外键,行级锁

innodb的存储结构(B+tree):

假如m阶数据(当前节点具有m个子节点),这个节点中由m-1个键以及m个指针构成。插入数据时满足m个时候采用中间值向上抽取的方式进行。
B树:每一个节点处都有自己的数据值
B+tree:只有叶子节点具有自己的行数据值,并且构成了一个单向顺序列表。innodb优化为双向链表。

索引:

聚簇索引:必须有,保证每一个叶子节点里边都有行数据。默认为主键,主键没有,选择第一个唯一索引,如果都没有,会自动创建一个Rid。
非聚簇索引/二级索引:非必须:叶子节点上保存Id
insert语句:避免使用一条插入数据一句insert
order by语句:
group by语句:
update语句: