查看岗位描述不为NULL的员工信息 5. 查看岗位是teacher且薪资是10000或9000或30000的员工姓名、年龄、薪资 6....查询岗位名以及各岗位的最高薪资 6. 查询岗位名以及各岗位的最低薪资 7. ...查询男员工与男员工的平均薪资,女员工与女员工的平均薪资 #题1:分组 mysql> select post,group_concat(name) from employee group by post;...查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资升序排列 3....查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资降序排列 #题目1 mysql> select * from employee ORDER BY age asc,hire_date desc
oracle: 1).收费的(贵) 2).数据的存储量大,安全性高、效率比较快 mysql: 1).免费 2).数据的存储量小(相对而言的),安全系数以及效率方面较低(相对而言的) sql:...,然后自己分析一下(理解一下)sql的机制!...、表名、列名这些内容的书写,大小小写无所谓(都能识别) ②.sql语句对于字符串数据层面的书写,必须严格区分大小写 ③.一条sql语句可以显示的在多行中书写,一般我们按照各个子句(关键字)适当的进行换行...:升序、降序 order by子句: 关键字: 升序:asc 降序:desc 案例练习: ①.查询员工的编号、姓名、薪资以及部门号,然后以薪资进行升序排列 select employee_id...,先以薪资进行升序排列,如果薪资重复了,再以姓名降序排列 select employee_id,last_name,salary,department_id from employees order
作为结构化查询语言 SQL 的语法相对于其他编程语言非常简单,常用的关键字也就几个,完成同样的统计功能,SQL 代码量较少,我们很容易将 SQL 代码映射到二维表中的数据,SQL 不同操作的代码其实就是对应着二维表的不断变换...由于SQL语句学习简单,表达能力强,上手容易的有点,所以在数据处理中SQL语句就成为了最通用的和最优先考虑处理方式。在大数据中 SQL 应用主要分两种:一种是周期性的统计任务,另一种是分析任务。...但是对于大数据处理来说,大量数据的复杂关联,使得SQL语句变得极为复杂并且团队中的每个人都可能有自己编写SQL的习惯,如果没有一套规范我们所编写的SQL语句肯定会令人别人难以阅读,甚至过了一段时间以后自己都无法理解...总结 SQL 数据分析、数据科学、数据工程甚至软件开发的基础之一:学习简单,表达能力强,上手容易是他最大的特点,并且到现在为止各种开发语言,开发框架的变更,SQL的地位却无人撼动,并且各种工具纷纷兼容(...在本文中总结的这些SQL规范都是基于我个人意见,这里可能有些是有争议的,但是我希望从这里能给你一些不同的启发。希望它能帮你将 SQL 质量提升到一个新的水平!
] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr...查看岗位是teacher且薪资在9000-10000范围内的员工姓名、年龄、薪资 mysql> select name,age,salary from staff where post=...查看岗位是teacher且薪资是10000或9000或30000的员工姓名、年龄、薪资 mysql> select name,age,salary from staff where post...查看岗位是teacher且薪资不是10000或9000或30000的员工姓名、年龄、薪资 mysql> select name,age,salary from staff where post...1.获取每个部门的员工数 2.获取每个部门的最高工资 3.获取男生人数和女生人数 #提示:如果先分组,必须要把全局的sql模块改为ONLY_FULL_GROUP_BY #修改方法: 1.登录进去改mysql
字段是表 t4_employee 中 employee_id 字段的外键。...维度 评分 题目难度 ⭐️⭐️⭐️ 题目清晰度 ⭐️⭐️⭐️⭐️⭐️ 业务常见度 ⭐️⭐️⭐️ 三、SQL 1.在薪资表中关联出雇员的部门 薪资表关联雇员表,计算出每个雇员所属部门,调整pay_date...t2 on t1.employee_id = t2.employee_id SQL结果 +-----+--------------+---------+---------...------+----------------+ +-----------+-----------+-------------+-------------+-----+ 2.开窗计算出部门和公司当月的平均薪资...,得出最终比较结果 通过比较department_avg_amount和company_avg_amount的大小,得出部门和工资平均薪水的大小 执行SQL with t as (select t1.id
SQL 关键字、表名、列名)大小写不敏感 #创建table employee c.execute('''CREATE TABLE employee (ID INTEGER PRIMARY...c.execute("SELECT name, salary FROM employee WHERE name LIKE '%d%'") print("名字(含'd'), 薪资:") for row....connect(":memory:") c = conn.cursor()#创建游标 #SQL 语句(包含SQL 关键字、表名、列名)大小写不敏感 #创建table employee c.execute...虽然 SQL 标准定义了三种类型的外连接: LEFT、RIGHT、FULL,但 SQLite 只支持 左外连接(LEFT OUTER JOIN)。...* from employee") print(c.fetchone()) #报错 sqlite3.OperationalError: no such table: employee SQLite 的功能远多于前面介绍的这些
查看岗位是teacher且薪资是10000或9000或30000的员工姓名、年龄、薪资 6. 查看岗位是teacher且薪资不是10000或9000或30000的员工姓名、年龄、薪资 7....5.7默认的sql_mode如下: mysql> select @@global.sql_mode; ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE...#max()统计分组后每组的最大值,这里没有写group by,那么就是统计整个表中所有记录中薪资最大的,薪资的值 SELECT MIN(salary) FROM employee;...查询岗位名以及各岗位内包含的员工个数 3. 查询公司内男员工和女员工的个数 4. 查询岗位名以及各岗位的平均薪资 5. 查询岗位名以及各岗位的最高薪资 6. 查询岗位名以及各岗位的最低薪资 7....查询男员工与男员工的平均薪资,女员工与女员工的平均薪资。
SQL是数据分析必备的技能了,面对数据分析问题如何快速写出一手漂亮的SQL是初学者最大的难题,本篇分享3个常考数据分析题,摘自《SQL数据分析:从基础破冰到面试题解》一书中。...employee_name(员工姓名):VARCHAR。 employee_salary(员工薪资):INT。 department(员工所属部门ID):VARCHAR。...输出内容包括: employee_id(员工ID) employee_name(员工姓名) employee_salary(员工薪资) department_id(员工所属部门名称) 结果样例如下图所示...2作为薪资第二高的条件进行WHERE筛选,选择需要的列,即可得到结果。...本题的SQL代码如下,供读者参考: SELECT a.employee_id ,a.employee_name ,a.employee_salary ,b.department_id
一、题目 1、算法题目 “编写SQL查询,获取并返回Employee表中第二高的薪水,查询应该返回null。” 题目链接: 来源:力扣(LeetCode) 链接: 176....第二高的薪水 - 力扣(LeetCode) 2、题目描述 Employee 表: +-------------+------+ | Column Name | Type | +-------------...表的每一行包含员工的工资信息。 编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。 查询结果如下例所示。...SecondHighestSalary | +---------------------+ | null | +---------------------+ 二、解题 1、思路分析 将表中的薪资进行排序...,然后使用 LIMIT 子句得到第二高的薪资。
在数据类岗位招聘过程中,经常会考察求职者的SQL能力,这里整理了3个常考的SQL数据分析题,按照由简单到复杂排序,一起来测试一下你掌握了么? PS:以下SQL代码在MySQL8.0及其以上版本运行。...employee_name(员工姓名):VARCHAR。 employee_salary(员工薪资):INT。 department(员工所属部门ID):VARCHAR。...输出内容包括: employee_id(员工ID) employee_name(员工姓名) employee_salary(员工薪资) department_id(员工所属部门名称) 结果样例如下图所示...2作为薪资第二高的条件进行WHERE筛选,选择需要的列,即可得到结果。...本题的SQL代码如下,供读者参考: SELECT a.employee_id ,a.employee_name ,a.employee_salary ,b.department_id
10000或9000或30000的员工姓名、年龄、薪资 mysql> select name,age,salary from employee where post='teacher' and salary...10000或9000或30000的员工姓名、年龄、薪资 mysql> select name,age,salary from employee where post='teacher' and salary... by post,只能查看post字段,如果想查看组内信息,需要借助 于聚合函数 当执行以下sql语句的时候,是以post字段查询了组中的第一条数据,没有任何意义,因为我们现在想查出当前组的多条记录...,但其实这是没有意义的,如果想分组,则必须要设置全局的sql的模式为ONLY_FULL_GROUP_BY mysql> set global sql_mode='ONLY_FULL_GROUP_BY';...,女员工与女员工的平均薪资 mysql> select sex,avg(salary) from employee group by sex; +--------+---------------+ |
大家好,我是接地气的陈老师,在数据类岗位招聘过程中,经常会考察求职者的SQL能力,这里整理了3个常考的SQL数据分析题,按照由简单到复杂排序,一起来测试下你掌握了么?...PS:以下SQL代码在MySQL8.0及其以上版本运行。 题目1:找出每个部门工资第二高的员工 现有一张公司员工信息表employee,表中包含如下4个字段。...employee_id(员工ID):VARCHAR。 employee_name(员工姓名):VARCHAR。 employee_salary(员工薪资):INT。...2作为薪资第二高的条件进行WHERE筛选,选择需要的列,即可得到结果。...本题的SQL代码如下,供读者参考: SELECT a.employee_id ,a.employee_name ,a.employee_salary ,b.department_id
| 60000 | NULL | | 4 | Max | 90000 | NULL | +----+-------+--------+-----------+ 查找薪资大于其经理薪资的员工信息...SQL Schema DROP TABLE IF EXISTS Employee; CREATE TABLE Employee ( Id INT, NAME VARCHAR ( 255 ), Salary...可以对部门进行分组,然后使用 MAX() 汇总函数取得最大薪资。 之后使用连接找到一个部门中薪资等于临时表中最大薪资的员工。...SQL Schema DROP TABLE IF EXISTS Employee; CREATE TABLE Employee ( Id INT, Salary INT ); INSERT INTO...Nth Highest Salary Description 查找工资第 N 高的员工。 SQL Schema 同 176。
在 SQL 中使用子查询而没有 FROM 子句的情况通常是为了计算一个表达式或获取一个基于特定逻辑的单一结果,子查询本身提供了数据来源和处理逻辑,无需再通过 FROM 从物理表中获取数据。...但在实际应用中,需要考虑性能和可维护性,避免过度复杂的子查询结构。...= e2.id and e1.salary > e2.salary; SQL解释 表的自连接: from Employee e1, Employee e2 这里将 Employee 表自连接,使用别名...>= all (select salary from Employee t where e.departmentId = t.departmentId); 员工薪资 ≥ 相同部门的薪资。...GROUP BY DepartmentId); where 条件 绑定了部门 id 和 薪资水平 in 查出来的 部门id 和最高的薪资水平。
11000的员工信息(编号、名字、薪资) SELECT employee_id , first_name , salary FROM t_employees WHERE salary = 11000;...注意:与 java 不同(==),mysql 中等值判断使用 = 2.4.2 逻辑判断(and、or、not) #查询薪资是11000并且提成是0.30的员工信息(编号、名字、薪资) SELECT employee_id...= 、) #查询员工的薪资在6000~10000之间的员工信息(编号,名字,薪资) SELECT employee_id , first_name , salary FROM t_employees...#查询员工信息(编号,名字,薪资 , 薪资级别) SELECT employee_id , first_name , salary , department_id ,...先对所有员工的薪资进行排序(排序后的临时表) select employee_id , first_name , salary from t_employees order by salary desc
小练习: 1 查出所有员工的名字,薪资,格式为 薪资:3000> 2 查出所有的岗位(去掉重复) 3 查出所有员工名字,以及他们的年薪,年薪的字段名为annual_year...查看岗位是teacher的员工姓名、年龄 2. 查看岗位是teacher且年龄大于30岁的员工姓名、年龄 3. 查看岗位是teacher且薪资在9000-10000范围内的员工姓名、年龄、薪资 4....查看岗位描述不为NULL的员工信息 5. 查看岗位是teacher且薪资是10000或9000或30000的员工姓名、年龄、薪资 6....查询岗位名以及各岗位的最高薪资 6. 查询岗位名以及各岗位的最低薪资 7. 查询男员工与男员工的平均薪资,女员工与女员工的平均薪资 ? ? ?...查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资升序排列 3. 查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资降序排列 ? ?
结合创建存储过程的 SQL 语句代码可以得出:在存储过程中未定义条件和处理程序,且当存储过程中执行的 SQL 语句报错时,MySQL 数据库会抛出错误,并退出当前 SQL 逻辑,不再向下继续执行。...流程控制 解决复杂问题不可能通过一个 SQL 语句完成,我们需要执行多个 SQL 操作。流程控制语句的作用就是控制存储过程中 SQL 语句的执行顺序,是我们完成复杂操作必不可少的一部分。...判断该员工的入职年限,如果是 0 年,薪资涨 50;如果是 1 年,薪资涨 100;如果是 2 年,薪资涨 200;如果是 3 年,薪资涨 300;如果是 4 年,薪资涨 400;其他的涨薪 500。...游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构。游标让 SQL 这种面向集合的语言有了面向过程开发的能力。...函数的功能可以实现累加薪资最高的几个员工的薪资值,直到薪资总和达到 limit_total_salary 参数的值,返回累加的人数给 total_count。
结合创建存储过程的SQL语句代码可以得出:在存储过程中未定义条件和处理程序,且当存储过程中执行的SQL语句报错时,MySQL数据库会抛出错误,并退出当前SQL逻辑,不再向下继续执行。...流程控制 解决复杂问题不可能通过一个 SQL 语句完成,我们需要执行多个 SQL 操作。流程控制语句的作用就是控制存储过程中 SQL 语句的执行顺序,是我们完成复杂操作必不可少的一部分。...判断该员工的入职年限,如果是 0 年,薪资涨 50 ;如果是 1 年,薪资涨 100 ;如果是 2 年,薪资涨 200 ;如果是 3 年,薪资涨 300 ;如果是 4 年,薪资涨 400 ;其他的涨薪...游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构。 游标让 SQL 这种面向集合的语言有了面向过程开发的能力。...函数的功能可以实现累加薪资最高的几个员工的薪资值,直到薪资总和达到limit_total_salary参数的值,返回累加的人数给total_count。
领取专属 10元无门槛券
手把手带您无忧上云