数据库

MySQL查询语句

2018-10-31  本文已影响0人  梦里才是真

目录

一、查询准备
二、条件查询
三、排序
四、聚合函数
五、分组
六、分页
七、连接查询
八、自关联
九、子查询

一、查询准备

1、创建数据库、数据表

2、准备数据

3、消除重复行

二、条件查询

使用where子句对表中的数据筛选,结果为true的行会出现在结果集中

比较运算符

例1:查询编号大于3的学生
select * from students where id > 3;

例2:查询编号不大于4的学生
select * from students where id <= 4;

例3:查询姓名不是“黄蓉”的学生
select * from students where name != '黄蓉';

例4:查询没被删除的学生
select * from students where is_delete=0;

逻辑运算符

例5:查询编号大于3的女同学
select * from students where id > 3 and gender=0;
例6:查询编号小于4或没被删除的学生
select * from students where id < 4 or is_delete=0;
模糊查询

例7:查询姓黄的学生
select * from students where name like '黄%';
例8:查询姓黄并且“名”是一个字的学生
select * from students where name like '黄_';
例9:查询姓黄或叫靖的学生
select * from students where name like '黄%' or name like '%靖';

范围查询

空判断

优先级

三、排序

为了方便查看数据,可以对数据进行排序
语法
select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]
说明

四、聚合函数

为了快速得到统计数据,经常会用到如下5个聚合函数
1. 总数

2. 最大值

3. 最小值

4. 求和

5. 平均值

五、分组

group by

select gender from students group by gender;

select gender from students group by gender;
根据gender字段来分组,gender字段的全部值有4个'男','女','中性','保密',所以分为了4组 当group by单独使用时,只显示出每组的第一条记录, 所以group by单独使用时的实际意义不大。

group by + group_concat()

group by + 集合函数

group by + having

group by + with rollup

六、分页

1、获取部分行
当数据量过大时,在一页中查看数据是一件非常麻烦的事情

2、示例:分页

七、连接查询

当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回
mysql支持三种类型的连接查询,分别为:

语法
select * from 表1 inner或left或right join 表2 on 表1.列 = 表2.列

例1:使用内连接查询班级表与学生表
select * from students inner join classes on students.cls_id = classes.id;

例2:使用左连接查询班级表与学生表
此处使用了as为表起别名,目的是编写简单
select * from students as s left join classes as c on s.cls_id = c.id;

例3:使用右连接查询班级表与学生表
select * from students as s right join classes as c on s.cls_id = c.id;

例4:查询学生姓名及班级名称
select s.name,c.name from students as s inner join classes as c on s.cls_id = c.id;

八、自关联

问题:

  1. 能不能将两个表合成一张表呢?

思考:
观察两张表发现,citys表比provinces表多一个列proid,其它列的类型都是一样的

意义:
存储的都是地区信息,而且每种信息的数据量有限,没必要增加一个新表,或者将来还要存储区、乡镇信息,都增加新表的开销太大

答案:
定义表areas,结构如下

说明:

创建areas表的语句如下:

create table areas(
    aid int primary key,
    atitle varchar(20),
    pid int
);

九、子查询

在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句
1、主查询
主要查询的对象,第一条 select 语句
2、主查询和子查询的关系

3、子查询分类

4、标量子查询

5、列级子查询

6、行级子查询

7、子查询中特定关键字使用

☆祝您生活愉快!☆

个人博客:
https://blog.csdn.net/niubiqigai/article/details/82927773

上一篇 下一篇

猜你喜欢

热点阅读