一. 如何导出数据库的表数据
数据库表结构(字段信息等)导出Word,Excel,HTML,CHM等格式_如何将数据库的表各字段导出-CSDN博客
使用Navicat 导出 MySQL 数据库表结构、表数据到Excel表格中_navicat导出表结构为表格-CSDN博客
WorkBench安装教程_mysql workbench安装教程-CSDN博客使用教程也包括在里面了
二. 练习题中的查漏补缺
- count(1)的作用
例子:统计男生、女生的人数
select gender,count(1) from student group by gender;
作用:统计在分组中,每一组对应的行数或项数
- select ... group by 出现报错
问题重述
使用group by语句违背了sql_mode=only_full_group_by,因为mysql5.7之后默认的模式是ONLY_FULL_GROUP_BY
两种解决方法
临时:
在当前窗口执行:
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
但是该次修改仅在该窗口有效,只是临时修改
永久
在找到my.ini,在尾部添加内容:
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
三.索引
作用:加速查找
原因:索引的底层是基于B+ Tree存储的
分类
非聚簇索引:通过存储地址让数据和索引结构分开存储——myisam引擎
聚簇索引;通过树结点存储主键来让数据和主键索引结构存储在一起——innodb引擎
一般使用innodb引擎
常见的索引类型
·主键索引:加速查找、不能为空、不能重复(约束)
·唯一索引:加速查找、不能重复。 +联合唯一索引
·普通索引:加速查找
主键和联合主键索引
唯一和联合唯一索引
索引和联合索引
操作表
如何命中索引?
只要通过索引列去搜都可以命中索引
特殊情况(无法命中索引):
类型不一致
比如用整型去查找字符索引,但是主键不受类型不匹配的影响
使用不等于
!=
like做模糊匹配的时候
通配符在字符串前面的时候会使得匹配变慢
执行计划
定义
可以通过explain关键字模拟优化器执行SQL语句