理论
一、语法:
select 查询列表 from 表名
二、特点:
- 查询列表可以是:单个表中的字段、常数、表达式、函数,也可以是多个
- 查询的结果是一个虚拟的表格
三、示例:
1、查询单个字段
select 字段名 form 表名;
2、查询多个字段
select 字段名, 字段名 from 表名;
3、查询所有字段
select * from 表名;
4、查询常量
select 常量值;
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要
5、查询函数
select 函数名(实参列表);
6、查询表达式
select 100/24216
7、起别名
①as
②空格
8、去重
select distinct 字段名 from 表名;
9、+
作用:做加法运算
select 数值+数值:直接运算
select 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算,否则转换成0,在做运算
select null +值; 结果都为null
10、【补充】concat函数
功能:拼接字符
select concat (字符1,字符2,字符3,…)
11、【补充】ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
select ifnull(commossion_pct,0) from employees;
12、【补充】isnull函数
功能:判断某字符或表达式是否为null,如果是,则返回1,否则返回0
语法: select 查询列表 from 表名 特点:
1.查询列表可以是:表中的字段、常数、表达式,函数
2.查询的结果是一个虚拟的表格
USE employees;
案例
1.查询表中单个字段
SELECT last_name FROM employees;
2.查询表中段
SELECT last_name,salary,email FROM employees;
3.查询表中所有字段
#方式一:
SELECT
`first_name`,
`last_name`,
`email`,
`phone_number`,
`job_id`,
`salary`,
`commission_pct`,
`manager_id`,
`department_id`,
`hiredate`
FROM
employees;
#方式二:
SELECT * FROM employees;
4、查询常量值
SELECT 100;
select "join";
5、查询表达式
SELECT 100%98;
SELECT 100%98;
6、查询函数
SELECT VERSION();
7、起别名
①便于理解
②如果要查询的字段有重名的情况,使用别名可以区分开来
#方式一:使用as
SELECT 100%98 AS 答案;
SELECT
first_name AS 名,
last_name AS 姓,
salary AS 工资
FROM
employees;
#方式二:使用空格
SELECT first_name 名,last_name 姓 FROM employees;
8、去重
#案例:查询员工表中涉及到的所有部门的编号
SELECT DISTINCT department_id FROM employees;
9、+号的作用
仅仅只有一个功能:运算符 select 100+99;两个操作数为数值型,则做加法运算 select
‘123’+90;只要其中一方为字符型,试图将字符型数值转化为数值型,如果转移成功,则继续做加法运算 select ‘john’+90;
如果转换失败,则将字符型数值转化为0 select null+10;只要其中一方为null,则结果肯定为null
#案例:查询员工名和姓连接成一个字段,并显示为 姓名
SELECT CONCAT('a','b','c') AS 合并;
SELECT
CONCAT(last_name,'_',first_name) AS 姓名
FROM
employees;
10、其他案例
#1、显示表employees的结构,并查询其中的全部数据
DESC employees;
SELECT * FROM employees;
#2、显示出表employees中全部job_id(不能重复)
SELECT DISTINCT job_id FROM employees;
#3、显示表中employees的全部列。各个列之间用逗号相连,列头显示成out_put
SELECT
CONCAT(`first_name`,',',`last_name`,',',`salary`) AS OUT_PUT
FROM
employees;
#---------案例3的基础上看奖金率--------------------------
SELECT
CONCAT(`first_name`,',',`last_name`,',',`salary`) AS 姓名,
IFNULL (commission_pct,0) AS 奖金率
FROM employees;