当前位置:   article > 正文

MYSQL 4天速成------第一天_mysql 查询出薪水大于 1000 的所有员工及所在的部门

mysql 查询出薪水大于 1000 的所有员工及所在的部门

MYSQL5天速成之第一天

MYSQL常用命令

查看当前所有的数据库show databases;
打开指定的库use 库名;
查看当前库的所有表show tables;
查看其它库的所有表show tables from 库名;
创建表create table 表名(列名 列类型,…)
查看表的结构desc 表名;
查看服务器的版本1.登录到mysql 服务端 select version();
2.没有登录mysql 服务端 mysql – version / mysql -v

基础查询

select  查询字段  from  表名;
  • 1

查询字段:
1.表中的字段、常量值、表达式、函数
2.查询的结果是一个虚拟的表格

  • 查询表中的某个字段select lastname from employees;
  • 查询表中的多个字段select lastname,email from employees;
  • 查询所有字段 select * from employees;
  • 查询常量值 select 100;
  • 查询表达式 select 100%98;
  • 查询函数select version();
  • 起别名 好处:1.便于理解 2.如果要查询的字段有重名的情况,使用别名进行区分
    使用as select lastname as 女生,firstname as 名 from employees;
使用空格    select  lastname  女生, firstname  名 from employees ;
  • 1

查询salary,显示结果为output

select salary as 'output' from employees;
  • 1
  • 去重 (加一个distinct)
    查询员工表中涉及到所有部门的部门编号
select  distinct  department_id from employees;
  • 1
  • +号的作用
    mysql中的+号只有一个作用=运算符
    查询员工名和姓连接成一个字段,并显示姓名
select lastname + firstname as 姓名 from employees;错误写法
  • 1

这种常用拼接concat select concat(‘a’,‘b’,‘c’)as 结果;

select concat(lastname,firstname) as 姓名 from employees;
  • 1
两个操作数都为数值型,则做加法运算select 100+60;
如果其中一个为字符型,试图将字符型数值转换成数值型 转换成功则继续做加法select ‘123’+60;
如果转换失败,则将字符型数值转换为0select ‘ABC’+90;
其中一方为null,则结果肯定为nullselect null+10;
  • 显示表departments结构,并显示其中的全部数据
desc departments;
select * from departments;
  • 1
  • 2
  • 显示出表employees 中的全部job_id(不能重复)
select distinct job_id from employees;
  • 1
  • 显示出表employees的全部列,各个列之间用逗号连接,列头显示成output
select concat (‘列名’,‘,’,‘列名’) as  output from employees;
  • 1

条件查询

select  查询列表  from 表名  where  筛选条件;
  • 1

分类:
1.按条件表达式筛选:> < = != <> >= <=
2.按逻辑运算符筛选: && || ! and or not
3.模糊查询:like between and in is null

查询工资大于1000的员工信息

select  * from  employees where salary >1000
  • 1

查询部门编号不等于90号的员工名和部门编号

select lastname ,department_id from  employees where department_id !=90;
  • 1
&&和and两个条件都为true的时候,结果为true 反之为false
ll或or只要有一个条件为true,结果为true,反之flase
!或not如果连接的条件本身为false,结果为true,反之为false

查询工资在1000到2000之间的员工名、工资以及奖金

select lastname,salary,commission_yet from employees where salary between 1000 and 2000;
  • 1

查询部门编号不是在90到100之间或者是工资高于15000的员工信息

select * from employees where department_id not between 90 and 100 or salary >15000; 
  • 1

模糊查询

查询员工名中包含字符a的员工信息

select * from employees where lastname like '%a%';
  • 1

查询员工名中第三个字符为e,第五个字符为a的员工名和工资

select lastname,salary from employees where lastname like '--e-a%';
  • 1

查询员工名中第2个字符为_的员工名

select lastname from employees where lastname like "-\-%";
或者
select lastname from employees where lastname like '-$-%'escape '$';
  • 1
  • 2
  • 3

like特点:一般和通配符搭配使用
通配符:%任意多个字符,包含0个字符 -任意单个字符
特殊字符的查询:需要用escape语句。但是经测试不能用escape ‘’,所以用escape ‘/’
先将参数中 / 替换成 //,% 替换成 /%,_ 替换成 /_,\ 替换成 /\;
然后在每个需要like查询的字段后加上escape ‘/’。

查询员工编号在100到200之间的员工信息

select * from employees where employees_id between 100 and 120;
  • 1

between and :
1.提高语句的简洁度
2.包含临界值
3.两个临界值不要调换顺序

查询员工的工种编号是if_prog,ad_vp,ad_pres中的一个员工名和工种编号

select job_id,lastname from employees where job_id in ('if_prog','ad_vp','ad_pres');
  • 1

含义:判断某字段的值是否属于in列表中的某一项
特点:
1.使用in提高语句的简洁度
2.in的列表值类型必须统一或者兼容
3.不支持通配符

查询没有奖金的员工和奖金率

select  lastname,commission_pet from employees where salary is null;
  • 1

查询员工号为176的员工姓名和部门号以及年薪

select lastname,department_id,salary*12 as 年薪 from employees where job_id = 176; 
  • 1

=或<>不能用于判断null值,is null 或者 is not null 可以判断null值

排序查询

select 查询列表 from 表 where 筛选条件 order by 排序列表 asc(升序 默认) / desc (降序);
  • 1

order by 字句中:
1.可以支持单个字段、多个字段、表达式、函数、别名
2.一般放在查询的最后面,limit 子句除外

查询员工信息,要求工资从高到低排序

select  * from employees order by salary desc;
  • 1

查询部门编号大于等于90的员工信息,按入职时间的先后进行排序

select * from employees where department_id >=90 order by time asc;
  • 1

按年薪的高低显示员工信息和年薪

select *,salary*12 年薪 from employees order by salary*12 desc;
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/551418
推荐阅读
相关标签
  

闽ICP备14008679号