Day39-MySQL


一、基本查询

语法:SELECT 列名1,列名2,列名3 FROM 表名

#查询t_employees表中所有员工的所有信息
SELECT * FROM t_employees;
SELECT 所有的列名 FROM t_employees;

经验:生产环境下,优先使用列名查询。*的方式虽然看起来便捷,但实际上需要转换成全列名,效率低,可读性差


对列中的数据进行运算

语法:SELECT 列名+2,列名*5,列名/13 FROM 表名

没有%,%在数据库里代表的是占位符。


列的别名

语法:列名 AS ‘想叫的列名’

#查询员工表中所有员工的编号、姓名、日薪(列的运算 / 22),列名均为中文
SELECT EMPLOYEE_ID AS '编号',FIRST_NAME AS '姓',LAST_NAME AS '名',SALARY / 22 AS'日薪' FROM t_employees;
#起别名,没有对原表的列名发生影响

查询结果去重

语法:distinct 列名

#查询员工表中,所有经理的ID编号
SELECT DISTINCT MANAGER_ID AS '经理编号' FROM t_employees;
#查询员工表中,所有的工资 (去掉重复的)
SELECT DISTINCT SALARY FROM t_employees;

二、排序查询

SELECT 列名 FROM 表名 ORDER BY 排序列名 [排序规则]

#查询员工的编号,名字,薪资,按照工资进行升序排序
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees ORDER BY salary ASC;
#查询员工的编号,名字,薪资,按照姓名进行升序排序
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees ORDER BY FIRST_NAME;
#查询员工的编号,名字,薪资,按照工资进行降序排序
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees ORDER BY salary DESC;

经验:当进行升序排序时,排序规则可以不显示声明。默认为升序排序规则


三、条件查询

语法: SELECT 列名 FROM 表名 WHERE 条件

值判断
#查询工资为2500的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees WHERE salary = 2500;
#查询姓为Steven的
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees WHERE FIRST_NAME='Steven';
#查询员工工资大于6000的员工的信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees 
WHERE salary>=6000;
#查询员工工资不等于2500的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees 
WHERE salary<>2500;(!=同理) 

逻辑判断(and、or、not)
#查询员工工资在6000~10000的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary>=6000 AND salary<=10000;

#查询工资是10000的或者是9000的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary =10000 OR salary = 9000;

#查询除了工资是10000的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE NOT salary =10000;

区间判断(between and)
#区间判断 包含区间边界的两个值
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary BETWEEN 6000 AND 10000;

注意:between and要遵循 between 小值 and 大值;


NULL值判断(IS NULL、IS NOT NULL)
#查询出 没有经理编号的员工 IS NULL
SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID FROM t_employees
WHERE MANAGER_ID IS NULL;

#查询出 没有经理编号以外的员工信息
SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID FROM t_employees
WHERE MANAGER_ID IS NOT NULL;

#查询出 没有经理编号以外的员工信息(此处NOT为取反。两个结果)
SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID FROM t_employees
WHERE NOT MANAGER_ID IS NULL;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值