MySQL基础个人总结(待扩充)

编程入门 行业动态 更新时间:2024-10-18 08:27:49

MySQL<a href=https://www.elefans.com/category/jswz/34/1770030.html style=基础个人总结(待扩充)"/>

MySQL基础个人总结(待扩充)

一、数据库

  1. 创建数据库:create  database 库名 default character set utf8;//设置编码
  2. 删除数据库:drop database 库名
  3. 查看所有数据库:show databases;
  4. 使用数据库:use 库名

二、表

  1. 创建表:create table 表名 (字段 类型 )
  2. 约束:主键:primary key

                    唯一:unique

                    非空:not null

                    自增:auto_increment

                    外键:foreign key (当前表的主键)  references  主表(主键)

                    默认:default

                    检查:check

        3. 修改表

                    添加列:alter table 表名 add column 列名 列的类型(位数,小数保留的位数)

        4. 描述表结构:desc 库名

        5. 删除表: drop table 表名

三、数据

  1. 查询数据:select 字段 from 表名
  2. 插入数据:insert into 表名 values(?,?,?)
  3. 修改数据:update 表名 set 字段名 值
  4. 删除数据:delete from 表名
  5. 查看表结构:desc 表名

四、SQL基础函数

  1. Lower(字段名)----数据转小写
  2. Upper(字段名)----数据转大写
  3. Length(字段名)----数据的长度
  4. Substr(字段名,开始位置,截取长度)----截取
  5. Concat(字段名,‘拼接的数据’)-------拼接
  6. Replace(字段名,‘要被替换的字符’,‘替换的值’)-------替换
  7. Ifnull(字段名,替换的值)-------判断是否为null
  8. Round------四舍五入
  9. Ceil------向上取整
  10. Floor-------向下取整
  11. Uuid -------随机生成32位的字符
  12. Now()日期
  13. Year()年 month()月 day()日
  14. Hour()时 minute()分 second()秒
  15. /----转义字符

五、条件查询

  1. distinct-------去重
  2. Where------条件查询

                Select * from emp where 条件

                Select * from emp where 字段 in ()

     3. Like -----------模糊查询,配合%使用

     4. Is Null ---------字段是为null   is not null 字段不为null

     5. Between and ---------在.......之间

     6. Limit---------分页  limit 0,2 从n+1开始

     7. Order by -------排序

     8. Group by --------分组 分组后在过滤使用having

六、聚合函数

Max---------最大值

Min---------最小值

Count------统计个数

Sum--------求和

Avg---------平均

注意:查询结果中出现混合类,包括聚合函数和非聚合函数,必须分组,通常按非聚合函数进行分组,where不能使用聚合函数(where比having高效,因为where执行时机更早一些)。

七、事务

1.概念:用来保证多个SQL要么全成功要么全失败

2.四大特性:原子性,一致性,持久性,隔离性

3.隔离级别:read uncommitted 读未提交

                    Read committed  读提交 Oracle数据库默认隔离级别

                    Repeatable read   可重复读 mysql 数据库默认隔离级别

                    serializable串行化

                    性能逐步降低,安全性逐步提高

Start  transaction开启事务

Commit   提交事务

Rollback   回滚事务

八、多表查询

  1. 笛卡尔积
  2. Join      on
  3. 内连接 inner  join      on    取两张表的交集
  4. 左连接 left    join     on     左边表的所有和右边表符合条件的数据(小表驱动大表)
  5. 右连接 right  join      on     右边表的所有和左边表符合条件的数据
  6. 子查询(上一次查询的结果作为下一次查询的条件)

九、索引 index

  1. 单值索引  唯一索引   复合索引
  2. 创建索引 create index 索引名 on 表名(字段名)
  3. 创建唯一索引 create unique index 索引名 on 表名(字段名)
  4. 创建符合索引 create index 索引名 on 表名(字段名,字段名)
  5. 检查SQL的执行效率(观察用没用索引)explain + select 语句
  6. 查看索引 show index from 表名
  7. 删除索引 alter table 表名 drop  index  索引名

十、视图 view

  1. 好处:提高了视图的复用性+屏蔽了业务表的复杂性 + 数据共享
  2. 坏处:浪费空间,一旦创建无法更改,无法优化
  3. 创建视图:create view 视图名 as select语句
  4. 使用视图:select *  from 视图名
  5. 删除视图:drop view if exists 视图名

十一、SQL优化

  1. 用字段替代*;
  2. Where里尽量用and不用or,尽量用=不用!=    <> ,条件越精确越好
  3. 索引最多不要超过5个
  4. 给where后或者order by 经常使用的字段加索引 ,复合索引要遵循最左原则,索引表要及时删除不用的索引
  5. 批量处理批量查和删除最好使用分页
  6. Group by 分组时最好先过滤在分组
  7. 用数值代替字符串类型
  8. 不要有超过5个以上表连接
  9. Varchar 代替 char
  10. Inner join,left join ,right join 优先使用inner join

更多推荐

MySQL基础个人总结(待扩充)

本文发布于:2024-02-13 02:41:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690384.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础   MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!