mysql学习

数据库查询:
select 查询列表 from 表名;查询多个字段只需逗号隔开接字段名,*号表示所有列;
mysql学习
查询函数:查看数据库版本
SELECT VERSION();
mysql学习
起别名
便于理解
如果要查询的字段有重名的情况,使用别名可以区分开来
SELECT 100%98 AS 结果;给100%98的字段起了个结果别名,也可以用空格代替AS关键字;
mysql学习
去重
SELECT DISTINCT 字段名 FROM 表名;
mysql学习
+号的作用
mysql中的+号只做运算不做拼接;
将员工名和姓连接成一个字段,并显示为 姓名
字符串拼接函数concat()
SELECT
CONCAT(last_name,first_name) AS 姓名
FROM
t_mysql_employees;
mysql学习
过滤和排序数据
过滤
使用WHERE 子句,将不满足条件的行过滤掉。
WHERE 子句紧随 FROM 子句;
select
查询列表
from
表名
where
筛选条件;
过滤出工资在12000以上的员工工资
mysql学习
模糊查询
like
查询员工名中包含字符a的员工信息
查询员工名中第三个字符为e,第五个字符为a的员工名和工资
select
last_name,
salary
FROM
t_mysql_employees
WHERE
last_name LIKE ‘__n_l%’;
mysql学习
=或<>不能用于判断null值
is null或is not null 可以判断null值

安全等于 <=>:类型和值都相等;
S NULL:仅仅可以判断NULL值,可读性较高,建议使用
<=> :既可以判断NULL值,又可以判断普通的数值,可读性较低

排序查询
select 查询列表
from 表名
【where 筛选条件】
order by 排序的字段或表达式;

asc代表的是升序,可以省略
desc代表的是降序

order by子句可以支持 单个字段、别名、表达式、函数、多个字段

查询部门编号>=90的员工信息,并按员工编号降序

SELECT *
FROM t_mysql_employees
WHERE department_id>=90
ORDER BY employee_id DESC;

mysql学习
分组查询
分组函数作用于一组数据,并对一组数据返回一个值。
组函数类型
功能:用作统计使用,又称为聚合函数或统计函数或组函数

分类:
sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数

特点:
1、sum、avg一般用于处理数值型
max、min、count可以处理任何类型
2、以上分组函数都忽略null值

3、可以和distinct搭配实现去重的运算

4、count函数的单独介绍
一般使用count(*)用作统计行数

5、和分组函数一同查询的字段要求是group by后的字段

函数的使用
mysql学习
查询部门编号为90的员工个数

mysql学习

分组后筛选

每个工种 有奖金 的员工的 最高工资>12000 的 工种编号和最高工资
mysql学习
添加排序
每个工种 有奖金 的员工的 最高工资>6000 的 工种编号和最高工资,按最高工资升序

mysql学习
多表查询
笛卡尔集会在下面条件下产生
-省略连接条件
– 连接条件无效
– 所有表中的所有行互相连接
• 为了避免笛卡尔集, 可以在 WHERE 加入有 效的连接条件。
查询 有奖金 的员工名、部门名

mysql学习

三表连接
查询员工名、部门名和所在的城市
mysql学习