mysql知识点总结

mysql

1.DML/DDL/DCL

​ DML(数据库操纵语言):insert,update等等

​ DDL(数据库定义语言):drop,create等等

​ DQL(数据库查询语言):select

​ DCL(数据库控制语言):用户,权限,事务等等

2.索引:

3.优化:

​ 1. 索引(占比80%)

​ 2. 检查是否走执行计划,尽量不要走全表。

​ 3.尽量优化sql语句。

4.执行顺序?

from>join>on>where>group by>having>select>distinct(去重)>order by>limit

5.interval?

6.如果要保留null数据,可以这样做

where LAST_NAME!="KING" and (DEPARTMENT_ID!=20 or DEPARTMENT_ID is null) 

7. exists本质上是ture与false的判断,与查什么无关

例如:

select * from employees
	where exists(
		select * from jobs where employees.JOB_ID=jobs.JOB_ID and JOB_TITLE like "%MANAGER%"
	)

8.exists与in的区别

1.in是把外表和内表做hash连接,先查询内表

2.exists是对外表做loop循环,循环后再对内表查询

3.懵懵懂懂,总之,外表大用in,内表大用exists

9.union:求交集

例如:表A union 表B

10.三范式?

1NF:要求数据达到原子性,使数据不可再分。

2NF:使每一行数据具有唯一性,并消除数据之间的“部分依赖”,使每一个表中的非主键字段,完全依赖于主键字段。

3NF:属于不依赖于其他非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其他表中已包含的非主关键字信息,非PK的字段间不能有重属关系

11.表的结构修改?

添加字段: alter,add

修改字段: alter,modify

删除字段: alter , drop

修改表名:rename to

添加检查约束条件:constraint , check

​ 例如:

alter table emp_temp2 add constraint SALARY check(SALARY>100)

添加索引:index , on

create index emp_temp_n1 on emp_temp(EMPLOYEE_ID)

12. 函数

  1. round:四舍五入函数,round(123445,-3):-3代表往小数点左边舍去3位,+号则相反
  2. count:count里面的表达式不生效,比如:count(core>60)

13.什么情况不走索引?

1.出现数据类型转化问题。

2.出现函数。

3.有like不走索引

14.高深写法:取各科前三名

高深写法:取各科前三名
SELECT * from hand_student_core hsc
WHERE (SELECT COUNT(*) from hand_student_core hsc1
WHERE hsc.course_no = hsc1.course_no and hsc1.core <hsc.core
)<3 ORDER BY hsc.course_no,hsc.core DESC;

15. mysql 模糊查询实现不区分大小写

 SELECT * FROM `table`
where lower(字段) LIKE 
 CONCAT(CONCAT('%',lower('WPS')),'%')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值