Mysql_常用语法
常用语法
1. 创建数据库
create DATABASE 数据库名;
2. 创建表
3. DML核心CRUD增删改查
增加:insert
删除:delete
更新:update
查询:select
4. 基本查询语句
- 基本查询:select * from table_name;
- 字段查询:select 字段名 from table_name;
- 条件查询:select * from table_name where a=1;
- 倒排序:select * from table_name order by 字段名 desc;
- 分页:select * from table_name order by 字段名 desc limit 10 offset 0;
- 去重:select distinct 字段名 form table_name;
5. 条件查询
- and or not
- 相等:=
- 数字比较:= > < <>(不等于)
- like通配: %_
- BETEWWN AND
- IN
6. 聚合查询
- group by having
- COUNT,MAX,MIN,SUM,AVG
7.多表查询
8. 去重查询
9. 常用关键字
10. 面试常问:
- 视图
优点:
- 使用视图,可以定制用户数据,聚焦特定的数据
- 使用视图,可以简化数据操作
- 使用视图,基表中的数据就有了一定的安全性
- 可以合并分离的数据,创建分区视图
缺点:
- 性能差
- 修改限制
- 存储过程:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集
优点:
- 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一次解析和优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度会比普通sql快
- 减少网络传输:存储过程直接就在数据库服务器上跑,所有的数据访问都在数据库服务器内部进行,不需要传输数据到其它服务器,所以会减少一定的网络传输
缺点:
- SQL本身是一种结构化查询语言,但不是面向对象的的,本质上还是过程化的语言,面对复杂的业务逻辑,过程化的处理会很吃力。同时SQL擅长的是数据查询而非业务逻辑的处理,如果如果把业务逻辑全放在存储过程里面,违背了这一原则
- 索引
优点:
- 通过创建唯一索引,可以保证数据库每一行数据的唯一性
- 可以大大提高查询速度
- 可以加速表与表的连接
- 可以显著的减少查询中分组和排序的时间。
缺点:
- 创建索引和维护索引需要时间,而且数据量越大时间越长
- 创建索引需要占据磁盘的空间,如果有大量的索引,可能比数据文件更快达到最大文件尺寸
- 当对表中的数据进行增加,修改,删除的时候,索引也要同时进行维护,降低了数据的维护速度