2021/01/08·Database·MySQL·基本查询语句


用到的表:

user
在这里插入图片描述

class
用户类别class表

一、常规查询

1.查询单表所有字段

SELECT * FROM `user`;

在这里插入图片描述

2.查询单表部分字段

SELECT `name`,age FROM `user`;

在这里插入图片描述

3.使用as给字段起别名

#AS 可省略
SELECT `name` AS '姓名',age AS '年龄' FROM `user`;
SELECT `name` '姓名',age '年龄' FROM `user`;

在这里插入图片描述

4.查询指定表的某字段

SELECT `user`.`name` '姓名',`user`.age '年龄' FROM `user`;

在这里插入图片描述

5.使用as给表起别名

SELECT u.`name` AS '姓名',u.age AS '年龄' FROM `user` AS u;

在这里插入图片描述

6.distinct 消除重复行,必须放在第一个字段之前,作用在后面所有字段

SELECT DISTINCT u.`name` AS '姓名',u.age AS '年龄' FROM `user` AS u;

在这里插入图片描述


二、条件查询

1.比较运算符:>, <, >=, <=, =, !=, <>

1.>大于

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age>32;

在这里插入图片描述

2.<小于

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age<32;

在这里插入图片描述

3.>=大于等于

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age>=32;

在这里插入图片描述

4.<=小于等于

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age<=32;

在这里插入图片描述

5.=等于

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age=32;

在这里插入图片描述

6.!=不等于

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age!=32;

在这里插入图片描述

7.<>不等于

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age<>32;

在这里插入图片描述


2.逻辑运算符:and, or, not

1.and同时

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE id>2 AND age>=32;

在这里插入图片描述

2.or或者

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE id>2 OR age>=32;

在这里插入图片描述

3.not不

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE NOT age>=32;

在这里插入图片描述


3.模糊查询:like, rlike

1.like 模糊

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE `name` LIKE '%李%';#name包含‘李’的
SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE `name` LIKE '李%';#name以‘李’开头的
SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE `name` LIKE '李__';#name以‘李’开头,后面跟两个占位符的

在这里插入图片描述

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE `name` LIKE '__';#name包含两个字的

在这里插入图片描述

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE `name` LIKE '__%';#name至少有两个字的

在这里插入图片描述

2.rlike 正则

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE `name` RLIKE '^李.*';#以‘李’开头

在这里插入图片描述

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE `name` RLIKE '^李.*思$';#‘李’开头‘思’结尾

4.范围查询:in,not in,between…and,not between…and

1.in 在某集合中

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age IN (21,32,30);

在这里插入图片描述

2.not in 不在某集合中

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age NOT IN (21,32,30);

在这里插入图片描述

3.between…and 在某范围中

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age BETWEEN 11 AND 30 ;

在这里插入图片描述

4.not between…and 不在某范围中

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` WHERE age NOT BETWEEN 11 AND 30 ;

在这里插入图片描述


5.空判断

1.null 空

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄',`user`.class '类别' FROM `user` WHERE class IS NULL ;

在这里插入图片描述

2.not null 非空

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄',`user`.class '类别' FROM `user` WHERE class IS NOT NULL ;
#只有重复记录完全一样的时候去除重复行,显然这里的类别不一样

在这里插入图片描述


6.order_by

1.asc 顺序排序

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` ORDER BY age ASC ;

在这里插入图片描述

2.desc 逆序排序

SELECT DISTINCT `user`.`name` '姓名',`user`.age '年龄' FROM `user` ORDER BY age DESC ;

在这里插入图片描述


7.聚合函数:count(), max(), min(), sum(), avg(), round()

1.count() 数量

SELECT COUNT(*) FROM `user`;

在这里插入图片描述

2.max() 最大值

SELECT MAX(age) FROM `user`;

在这里插入图片描述

3.min() 最小值

SELECT MIN(age) FROM `user`;

在这里插入图片描述

4.sum() 总和

SELECT SUM(age) FROM `user`;

在这里插入图片描述

5.avg() 平均值

SELECT AVG(age) FROM `user`;

在这里插入图片描述

6.round() 四舍五入

#计算所有人都平均年龄并保存两位小数
SELECT ROUND(SUM(age)/COUNT(*),2) FROM `user`;

在这里插入图片描述


8.分组:group_by, group_concat():查询内容, having

  1. group by 必须放在orderby和limit之前
#去重,实现distinct实现不了的功能,这里只要name相同即可去重
SELECT * FROM `user` GROUP BY `name`;

在这里插入图片描述

#查看相同名字的人数
SELECT name,COUNT(*) FROM `user` GROUP BY `name`;

在这里插入图片描述

  1. group_concat()
#连接一些信息
SELECT `name`,COUNT(*),GROUP_CONCAT(id,':',age) FROM `user` GROUP BY `name`;

在这里插入图片描述

  1. having
#在分组之后的再进行having条件判断
SELECT `name`,COUNT(*),GROUP_CONCAT(id,':',age) FROM `user` GROUP BY `name` HAVING COUNT(*)>=2;

在这里插入图片描述


9.分页: limit放在最后面

#限制查询数量
SELECT DISTINCT name '姓名',age '年龄' FROM `user` LIMIT 2 ;

在这里插入图片描述

#从(1+1)第二条开始,显示两条记录
SELECT DISTINCT name '姓名',age '年龄' FROM `user` LIMIT 1,2 ;

在这里插入图片描述


10.连接查询 :inner join, left join, right join

1.inner join 内连接

SELECT `user`.name '姓名',`user`.age '年龄',`class`.classname '类别' FROM `user` INNER JOIN `class` ON `user`.class=class.id;

在这里插入图片描述

2.left join 左连接

SELECT `user`.name '姓名',`user`.age '年龄',`class`.classname '类别' FROM `user` LEFT JOIN `class` ON `user`.class=class.id;

在这里插入图片描述

3.right join 右连接

SELECT `user`.name '姓名',`user`.age '年龄',`class`.classname '类别' FROM `user` RIGHT JOIN `class` ON `user`.class=class.id;

在这里插入图片描述

注:利用好别名可以做很多事,如自连接

三、一文一哲理

求神不如求人,求人不如求己


最后麻烦朋友们点赞,你们的点赞是我创作最大的动力!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值