Mysql基础(一)-查询笔记

最近在b站学习mysql,做下简单记录

sql基础查询

进阶一:

特点:

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

先打开库

use myemmployees;

select 用来查询
desc 用来显示表结构


1.查询表中单个字段

如:

select last_name from employees;

2.查询表中的多个字段

select last_name,salary,email from employees;

3.查询表中所有字段

select * from employees;

4.查询常量值

select 100;
select 'john';

5.查询表达式

select 100%98

6.查询函数

select version();

7.为字段起别名

  1. 便于理解
  2. 如果要查询的字段有重名,可以用别名区分

方式一:使用AS

select 100%98 AS 结果
select last_name AS 姓,first_name AS 名 from employees;

方式二:使用空格

select last_name 姓,first_name 名 from employees;

案例:查询salary,显示结果为out put

 select salary AS "out put" from employees
 (此处因为out是关键字,故所以需要将Out put用引号引起来才能显示出)

8.去重

案例:查询员工表中涉及到的所有部门的编号

select distinct department_id from employees;

若不加 distinct 则有些相同的部门编号会重复出现,加上后不同的部门编号只会出现一次

9.+的作用

java中的+号:

  1. 做运算符
  2. 做连接符,只要有一个操作为字符串

mysql中的+号:

仅仅只有一个功能:做运算符

如:

select 100+90;两个操作数都为数值型,则作加法运算

select '123'+90:如其中一方为字符型,试图将字符型转化为数值型,如果转换失败,则将字符型数值转化为0,再做加法运算

select 'john'+90 如果转换失败,则将字符型数值转化为0,再做加法运算

select null+10; 只要有一方为null,则结果肯定为null

案例:查询员工名和姓连接成一个字段,并显示为 姓名

使用concat()函数进行拼接

select concat('a','b','c') AS 结果
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

进阶二:##

语法:</br>
select  查询列表  from  表名  where  筛选条件

筛选条件的分类:

  1. 按条件表达式筛选

    条件运算符: >,<,= != < >= <=
  2. 按逻辑表达式筛选:

    逻辑运算符:&& || ! and or not
  3. 模糊查询

    like,between and in is null

一. 按条件表达式筛选

案例1:查询工资>12000的员工信息

select from emplomees where salary>12000;

案例2:查询部门编号不等于90号的员工名和部门编号

select last_name,department_id from emplyees where department_id!=90

二. 按逻辑表达式筛选

案例1:查询工资z在10000到20000之间的员工名,工资及奖金

select last_name,salary,commission_pct from emplyees where salary>=10000 AND salary<=20000

三. 模糊查询

like

特点:一般和通配符搭配使用

between and

特点:包含临界值

in

特点:in列表的值类型必须一致或是兼容

is null is not null

特点:= !=不能判断带null的值

1. like

案例1:查询员工名中包含字符a的员工信息

select * from employees where last_name like '%a%';

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

select last_name,salary from employees where last_name like '__e_a';

2. between and

案例1:查询员工编号在100到129之间的员工信息

select * from employees where employees_id>=100 and employees_id<=120

或是
select * from employees where employees_id between 100 and 120

3. in

案例1:查询员工工种编号是IT_PROG,AD_VP中的一个员工名和工种编号

select last_name ,job_id from employees where job_id='IT_PROG' or job_id='AD_VP';

或是
select last_name ,job_id from employees where job_id in ('IT_PROG' ,'AD_VP');

4. is null

案例1:查询没有奖金的员工名

select last_name from employees where commission_pct is null

<=>安全等于 用于判断是否等于

is null 仅仅用于判断 是否为null值

进阶三:##排序查询

即显示出一个排序后的结果
语法:

select 查询列表 from 表 【where 筛选条件】 order by 排序列表 【asc|desc】

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

select * from employees order by salary desc;(降序)
 select * from employees order by salary asc;(升序,默认是升序)
posted @ 2020-02-19 21:29  pathjh  阅读(433)  评论(0编辑  收藏  举报