目录
1.回顾MySQL数据类型,建表及约束
博客链接:
https://blog.csdn.net/weixin_53436351/article/details/120122791
2.基础查询
select 查询列表 from 表名
查询列表可以是:表中的字段,常量值,表达式,函数
查询结果是一个虚拟的表格
查询表中单个字段
SELECT last_name FROM t_mysql_employees;
查询表中多个字段
SELECT last_name,salary FROM t_mysql_employees;
查询表中所有数据
方法一:在企业里用,查询效率高些
需要什么字段查什么字段,多查询一个字段多返回数据性能会差些
SELECT employee_id,first_name,last_name,phone_number,job_id,salary,commission_pct,manager_id,department_id,hiredate FROM t_mysql_employees;
方法二:常用
SELECT * from t_mysql_employees;
查询常量值
SELECT 'john';
查询表达式
SELECT 100%98;
查询函数
SELECT VERSION();
起别名
便于理解
如果要查询的字段有重名的情况,使用别名可以区分开来。
方法一:使用as
SELECT 100%98 as math;
方法二:使用空格
SELECT last_name 姓,first_name 名 FROM t_mysql_employees;
去重
查询员工表中涉及到的所有的部门编号
SELECT DISTINCT department_id FROM t_mysql_employees;
+号的作用
java中的+号:运算符,两个操作数都为数值型
连接符,只要有一个操作数为字符串
MySQL中的+号:只有运算符的功能
SELECT 100+90; 输出190
两个操控数都为数值型,做加法运算。
SELECT '123'+90; 输出213
有一方为字符型,则试图将字符型数值转换为数值型,如果转换成功,则继续做加法运算
SELECT 'john'+90; 输出90
有一方为字符型,则试图将字符型转换为数值型,如果转换是失败,则将字符型数值转换为0
SELECT null+90; 输出null
只要其中一方为null,则输出结果一定为null
3,复杂查询
过滤和排序数据
过滤,在查询中过滤,where子句,比较运算,between,in,like,null,逻辑运算
select 查询列表 from 表名 where 筛选条件
①按条件表达式筛选
简单条件运算符:> < = != <=> 安全等于相当于is >= <=
is null:仅仅可以判断null值,可读性较高,建议使用
<=>:既可以判断null值,又可以判断普通的数值,可读性较低
②按逻辑表达式筛选
逻辑运算符
作用:用于连接条件表达式
&& || !
and or not
&&和and:两个条件都为true,结果为true,反之为false
||和or:只要有一个条件为true,结果为true,反之为false
!和not:如果连接的条件本身为false,结果为true,反之为false
③模糊查询
like
between and
in
含义:判断某字段的值是否属于in列表中的某一项
特点:使用in提高语句简洁渡
in列表的值类型必须一致或兼容
in列表中不支持通配符
is null
④order by 子句
select 查询列表 from 表名 【where 筛选条件】order by 排序的字段或表达式;
特点:asc代表的是升序,可省略不写,desc代表降序
order by 子句可支持单个字段,别名,表达式,函数,多个字段
order by 子句在查询语句的最后面,除了limit子句
1,按单个字段排序
2,筛选条件再排序,
3,按表达式排序
4,按别名排序
5,按函数排序
6,按多个字段排序
⑤分组查询
功能:用作统计使用,又称为聚合函数,统计函数,组函数
分类:sum求和,avg平均值,max最大值,min最小值,count计算个数
特点:
①sum,avg一般用于处理数值型,max,min,count可以处理任何类型
②以上分组函数都忽略null值
③可以和distinct搭配实现去重的运算
④一般使用count(*)用作统计行数
⑤和分组函数一同查询的字段要求是group by 后的字段