选中指定的数据库
USE myemployees;
基础查询
语法
select 查询列表 from 表名;
- 查询列表可以是:表中的字段、常量值、表达式、函数
- 查询结果是一个虚拟的表格
1.1查询表中的单个字段
SELECT last_name FROM employees;
1.2查询表中的多个字段
SELECT last_name,salary,email FROM employees;
1.3查询所有字段
方法1:
SELECT * FROM employees;
方法2:(SQLyog中选中后F12可排出下面效果)
SELECT
`first_name`,
`last_name`,
`email`,
`phone_number`,
`job_id`,
`salary`,
`commission_pct`,
`manager_id`,
`department_id`,
`hiredate`
FROM
employees ;
1.4 查询常量值
SELECT 100;
SELECT 'john';
1.5查询表达式
SELECT 100%98;
1.6查询函数
SELECT VERSION();
2.起别名
好处:便于理解。通过下面两条语句展示。
未取别名时:
SELECT 100%98;
结果为:
起别名后:
SELECT 100%98 AS 结果;
结果为:
另一个好处,如果要查询的字段有重名的情况,使用别名可以区分开来。
两种起别名的方法
方法1:使用as
SELECT last_name AS 姓,first_name AS 名 FROM employees;
方法2:使用空格
SELECT last_name 姓,first_name 名 FROM employees;
建议别名加双引号。
SELECT salary AS "out put" FROM employees;
3.去重
案例:查询员工表中涉及到的所有部门的编号
如果用下面这条语句,则会出现重复值,而我们需要的是非重复值
SELECT department_id FROM employees;
去重查询:
SELECT DISTINCT department_id FROM employees;
4.+号的作用
说明:
案例:查询员工名和姓连接成一个字段,并显示为 姓名
SELECT last_names+first_name AS 姓名 FROM employees;
将报错,这说明在mysql中+号的作用并不是连接字符串。
在mysql中只有一个功能:运算符。
两个操作数都为数值型,则做加法运算
SELECT 100+90;
如果其中一方为字符型,试图将字符型数值转换成数值型如果转换成功,则继续做加法运算。如果转换失败,则将字符型数值转换成0.
SELECT '123'+90; /*转换成功,结果为213*/
SELECT 'john'+90; /*转换失败,结果为90*/
只要其中一方为null,则结果可定为null.
SELECT NULL+90; /*结果为null*/
上述案例的解答:
SELECT
CONCAT (last_name,first_name) AS 姓名
FROM
employees;
小测试
1.显示表department的结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments;
2.显示出表employees中的全部job_id(不能重复)
SELECT DISTINCT job_id FROM employees;
3.显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
补充知识点:
ifnull(a,b),如果a为null,则返回b。
SELECT
IFNULL(commission_pct,0) AS 奖金率,commission_pct
FROM
employees;
结果:
题目解答:
SELECT
CONCAT(
`first_name`,
',',
`last_name`,
',',
`job_id`,
',',
IFNULL(`commission_pct`, 0)
) AS "OUT_PUT"
FROM
employees ;
结果: