一、基础查询
1.语法
select 查询列表 from 表名;
2.特点
1.查询列表可以是:表中的字段、常量值、表达式、函数
2.查询的结果是一个虚拟的表格
3.示例代码
1.查询表中单个字段
SELECT
name
FROM
employees;
2.查询表中的多个字段
SELECT
name,
num
FROM
employees;
3.查询表中所有字段
#方式一:
SELECT
字段,字段.....
FROM
employees;
#方式二:
SELECT
*
FROM
employees;
4.查询常量值
SELECT 100;
SELECT 'gyk';
5.查询表达式
SELECT 100*10;
6.查询函数
SELECT VERSION();
7.起别名
方式一:使用AS
SELECT
100*10
AS
结果;
SELECT
name
AS
名字
,
num
AS
编号
FROM
employees;
方式二:使用空格
SELECT
name 名字,
num 编号
FROM
employees;
注意:当查询结果中有特殊符号(空格等),使用双引号将查询结果括住
例如:SELECT name AS "OUT PUT",num AS 编号 FROM employees;
作用:
1.便于理解
2.如果要查询的字段有重名的情况,可以使用别名来区分开来
8.去重
例如:要查询员工表中所有编号
SELECT
num
FROM
employees;
(此时查询出来的编号值可能会有重复,不方便我们做其他操作)
可以使用distinct
SELECT
DISTINCT
num
FROM
employees;
9.MySQL中+号的作用
仅仅一个功能:运算符
select 100+90; #两个操作数都为数值型时,则做加法运算
select '100'+90; /*其中一方为字符型时,试图将字符型数值转换为数值型
如果转换成功,则继续做加法运算*/
select 'gyk'+90; #如果转化失败,则将字符型数值转化为0,再进行加法运算
select null+10; #只要一方为null,则结果肯定为null
二、条件查询
1.语法
select 查询列表 from 表名 where 筛选条件;
2.分类
1.按条件表达式筛选
条件运算符:> < = != <> >= <=
ps:在MySQL中,不等于有两种写法(!= 和 <>),推荐使用后者
2.按逻辑表达式筛选
逻辑运算符:&& || ! and or not
主要作用:用于连接条件表达式
3.模糊查询
like
between and
in
is null
3.示例代码
1.按条件表达式筛选
#案例一:查询工资>12000的员工信息
SELECT
*
FROM
employees
WHERE
salary>12000;
#案例二:查询编号不等于90的员工名和编号
SELECT
name,
num
FROM
employees
WHERE
num<>90;
2.按逻辑表达式筛选
#案例一:查询工资在10000到20000之间的员工名、工资以及编号
SELECT
name,
num,
salary
FROM
employees
WHERE
salary>=10000
AND
salary<=20000;
#案例二:查询编号不是在90到100之间,或者工资高于15000的员工信息
SELECT
*
FROM
employees
WHERE
NOT(num>=90 AND num<=100) OR salary>15000;
3.模糊查询
like关键字:
特点:
1.一般与通配符搭配使用
通配符:% 代表任意多个字符,包括0个字符
_ 代表任意单个字符
#案例1:查询员工名中含有字符a的员工信息
SELECT
*
FROM
employees
WHERE
name LIKE '%a%';
#案例2:查询员工名中第三个字符为n,第五个字符为a的员工名和工资
SELECT
name,
salary
FROM
employees
WHERE
name LIKE '__n_l%';
#案例3:查询员工名中第二个字符为_的员工名
SELECT
name
FROM
employees
WHERE
name LIKE '_\_%';
#使用\进行转义 如果想用其他字符进行转义需要加ESCAPE关键字
#例如 name LIKE '_$_%' ESCAPE '$'; 这样就可以了
between and关键字:
特点:
1.可以提高语句的简洁度
2.包含临界值
3.两个临界值不要调换顺序
#案例1:查询员工编号在100到120的员工信息
SELECT
*
FROM
employees
WHERE
num BETWEEN 100 AND 120;
in关键字:
含义:判断某字段的值是否属于in列表中的一项
特点:
1.使用in提高语句的简洁度
2.in列表的值类型必须一致或兼容
3.不允许出现% _ 等通配符
#案例:查询员工名字在“gyk”,“hjr”,“hh”中的员工编号
SELECT
num
FROM
employees
WHERE
name in ('gyk','hjr','hh');
is null关键字:
特点:
1.=或<>不能用于判断null值
2.也可以使用is not null
#案例:查询没有编号的员工的名字
SELECT
name
FROM
employees
WHERE
salary IS NULL;
安全等于 <=>
#案例1:查询没有编号的员工的名字
SELECT
name
FROM
employees
WHERE
salary <=> NULL;
#案例:查询工资等于12000的员工的名字
SELECT
name
FROM
employees
WHERE
salary <=> 12000;
#is null 和 <=> 区别
IS NULL:仅仅可以判断NULL值,可读性较高,建议使用
<=>:既可以判断NULL值,又可以判断普通的数值,可读性较低
本篇博客就到这里就结束了,如果发现文章问题请及时指出,谢谢大家