美文网首页
第九天:SQL 查询命令和练习

第九天:SQL 查询命令和练习

作者: deji_Chen | 来源:发表于2018-10-25 17:09 被阅读0次

查询命令

模糊查询

  • 关键字LIKE
  • 通配符% _

非空 NOT NULL

限制条目
去重
不显示重复数据

分组

  • 关键字 GROUP BY
  • 只能展示分组字段和聚合函数
  • HAVING是聚合函数过滤后条件查询,等同于过滤前的LIKE
  • 聚合函数
    统计count求和sum平均avg最大max最小min

命令加强练习

-- 为空
SELECT*
FROM gy_user
WHERE weichat IS NULL;
-- 不为空
SELECT*
FROM gy_user
WHERE weichat IS NOT NULL;
-- 排序升序
SELECT*
FROM gy_user
ORDER BY sno;`
-- 排序降序
SELECT*
FROM gy_user
ORDER BY age DESC;

-- 带判断条件的降序
SELECT*
FROM gy_user
WHERE realname LIKE '%吴%'
ORDER BY age DESC;

-- 指定限制前10条
SELECT*
FROM gy_user
LIMIT 10;

-- 指定查询 50-80条
SELECT*
FROM gy_user
LIMIT 50,30;

-- 指定字段去重
SELECT DISTINCT realname
FROM gy_user;

-- 只去重真实姓名,显示其他选项
SELECT *
FROM gy_user
GROUP BY realname;

-- 统计条目数
SELECT COUNT(sno)
FROM gy_user;

-- 统计最大
SELECT MAX(sno)
FROM gy_user;

-- 最小
SELECT MIN(sno)
FROM gy_user;

-- 平均
SELECT AVG(sno)
FROM gy_user;

-- 求和
SELECT SUM(sno)
FROM gy_user;

练习题

-- 30.查询真实姓名,姓氏为张王李杨,按年龄倒序
SELECT realname,age
FROM gy_user
WHERE realname LIKE '张%' OR realname LIKE '王%' OR realname LIKE  '李%' OR realname LIKE  '杨%'
ORDER BY age DESC;

-- 31.查询用户名包含guoya的用户,根据真实姓名去重
SELECT DISTINCT realname,sname
FROM gy_user
WHERE sname LIKE '%guoya%';

-- 32.查询用户id在50 60 70 80,并真实姓名不为空的用户
SELECT *
FROM gy_user
WHERE sno IN (50,60,70,80) AND realname IS NOT NULL;

-- 33.查询用户表 年龄在20.30.40 姓名包含张,吴,显示真实姓名,年龄,地址
SELECT realname,age,address
FROM gy_user
WHERE age IN (20,30,40) AND (realname LIKE '%张%' OR realname LIKE '%吴%');

-- 34.查询用户表编号大于50 地址在上海   展示用户名,年龄,地址前100条数据
SELECT sname,age,address
FROM gy_user
WHERE sno>50 AND address LIKE '%上海%'
LIMIT 100;

-- 35.查询用户表姓名为单字 对真实姓名去重,根据年龄倒序
SELECT DISTINCT realname
FROM gy_user
WHERE realname LIKE '_'
ORDER BY age DESC;

-- 36.查询用户表 地址不为空,对用户名去重,显示前30条
SELECT DISTINCT sname
FROM gy_user
WHERE address IS NOT NULL
LIMIT 30;

-- 37.查询用户表 手机号码地址不为空,并且用户编号大于50,只显示第10-20条数据
SELECT *
FROM gy_user
WHERE sno>50 AND address IS NOT NULL AND phone IS NOT NULL
LIMIT 10,10;

-- 38.查询用户表,年龄大于20班级类型为1,以年龄正序id倒序排列
SELECT*
FROM gy_user
WHERE age>20 AND class_type=1
ORDER BY age ASC,sno DESC;

-- 39.查询微信号 手机号不为空 姓名包含王,以年龄倒序,显示真实姓名去重
SELECT DISTINCT realname,weichat
FROM gy_user
WHERE realname LIKE '%王%' AND phone IS NOT NULL
ORDER BY age DESC;

-- 40.查询用户编号100-500区间,微信号不为空,年龄倒序,显示用户名去重
SELECT DISTINCT realname
FROM gy_user
WHERE weichat IS NOT NULL 
ORDER BY age DESC
LIMIT 100,400

-- 求每一个班级的总年龄
SELECT SUM(age),class_type
FROM gy_user
GROUP BY class_type;

-- 求每一个班级的平均年龄
SELECT AVG(age),class_type
FROM gy_user
GROUP BY class_type;

-- 求每一个学历的最大年龄
SELECT SUM(age),education
FROM gy_user
GROUP BY education;

-- 求每一个学历的平均年龄
SELECT AVG(age),education
FROM gy_user
GROUP BY education;

-- 查询各班级平均年龄大于20的班级是
SELECT class_type, AVG(age)
FROM gy_user
GROUP BY class_type
HAVING AVG(age)>20;
-- 查询各班级最小年龄大于2的班级
SELECT MIN(age),class_type
FROM gy_user
GROUP BY class_type
HAVING MIN(age)>2;


-- 查询各班级平均年龄小于23的班级
SELECT AVG(age),class_type
FROM gy_user
GROUP BY class_type
HAVING AVG(age)<23;


-- 查询各班级年龄总和小于500的班级
SELECT class_type,SUM(age)
FROM gy_user
GROUP BY class_type
HAVING SUM(age)<500;

相关文章

  • 第九天:SQL 查询命令和练习

    查询命令 模糊查询 关键字LIKE 通配符% _ 非空 NOT NULL 限制条目 去重 分组 关键字 GROU...

  • SQL常用命令书目录

    SQL常用命令之单表查询 SQL常用命令之多表查询 SQL常用命令之模糊查找 SQL常用命令之空值查询 SQL常用...

  • sql 练习(三)

    环境是mysql 练习数据见SQL:练习的前期准备 sql 练习(一)sql 练习(二)21、查询成绩高于学号为“...

  • MySQL慢查询日志相关笔记

    MySQL优化SQL,针对慢SQL语句的查询及相关配置。相关命令: 需要永久开启慢SQL查询日志,需要在my.in...

  • Explain命令

    explain命令用来查询sql语句的执行计划。使得我们可以针对sql查询语句进行优化。例如:查看select *...

  • SQL 查询命令

    一 数据库基本操作 二 高级查询 1. 新建表结构 2. 聚合查询 3. 多表查询 4. 连接查询 关于INNER...

  • SQL 查询命令

    distinct 去重(查询行是否重复) 例 as 替换字段名 表名也可以用as替换 <小于 >大于 =等于 >=...

  • SQL练习

    SQL练习-4张表 针对下面的4张表格进行SQL语句的练习。 image SQL练习-题目 查询001课程比002...

  • mysql利用sql语句将查询结果导出

    sql语句如下 mysql -h127.0.0.1 -uroot -p123123 -e "sql查询命令" 数...

  • MySQL-explain详解

    对SQL查询语句执行explain命令可以得到SQL语句的执行计划。 id:序号,表示查询中执行select子句或...

网友评论

      本文标题:第九天:SQL 查询命令和练习

      本文链接:https://www.haomeiwen.com/subject/uyhqtqtx.html