本篇文章主要分享MySQL如何进行查询数据?主要知识点有以下部分:MySQL 的基本 查询,
约束和排序数据
MySQL 中常见的单行函数。
多表连接查询
外连接(OUTER JOIN)
SQL99 标准中的查询。
聚合函数。
数据组(GROUPBY)。
子查询
MySQL 中的正则表达式。
这部分内容是非常的重要,请惠存。
1 MySQL 的基本 查询
1.1MySQL 的列选择
SELECT * | 投影列 FROM 表名
1.1.1 示例
查询 departments 表中的所有数据
select * from departments;
1.2 MySQL 的行选择
SELECT * | 投影列 FROM 表名 WHERE 选择条件
1.2.1 示例
查询 departments 表中部门 ID 为 4 的部门名称与工作地点 ID。
select department_name,location_id from departments where department_id =4;
1.3 SELECT 语句中的 算术表达式
+ :加法运算
- :减法运算
* :乘法运算
/ :除法运算,返回商
% :求余运算,返回余数1 MySQL 的基本 查询
1.1MySQL 的列选择
SELECT * | 投影列 FROM 表名
1.1.1 示例
查询 departments 表中的所有数据
select * from departments;
1.2 MySQL 的行选择
SELECT * | 投影列 FROM 表名 WHERE 选择条件
1.2.1 示例
查询 departments 表中部门 ID 为 4 的部门名称与工作地点 ID。
select department_name,location_id from departments where department_id =4;
1.3 SELECT 语句中的 算术表达式
+ :加法运算
- :减法运算
* :乘法运算
/ :除法运算,返回商
% :求余运算,返回余数。
1.3.1 示例一
修改 employees 表添加 salary。
alter table employees add column salary float(9,2);
1.3.2 示例二
查询雇员的年薪。
select employees_id,last_name,email,12*salary from employees;
1.3.3 示例三
计算 employees 表中的员工全年薪水加 100 以后的薪水是多少?
select employees_id,last_name,email,12*salary+100 from employees;
1.4 MySQL 中定义空值
包含空值的算术表达式计算结果为空。
1.4.1 示例
在 employees 中添加 commission_pct,计算年薪包含佣金。
alter table employees add column commission_pct float(5,2);
select 12*salary*commission_pct from employees;
1.5 MySQL 中的列别名
SELECT 列名 AS 列别名 FROM 表名 WHERE 条件
1.5.1 示例
查询 employees 表将雇员 laser_name 列名改为 name。
select last_name as name from employees;
1.6 MySQL 中的连字符
MySQL 中并不支持||作为连字符,需要使用 concat 函数。在参数数量上与 oracle 的 concat
函数有区别。
1.6.1 示例
查询雇员表中的所有数据,将所有数据连接到一起,每列值中通过#分割。
select concat(employees_id,'#',last_name,'#',email,"#",salary,"#",commission_pct) from
employees;
1.7 MySQL 中去除重复
在 SELECT 语句中用 DISTINCT 关键字除去相同的行。
1.7.1 示例
查询 employees 表,显示唯一的部门 ID。
select distinct dept_id from employees;
2 约束和排序数据
2.1 MySQL 中的比较条件
2.1.1 比较运算符
• 等于=
• 大于>
• 大于等于>=
• 小于<
• 小于等于<=
• 不等于!=或<>
2.1.1.1 示例一
查询 employees 表,员工薪水大于等于 3000 的员工的姓名与薪水。
select * from employees where salary >=3000;
2.1.1.2 示例二
查询 employees 表,员工薪水不等于 5000 的员工的姓名与薪水。
select * from employees where salary <>5000;
2.1.2 模糊查询
• like
• %表示任意多个任意字符<