数据查询语言
基本查询
查询的基本语句是 select * from 表名查询所有列
select 指定列段名 from 表名查询指定列
别名
别名的设置 指定列段名后面加上定义名
列的别名(1、两个有相同的列段的时候;2、后续要使用这个列段的时候)
实例
sleect 字段名 定义名 from 表格
+
MySQL中“+”号的作用,只作用运算
当字符串与数值相加时会把字符串转换成数字,不能转换就变为空
concat 将多个字符串连接成一个字符串。
MySQL的版本查询
select version();
去重
关键字distinct
语法select distinct 字段名 from 表名
降序以及升序
MySQL默认为升序 倒序关键字为 order by asc,加上order by desc为降序 order by为必要条件
过滤以及排序
语法
select * from 表名 where 条件(Boolean表达式)
=,<,>,<>,等符号
简单的使用,与其它语言一样。<>可以看为不等于
and or not…
和 或 非 的意思
模糊查询筛选
关键字:like % _三个重要字段,like为必备,%表示零或多个字符 _表示单个字符
特殊地当要查找_的存在时,要是用escape $符号代表任意符号
区间查询筛选
关键字:between…and… 关键字前要放查找区间所在的字段名
列表筛选查询
关键字:in() 关键字前要放查找区间所在的字段名括号内放查找目标
等值筛选查询
is null或者is not null 两种 判断是不是为空值
“=” 符号的运用,与in相似
分组
组函数
sum/avg/max/min/count的使用
group by
1、查询的列段一定要跟分组的列段相关
2、虽然很多情况下,where使用与having使用的结果是一样的,但是会有不一样的情况
多表查询
笛卡尔集
一定要避免笛卡尔集
笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join)。所有连接方式都会先生成临时笛卡尔积表,笛卡尔积是关系代数里的一个概念,表示两个表中的每一行数据任意组合,上图中两个表连接即为笛卡尔积(交叉连接)
在实际应用中,笛卡尔积本身大多没有什么实际用处,只有在两个表连接时加上限制条件,才会有实际意义,
多表查询
实际使用案列以及where 与having的使用