MySQL查询
DQL(Data Query language) 数据查询语言
它是SQL中核心的部分!可难可易!
一、掌握MySQL标准查询语句结构
select [all | disTinct]
{*| 表名.*| 表名.字段名... [as 别名]}
from 要查询的表名 [as 别名]
[left | right | inner join 连接表名 [as 别名] ]
where 查询条件;
-- select后 from 前的这一块内容,它是用来筛选查询字段的
-- 简单理解就是你想查看哪些信息
# 使用
select * from 表名;(不推荐,效率低)
select 字段,字段... from 表名;(推荐)
-- 别名(比较常用)
# 中文只是在学过程中方便理解所写的,后续不能使用
# as 关键字可以省略 `` 也可以省略
select 表名.字段 as `XX`,表名.字段 + 1 年级 from student;
-- 美化
select
表名.字段 as `XX`,
表名.字段 年级
from
表名;
-- all 所有的、全部 (默认的)
select all 字段,字段... from 表名;(推荐)
-- distinct 直接的,明显的(去重复)
# distinct 用来在指定的查询字段值范围内 去除重复数据
select distinct 字段,字段... from 表名;(推荐)
-- where 查询条件
# 在修改 和删除时用过 目的是为了防止修改/删除全表
# 用与检索数据表中符合条件的记录的
# 简单理解:上方的操作时用来筛选列的 where 是用来筛选行的
# 在where条件语句中,可以由一个或者多个逻辑表达式组成,结果一般为真或假
#<关系/比较运算符 和 逻辑运算符>
select * from student;
-- 查询年级是大于1的的学生信息
select * from student where greadeId > 1;
# 复杂条件的处理:逻辑运算符 与and 或or 非not
# 查询姓名为张三 且 性别为女的学生信息
select * from student where stuName = `张三` AND gender = `女`;
# 查询性别是女的 或者年级为3的
select * from student where gender = `女` or gradeId = 3;
# 查询性别不是那女的
select * from student where not gender = `女`;
select * from student where not gender != `女`;
select * from student where not gender <> `女`;
# 特殊的比较运算符
# is null is not null
# 查询空不能使用 =
select 字段名 from 表名 where 字段名 is null;
select 字段名 from 表名 where 字段名 is not null;
# between ... and
-- 例如 查询年级在2~3之间的学生姓名
select stuName from student where gradeId >= 2 and gradeId <=3; (不推荐)
# 简洁写法
select stuName from student where gradeId between 2 and 3;
# in查询 在...内/里面
-- 例如:查询年级为1 或年级为3 的学生信息
select * from student where gradeId = 1 or gradeId = 3;
# 简洁
select * from student where gradeId in (1,3);
select * from student where gradeId not in (1,3);
二、掌握模糊查询
-- like 像... 一样
# % 表示任意字符 _ 表示任意单个字符
-- 例如:查询姓为张的学生信息
select * from student where stuName like '张%';
-- 例如:查询姓张的两个字的学生信息
select * from student where stuName like '张_';
-- 例如:查询名称中带有三的学生信息
select * from student where stuName like '%三%';
-- 例如: 查询三是姓名第二个字符的学生信息
select * from student where stuName like '_三%';