当前位置:   article > 正文

第一天MySQL总结:sql的查询_表中工资加1000的sql语句

表中工资加1000的sql语句

下面是表名和表数据

7cac84323408427f9759cf451a2c8c8c.png

1.MySQL的最原始查询

  1. SELECT salary, salary+1000 new_salary
  2. FROM employees;

1cc0e005268a442aa3a1aec8eb22323b.png

由图可看出来:字段名 新的别名。

2.过滤

2.1查询薪水在6000-10000之间

  1. SELECT first_name,salary
  2. FROM employees
  3. #where salary>=6000 && salary<=10000;
  4. #另一种写法
  5. #where salary>=6000 and salary<=10000;
  6. #还有一种
  7. WHERE salary BETWEEN 6000 AND 10000;

872efe448d074676bee322a3ac7892ce.png

2.2查询30和50号部门中所有的员工

  1. SELECT first_name,department_id
  2. FROM employees
  3. #where department_id=30 || department_id=50;
  4. #where department_id=30 or department_id=50;建议这个
  5. WHERE department_id IN(30,60);#和上面的都一样

3eac2f1ce4fc408888445479cec82724.png

2.3员工的奖金率为null的员工是谁

  1. SELECT first_name,commission_pct
  2. FROM employees
  3. WHERE commission_pct IS NULL;#不能写成=null

反过来,查询不为null的员工

WHERE commission_pct IS NOT NULL;

2.4查询员工工资不在6000-10000之间的

  1. SELECT salary,first_name
  2. FROM employees
  3. WHERE salary NOT BETWEEN 6000 AND 10000;

1f474b5c528a48e79f8e81e144e33c29.png

3.模糊查询

3.1查询员工的姓名中包含f的有哪些

  1. SELECT first_name
  2. FROM employees
  3. WHERE first_name LIKE '%f%';#%表示任意个数的任意字符

3.2查询员工中姓名中第二个字符为d的员工有哪些

  1. SELECT first_name
  2. FROM employees
  3. WHERE first_name LIKE '_d%';#%_表示任意一个字符 \_表示_

3.3escape:指定转义字符

  1. SELECT first_name
  2. FROM employees
  3. WHERE first_name LIKE '_$_%' ESCAPE '$';#指定$为转义字符

再换一个

  1. SELECT first_name
  2. FROM employees
  3. WHERE first_name LIKE '_p_%' ESCAPE 'p';

3.4查询员工姓名中既包含a又包含e的有那些

  1. SELECT first_name
  2. FROM employees
  3. WHERE first_name LIKE '%a%e%'OR first_name LIKE '%e%a%';
  4. #或者:where first_name like'%a%' and first_name like'%e%';

4.排序 1.asc-升序 2.desc-降序

4.1查询员工姓名和薪水并按照薪水排序 默认升序

  1. SELECT first_name,salary
  2. FROM employees
  3. ORDER BY salary DESC;
  4. #ORDER BY salary asc;

4.2查询80号部门的所有员工的姓名和薪水并按照薪水升序

  1. SELECT first_name,salary
  2. FROM employees
  3. WHERE department_id=80
  4. ORDER BY salary ASC;

4.3查询给员工薪水+1000后的工资降序

  1. SELECT first_name,salary,salary+1000 new_salary
  2. FROM employees
  3. ORDER BY new_salary DESC;

4.4查询所有员工的名字,薪水,部门号。并对部门号将进行降序,若部门号一样,按薪水升序

  1. SELECT first_name,salary,department_id
  2. FROM employees
  3. ORDER BY department_id DESC ,salary ASC;

5.多表查询

以下是sql92语法

5.1查询员工的姓名和部门名称

  1. SELECT first_name,department_name
  2. FROM employees,departments
  3. WHERE employees.`department_id`=departments.`department_id`;

5.2查询员工的姓名,部门号,部门名称

在多表查询中若查询的字段是唯一的,那么可以在字段名前不用加表名。若不是唯一,
还是加上比较好。
在两个表中,如果字段是唯一的,它会需要查找所有的表来确定查找的字段;
若加上表明的话,它只会查找一个表,更有效率。

  1. SELECT employees.`first_name`,departments.`department_name`,departments.`department_id`
  2. FROM employees,departments
  3. WHERE employees.`department_id`=departments.`department_id`;

如果表名太复杂,可以起名;数据库是先执行 from 再执行其他的;

  1. SELECT d.`first_name` a,e.`department_name` b,e.`department_id` c
  2. FROM employees d,departments e
  3. WHERE d.`department_id`=e.`department_id`;

若没有where,则会产生的卡尔基的问题,也就是3*3,4*4那种意思;

  1. SELECT d.`first_name` a,e.`department_name` b,e.`department_id` c
  2. FROM employees d,departments e

以下是sql99语法:
select 字段名1,字段名2,....
from 表名1 join 表名2
on 连接条件
join 表名3
on 连接条件
.......
where 过滤条件
order by 字段名1 asc/desc, 字段名2 asc/desc,......

以下等值连接:连接条件使用的是等号 = ;     

以下非自连接:连接的两张表不是同一张。

5.3查询员工的姓名,部门号,部门名称

  1. SELECT d.`first_name` a,e.`department_name` b,e.`department_id` c
  2. FROM employees d JOIN departments e
  3. ON d.`department_id`=e.`department_id`;

以下自连接:同一张表;

5.4查询员工姓名以及该员工的管理者的姓名

  1. SELECT e1.`first_name` 员工姓名,e2.`manager_id`
  2. FROM employees e1 JOIN departments e2 #e1:当员工表,e2:当管理者表,其实为一张表;
  3. ON e1.`manager_id`=e2.`department_id`

以下非等值连接

5.5查询员工的薪水及等级

  1. SELECT e1.`first_name` , j.`GRADE`
  2. FROM employees e1 JOIN job_grades j
  3. #on e1.`salary` >= j.`LOWEST_SAL`and e1.`salary`<=j.`HIGHEST_SAL`;
  4. #还可用这种beteen
  5. ON e1.`salary` BETWEEN j.`LOWEST_SAL`AND j.`HIGHEST_SAL`;

6.以下是关于内、左外、右外、满外连接的示意图

4d65bf4839f84c349a5102b1f16b19bc.png

0fa79d6cd08c45cc9ea50681eea84151.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/950231
推荐阅读
相关标签
  

闽ICP备14008679号