首页 > 其他分享 >记录的查询语法

记录的查询语法

时间:2024-03-24 17:15:51浏览次数:25  
标签:salary name 记录 dep 查询 语法 -- user male

记录的查询语法

-- 单表查询
select <字段...>from <库名>.<表名> 
	where    <条件> 
	group by <分组条件>
	having   <过滤条件>
	order by <排序字段> {ASC | DESC} -- 默认升序ASC
	limit    <显示条数>;
	
-- 创建表
create table user(
	id int primary key auto_increment,
	name varchar(15) not null,
	gender enum('male','female')default 'male',
	age int not null default 18,
	salary int not null,
	dep varchar(15)
);

-- 插入数据
INSERT INTO user (name, gender, age, salary, dep) VALUES
('张三', 'male', 30, 5000, 'IT部门'),
('李四', 'female', 28, 5500, '财务部'),
('王五', 'male', 35, 6000, '市场部'),
('赵六', 'female', 32, 4800, '人力资源部'),
('钱七', 'male', 29, 4500, '研发部'),
('孙八', 'male', 26, 5200, 'IT部门'),
('周九', 'female', 24, 5300, '财务部'),
('吴十', 'male', 31, 5500, '市场部'),
('郑十一', 'female', 29, 5000, '人力资源部'),
('王十二', 'male', 27, 5100, '研发部'),
('冯十三', 'female', 25, 5400, 'IT部门'),
('陈十四', 'male', 33, 5600, '财务部'),
('楚十五', 'female', 30, 5700, '市场部');

【1】去重(distinct)

-- 用去重的方法查看部门
select distinct dep from user;

+-----------------+
| dep             |
+-----------------+
| IT部门          |
| 财务部          |
| 市场部          |
| 人力资源部      |
| 研发部          |
+-----------------+

【2】四则运算

-- 查看每个人的年薪
select name,salary*12 from user;

+-----------+-----------+
| name      | salary*12 |
+-----------+-----------+
| 张三      |     60000 |
| 李四      |     66000 |
| 王五      |     72000 |
| 赵六      |     57600 |
| 钱七      |     54000 |
| 孙八      |     62400 |
| 周九      |     63600 |
| 吴十      |     66000 |
| 郑十一    |     60000 |
| 王十二    |     61200 |
| 冯十三    |     64800 |
| 陈十四    |     67200 |
| 楚十五    |     68400 |
+-----------+-----------+

-- 取别名
select name,salary*12 as year_salary from user;

+-----------+-------------+
| name      | year_salary |
+-----------+-------------+
| 张三      |       60000 |
| 李四      |       66000 |
| 王五      |       72000 |
| 赵六      |       57600 |
| 钱七      |       54000 |
| 孙八      |       62400 |
| 周九      |       63600 |
| 吴十      |       66000 |
| 郑十一    |       60000 |
| 王十二    |       61200 |
| 冯十三    |       64800 |
| 陈十四    |       67200 |
| 楚十五    |       68400 |
+-----------+-------------+

【3】设置显示格式concat

-- 设置显示格式(姓名:>>>张三 年龄:>>>20  薪资:>>>8000)
select concat('姓名:>>>',name,'年龄:>>>',age,'薪资:>>>',salary) from user;

-- 给字段名取名字
select concat('姓名:>>>',name,'年龄:>>>',age)as 'name age',concat('薪资:>>>',salary) as 'salary' from user;

-- 拼接
select concat_ws('-',name,age,salary) as 'name-age-salary' from user;

【4】where

-- 查询id为3-6之间的数据
select * from user where id between 3 and 6;

+----+--------+--------+-----+--------+-----------------+
| id | name   | gender | age | salary | dep             |
+----+--------+--------+-----+--------+-----------------+
|  3 | 王五   | male   |  35 |   6000 | 市场部          |
|  4 | 赵六   | female |  32 |   4800 | 人力资源部      |
|  5 | 钱七   | male   |  29 |   4500 | 研发部          |
|  6 | 孙八   | male   |  26 |   5200 | IT部门          |
+----+--------+--------+-----+--------+-----------------+
-- 查询薪资为3000,5000,6000的人
select * from user where salary in(3000,5000,6000);

+----+-----------+--------+-----+--------+-----------------+
| id | name      | gender | age | salary | dep             |
+----+-----------+--------+-----+--------+-----------------+
|  1 | 张三      | male   |  30 |   5000 | IT部门          |
|  3 | 王五      | male   |  35 |   6000 | 市场部          |
|  9 | 郑十一    | female |  29 |   5000 | 人力资源部      |
+----+-----------+--------+-----+--------+-----------------+
-- 查询 员工姓名中包含三的姓名和薪资
select name,salary from user where name like'%三%';

+-----------+--------+
| name      | salary |
+-----------+--------+
| 张三      |   5000 |
| 冯十三    |   5400 |
+-----------+--------+
-- 查询员工姓名是由三个字符组成的姓名和薪资
select name,salary from user where char_length(name) = 3;

select name,salary from user where name like '___';

+-----------+--------+
| name      | salary |
+-----------+--------+
| 郑十一    |   5000 |
| 王十二    |   5100 |
| 冯十三    |   5400 |
| 陈十四    |   5600 |
| 楚十五    |   5700 |
+-----------+--------+
-- 查询岗位描述为空的员工姓名和岗位名
select name,dep from user where dep_desc is null ;

+-----------+-----------------+
| name      | dep             |
+-----------+-----------------+
| 李四      | 财务部          |
| 王五      | 市场部          |
| 赵六      | 人力资源部      |
| 钱七      | 研发部          |
| 周九      | 财务部          |
| 吴十      | 市场部          |
| 郑十一    | 人力资源部      |
| 王十二    | 研发部          |
| 陈十四    | 财务部          |
| 楚十五    | 市场部          |
+-----------+-----------------+

【5】group by

-- 获取每个部门的最高薪资(max)
select dep,max(salary) from user group by dep;

+-----------------+-------------+
| dep             | max(salary) |
+-----------------+-------------+
| IT部门          |        5400 |
| 人力资源部      |        5000 |
| 市场部          |        6000 |
| 研发部          |        5100 |
| 财务部          |        5600 |
+-----------------+-------------+
-- 获取每个部门的最低薪资(min)
select dep , min(salary) from user group by dep;

+-----------------+-------------+
| dep             | min(salary) |
+-----------------+-------------+
| IT部门          |        5000 |
| 人力资源部      |        4800 |
| 市场部          |        5500 |
| 研发部          |        4500 |
| 财务部          |        5300 |
+-----------------+-------------+
-- 获取每个部门的平均薪资(avg)
select dep, avg(salary) from user group by dep;

+-----------------+-------------+
| dep             | avg(salary) |
+-----------------+-------------+
| IT部门          |   5200.0000 |
| 人力资源部      |   4900.0000 |
| 市场部          |   5733.3333 |
| 研发部          |   4800.0000 |
| 财务部          |   5466.6667 |
+-----------------+-------------+
-- 获取每个部门的薪资总和(sum)
select dep, sum(salary) from user group by dep;

+-----------------+-------------+
| dep             | sum(salary) |
+-----------------+-------------+
| IT部门          |       15600 |
| 人力资源部      |        9800 |
| 市场部          |       17200 |
| 研发部          |        9600 |
| 财务部          |       16400 |
+-----------------+-------------+
-- 获取每个部门的人数(count)
select dep, count(id) from user group by dep;

+-----------------+------------+
| dep             | count(dep) |
+-----------------+------------+
| IT部门          |          3 |
| 人力资源部      |          2 |
| 市场部          |          3 |
| 研发部          |          2 |
| 财务部          |          3 |
+-----------------+------------+
-- 查询分组之后的部门名称和每个部门下所有的员工姓名(group_concat)
select dep,group_concat(name) from user group by dep;

+-----------------+-------------------------+
| dep             | group_concat(name)      |
+-----------------+-------------------------+
| IT部门          | 张三,孙八,冯十三        |
| 人力资源部      | 赵六,郑十一             |
| 市场部          | 王五,吴十,楚十五        |
| 研发部          | 钱七,王十二             |
| 财务部          | 李四,周九,陈十四        |
+-----------------+-------------------------+

【6】having

  • having也是过滤,他是在分组之后过滤的
-- 查询所有部门内,员工数量小于3的部门名,以及该部门内的员工名和员工数量
select dep,group_concat(name),count(id)from user group by dep having count(id)<3;

+-----------------+--------------------+-----------+
| dep             | group_concat(name) | count(id) |
+-----------------+--------------------+-----------+
| 人力资源部      | 赵六,郑十一        |         2 |
| 研发部          | 钱七,王十二        |         2 |
+-----------------+--------------------+-----------+
-- 查询各部门年龄大于20,且员工数量大于2的部门名,以及人数
select dep, count(id) from user where age > 20 group by dep having count(id)>2;

+-----------+-----------+
| dep       | count(id) |
+-----------+-----------+
| IT部门    |         3 |
| 市场部    |         3 |
| 财务部    |         3 |
+-----------+-----------+

【7】order by

  • order by是排序,默认是升序 desc是降序,升序是asc
-- 对所有员工按照工资进行降序排列
select * from user order by salary desc;

+----+-----------+--------+-----+--------+-----------------+----------+
| id | name      | gender | age | salary | dep             | dep_desc |
+----+-----------+--------+-----+--------+-----------------+----------+
|  3 | 王五      | male   |  35 |   6000 | 市场部          | NULL     |
| 13 | 楚十五    | female |  30 |   5700 | 市场部          | NULL     |
| 12 | 陈十四    | male   |  33 |   5600 | 财务部          | NULL     |
|  2 | 李四      | female |  28 |   5500 | 财务部          | NULL     |
|  8 | 吴十      | male   |  31 |   5500 | 市场部          | NULL     |
| 11 | 冯十三    | female |  25 |   5400 | IT部门          | 牛逼     |
|  7 | 周九      | female |  24 |   5300 | 财务部          | NULL     |
|  6 | 孙八      | male   |  26 |   5200 | IT部门          | 牛逼     |
| 10 | 王十二    | male   |  27 |   5100 | 研发部          | NULL     |
|  1 | 张三      | male   |  30 |   5000 | IT部门          | 牛逼     |
|  9 | 郑十一    | female |  29 |   5000 | 人力资源部      | NULL     |
|  4 | 赵六      | female |  32 |   4800 | 人力资源部      | NULL     |
|  5 | 钱七      | male   |  29 |   4500 | 研发部          | NULL     |
+----+-----------+--------+-----+--------+-----------------+----------+
  • 可以指定第二个排序条件,比如说如果工资相同,再指定一个以id排序
select * from user order by salary desc, id desc;

+----+-----------+--------+-----+--------+-----------------+----------+
| id | name      | gender | age | salary | dep             | dep_desc |
+----+-----------+--------+-----+--------+-----------------+----------+
|  3 | 王五      | male   |  35 |   6000 | 市场部          | NULL     |
| 13 | 楚十五    | female |  30 |   5700 | 市场部          | NULL     |
| 12 | 陈十四    | male   |  33 |   5600 | 财务部          | NULL     |
|  8 | 吴十      | male   |  31 |   5500 | 市场部          | NULL     |
|  2 | 李四      | female |  28 |   5500 | 财务部          | NULL     |
| 11 | 冯十三    | female |  25 |   5400 | IT部门          | 牛逼     |
|  7 | 周九      | female |  24 |   5300 | 财务部          | NULL     |
|  6 | 孙八      | male   |  26 |   5200 | IT部门          | 牛逼     |
| 10 | 王十二    | male   |  27 |   5100 | 研发部          | NULL     |
|  9 | 郑十一    | female |  29 |   5000 | 人力资源部      | NULL     |
|  1 | 张三      | male   |  30 |   5000 | IT部门          | 牛逼     |
|  4 | 赵六      | female |  32 |   4800 | 人力资源部      | NULL     |
|  5 | 钱七      | male   |  29 |   4500 | 研发部          | NULL     |
+----+-----------+--------+-----+--------+-----------------+----------+

【8】limit

  • 限制显示的条数
-- 查询工资前五的数据
select * from user order by salary limit 5;

+----+-----------+--------+-----+--------+-----------------+----------+
| id | name      | gender | age | salary | dep             | dep_desc |
+----+-----------+--------+-----+--------+-----------------+----------+
|  5 | 钱七      | male   |  29 |   4500 | 研发部          | NULL     |
|  4 | 赵六      | female |  32 |   4800 | 人力资源部      | NULL     |
|  1 | 张三      | male   |  30 |   5000 | IT部门          | 牛逼     |
|  9 | 郑十一    | female |  29 |   5000 | 人力资源部      | NULL     |
| 10 | 王十二    | male   |  27 |   5100 | 研发部          | NULL     |
+----+-----------+--------+-----+--------+-----------------+----------+

标签:salary,name,记录,dep,查询,语法,--,user,male
From: https://www.cnblogs.com/Hqqqq/p/18092658

相关文章

  • jQuery语法
    【一】查找标签【1】基本选择器//id选择器$('#id')//标签选择器$('tag')//类选择器$('.class')//找到由xx类的xx标签$('tag.class')//所有元素选择器$('*')//组合选择器$("#id,.className,tagName")【2】层级选择器//x,y这里指代任意标签//......
  • 【leetcode】【100268. 最长公共后缀查询】【Trie树】
    Howtoslovethisproblem?Ifwereversethestrings,theproblemchangestofindingthelongestcommonprefix.BuildaTrie,eachnodeisaletterandonlysavesthebestword’sindexineachnode,basedonthecriteria.code:classSolution{publ......
  • 如何查询网贷大数据信用报告?哪个查询平台更好?
    在互联网金融迅速发展的当下,网贷大数据查询平台已成为许多人在申请贷款前的重要工具。然而,随着这些平台的广泛使用,安全问题日益凸显,许多用户反映自己的个人信息在查询过程中被泄露。为了应对这一挑战,本文将探讨如何选择一个安全的网贷大数据查询平台。如何查询网贷大......
  • Vue项目,用模板语法{{}}插值渲染文本,文本不能换行的坑
    {{contentTitle}}data(){return{contentTitle:第一行第二行,}},contentTitle这个变量赋的值是,ES6的字符模板根据说明,在这个字符模板内换行,会直接输出换行,不需要添加什么\n,这类东西。但渲染出来的文本根本没有换行,是这样的:第一行第二行(换......
  • C++学生信息管理 1.0记录
    C++学生信息管理1.0记录 该信息管理没有太多可支持的操作,仅有一些基础设置,后续优化中将添加更多功能。一.头文件引用和命名空间声明#include<iostream>//输入输出操作#include<string>//字符串操作usingnamespacestd;//为方便使用,不需要在cout,string等前方加......
  • MeterSphere接口自动化系列之Sql前后查询依赖场景
    一、使用场景    需要多次查询数据,并对查询结果进行比较,查询的前后存在依赖,多条记录循环处理。二、实际场景实例本文的场景如下:        先查询结果表信息,根据结果表的字段作为条件,用于后续源数据查询语句的条件,并根据源数据算术运算后的结果和结果表的实际......
  • 第 390 场周赛记录-快手
    1.每个字符最多出现两次的最长子字符串给你一个字符串s,请找出满足每个字符最多出现两次的最长子字符串,并返回该子字符串的最大长度。示例1:输入:s="bcbbbcba"输出:4解释:以下子字符串长度为4,并且每个字符最多出现两次:"bcbbbcba"。示例2:输入:s="aaaa"输出:2解......
  • 数据库表创建 - 主键约束:在创建数据库表时,可以使用主键约束来唯一标识记录
    数据库表创建-主键约束在数据库设计和管理中,创建数据库表是一个关键步骤。在创建数据库表时,一个重要的概念是主键约束。主键约束用于唯一标识表中的每条记录,它在确保数据完整性和查询效率方面起着至关重要的作用。本文将深入探讨主键约束的概念、作用以及在数据库表创建......
  • PointNet++论文复现(二)【最远点采样-球查询-采样和分组 代码详解】
    最远点采样-球查询-采样和分组-代码详解专栏持续更新中!关注博主查看后续部分!最远点采样、球查询等位于pointnet2_utils.py定义点云坐标归一化点云坐标归一化是一种预处理步骤,用于将点云数据标准化到一个统一的尺度,通常是在一个特定的范围内,比如[-1,1]或[0,1]。这一......
  • 黑马Java0基础课程学习记录第五天(p49-p53)-3.23
    day05-循环高级训练+leecode练习1.无限循环2.条件控制语句breakcontinuecontinue:不能单独存在的,只能存在于循环当中。表示:跳过本次循环,继续执行下次循环。eg:break:不能单独存在的。可以用在switch和循环中,表示结束,跳出的意思。eg:练习1:逢7过游戏:从1-100打印......