一.基础查询
- 语法:
select 查询列表 from 表名 - 特点:
1.查询列表可以是:表中的字段、常量值、表达式、函数
2.查询的结果是虚拟的表格
注意:查询之前,要打开指定的库,use myemployees;
USE myemployees;
1.查询表中的单个字段
SELECT last_name FROM employees;
2.查询表中的多个字段
SELECT last_name,salary,email FROM employees;
3.查询表中的所有字段
SELECT*FROM employees;
-- 顺序和表中的字段一样
4.查询常量值
SELECT 100;
SELECT 'JOIN';
注意⚠️:字符型和日期型的常量值必须单引号引起来,数值型不需要。
5.查询表达式
SELECT 100*99;
6.查询函数
SELECT VERSION();-- 8.0.11
7.起别名
/*
好处:
1.便于理解
2.如果要查询的字段有重名的情况,使用别名可以区分开
*/
方式一 使用as
SELECT 100*77 AS 结果 haha;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
方式二 使用空格
SELECT 100*77 结果 haha;
SELECT last_name 姓,first_name 名 FROM employees;
案例:查询salary,显示结果为out put
-- SELECT salary AS OUT put FROM employees;会报错
-- 因为out是关键词,所以,如果别名里面有关键词的,请加双引号,或者单引号。
SELECT salary AS "OUT put" FROM employees;
8.去重 distinct
查询员工表中涉及到的所有部门编号
SELECT DISTINCT department_id FROM employees;
注意⚠️:select distinct a,b from employees;错误❌,distinct只能有一个字段
9.+号的作用
/*
1.+号只有一个功能:运算符。
select 100+90; 这个做加法
2.SELECT NULL+10; --只要一方为NULL,则结果肯定是NULL。
3.select 字符+数值:先试图将字符转成数值,如果转成功,则继续运算,如果不成功则转成0,再进行计算
*/
案例:查询员工名和姓连接成一个字段,并显示为姓名
-- 错误❌:SELECT last_name+first_name AS 姓名 FROM employees;
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;
10.显示表的结构 DESC
题:显示departments的结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments;
显示employees中的全部job_id,不能重复
SELECT DISTINCT job_id FROM employees;
显示出表employees的全部列,各个列直接用逗号连接,列头显示OUT_PUT
-- commission_pct有些值是NULL
-- 因为NULL和谁拼接都是NULL
-- 所以下面的结果可能为NULL
SELECT CONCAT(employee_id,',',first_name,',',last_name,",",commission_pct) AS "OUT_PUT" FROM employees;
select ifnull 判断是否为空
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
SELECT IFNULL(commission_pct,0) AS 奖金率,commission_pct FROM employees;
-- 上面题的做法:
SELECT CONCAT(employee_id,',',first_name,',',last_name,",",IFNULL(commission_pct,0)) AS "OUT_PUT" FROM employees;
select isnull 函数
功能:判断参数是否为null,是null就返回1.不是null就返回0
select isnull(commission_pct) AS 奖金率,commission_pct FROM employees;