mysql查询语句

1.插入

insert into 表名(字段名) values (字段值);

2.删除

delete from 表名 where 筛选条件

3.查询语句

1. 聚合函数使用

sum, max, count, min, ave

2. 连接查询

多表查询,查询的字段来自多个表的时候

#笛卡尔乘积现象
n * m个行
#起别名
和字段起别名是一样的

sql99的语法

#内连接 inner
select 字段名 
from1  
INNER JOIN2, ..表n
on1.字段 =2.字段名,2.字段 =3.字段 
[where 筛选条件]
[group by 分组条件]
[having 分组后的筛选]
[order by 条件]
[limit offset end]

#外连接
左外连接,右外连接,全连接
left [outer] join2 on
right [outer] join2 on
full [outer join]2 on
#交叉连接
cross

sql92 语法

#内连接
select 字段名
from1 ,2 ...表n
where 连接条件
[and 筛选条件]
[where 筛选条件]
[group by 分组条件]
[having 分组后的筛选]
[order by 条件]
[limit offset end]
#外连接 不支持?
#交叉连接 不知道。

1.内连接

#(1)等值连接
#查询文章
select name, count(*) as cnt from article ,user where user.id = authorid group by authorid order by cnt desc, authorid limit 1; 
#(2)非等值连接·
#把等号换成非等号
比如between and 
#(3)自连接
#自己连接自己的连接
#查询员工的领导姓名
select e.name, ep.namefrom employees e, employee ep
where e.manage_id = ep.employee_id;

2.外连接
特点
(1)左右外连接查询的结果为主表的所有记录,从表的记录没有显示null。
(2).全外连接:主表有的从表有的都能查出来,mysql不支持。
用处
可以查询一个表中有,一个表中没有的。统计一些对象的空的性质,
比如没写过文章的作者,没有员工的部门等。

#统计所有作者写的文章的个数
select name, count(title) from user left join article on user.id = authorid group by name;
#选出没写过文章的作者名字
select name from user left join article on user.id = authorid where article.id is null;


先选出,在分组,在排序
所以不能按照authorid 进行分组,因为选出的列中没有authorid

3.交叉连接
得出笛卡尔积

4.集合与查询的一些关系

在这里插入图片描述

在这里插入图片描述

3. 分组查询
select 聚合函数 from[join type join2 on 连接条件]
[where 分组前筛选]
[group by 一个或多个分组条件]
[having 分组后筛选]
[order by 字段 [desc]]

按照日期从高到低的顺序

4.分页查询

就是在前面的基础上加上了limit进行限制,这样一来就可以求出聚合函数排序之后的值的最大最小值了!

select 聚合函数 from[join type join2 on 连接条件]
[where 分组前筛选]
[group by 一个或者多个分组条件]
[having 分组后筛选]
[order by 字段 [desc]]
[limit offset, end]

例如:
#查询文章数目最少的作者id和他写的文章数目,
select count(*) as cnt, authorid from article group by authorid order by cnt limit 1;
#如果右多个人写的都最少,选取id最小的
select count(*) as cnt, authorid from ariticle group by authorid order by cnt, authorid limit 1;
#查询文章数目最多的作者id和他写的文章数目,如果右多个人写的都最多,选取id最大的
select count(*) as cnt, authorid from article group by authorid order by cnt desc, authorid desc limit 1;
5. 子查询
  1. 分类
    (1)按照子查询出现的位置
    select 后面
    仅支持标量子查询
    from 后面
    支持表子查询
    where 或者having 后面
    标量子查询
    列子查询
    行子查询
    exits后面
    表子查询
    (2)按照结果集的行列数
    标量子查询
    列子查询
    行子查询
    表子查询
  2. 特点
    (1)小括号内
    (2)在条件右侧
    (3)标量子查询:伴随着 < > <=
    (4)列子查询: in any/some,all

4.性能分析

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

5.explain

explain + sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值