面试速记之MySQL

目录

数据类型

1.整数

tinyInt 1byte
smallInt 2byte
mediumInt 3byte
int 4byte

2.小数

float 4byte
double 8byte

3.日期

year YYYY 1901-2155
date YYYY-MM-DD
time

4.文本、二进制

tinyblob、blob、smallblob、mediumblob、longblob
tinytext、text、mediumtext、longtext

5.字符

char 定长 0-255
varchar 变长 0-65535

sql优化

1.sql语句优化

不 select *

union 或 union all 代替 or(union可去重,union all不可)

用关联查询(join)代替子查询

2.用索引

数量:每张表<=5

为查询最频繁的字段建

更改频繁的、不能显著区分数据的字段不适合建

3.表优化

字段尽量不为null

单表数据<=300w

字段类型应为符合要求的最小数据类型

禁建预留字段(暂时用不上空在那的)

如何优化慢sql

查原因,明确偶尔慢还是一直慢

偶尔慢考虑
1.数据库在刷新脏页
2.有表锁或行锁,且当前事务未获得锁

补充:mysql脏页是什么

一直慢可以开慢查询,分析慢查询日志
1.未用索引 -> 全表扫描 -> 查询慢
解决:加索引
2.用了索引 -> 索引失效 -> 全表扫描 -> 查询慢
解决:分析失效原因并修复

sql语句

删除
delete from table where

建索引
create index index_name on table(column)

sql四种连接

在这里插入图片描述
在这里插入图片描述

1.内连接

在这里插入图片描述
在这里插入图片描述

2.左(外)连接

在这里插入图片描述
在这里插入图片描述

3.右(外)连接

在这里插入图片描述
在这里插入图片描述

4.全连接

mysql不支持,可用它法实现

Select * from TableA left join tableB on A.key=B.key;
Union
Select * from TableA right join tableB on A.key=B.key;

筛选的方法

where

group by having

order by

limit

limit

下面两种写法都表示取2、3、4三条数据

select * from article LIMIT 1,3
select * from article LIMIT 3 OFFSET 1

limit 要跳过的数量 , 取的数据的条数
limit 取的数据的条数
limit 取的数据的条数 offset 要跳过的数量

sql分类

DQL:数据查询语言,查
DML:数据操纵语言,增、删、改
DDL:数据定义语言,创建
DCL:数据控制语言,授权、回滚、提交

删除相关

delete
DML,删除行,记录于redo和undo日志,可回滚

truncate
DDL,清空表数据,保留结构,不可回滚

drop
DDL,清除表的数据和结构,不可回滚

其他

起别名
字段 + as + 别名
字段 + 空格 + 别名

去重
distinct

+号只能做运算,不能拼接字符串
拼接用concat(string1,string2)

字符串用单引号,‘abc’

不等:!= 和 <>

查询员工名中第三个字符为e,第五个字符为a的员工名和工资

select * from employees where last_name like '__e_a%';  

查询员工名中第二个字符为_的员工名
这里可以采用转义的方法实现
方式一:采用java中的\进行转义
方式二:采用MySQL中的escape “转义符”的方式

select last_name from employees where last_name like '_$_%' esc
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值