当前位置: 代码迷 >> 综合 >> MySQL语法整合
  详细解决方案

MySQL语法整合

热度:0   发布时间:2024-01-28 09:55:38.0

目录

基础查询

条件查询


基础查询


语法:
select 查询列表 from 表名;

特点:1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格

打开指定的库:USE 库名; 

1. 查询表中的单个字段:SELECT 字段名 FROM 表名;

2. 查询表中的多个字段:SELECT 字段名,字段名,字段名 FROM 表名;

3. 查询表中的所有字段:SELECT * FROM 表名;


4. 查询常量值: SELECT 100;

                          SELECT 'abc';  (字符型用单引号' ')


5. 查询表达式: SELECT 100%98;


6. 查询函数:SELECT VERSION();


7. 起别名: 别名含有有特殊符号时,例如 空格 last name      需要加上双引号 "last name "

方式一:(使用as)SELECT 查询列表 AS 别名;  

                方式二:(使用空格)SELECT 查询列表 别名 FROM 表名;   


8. DISTINCT 去重:SELECT DISTINCT 查询列表 FROM 表名;


9. CONCAT()连接:SELECT  CONCAT(字段名,字段名) AS 别名 FROM 表名;

/*
mysql中的+号: 仅仅只有一个功能:运算符

SELECT  100+70;   两个操作数都为数值型,则做加法运算

SELECT  '123'+7;   只要其中一方为字符型,试图将字符型数值转换成数值型
如果转换成功,则继续做加法运算
SELECT  'abc'+7;   如果转换失败,则将字符型数值转换成0继续做加法运算

SELECT  null+10;   只要其中一方为null,则结果肯定为null
*/

10. IFNULL(): 判断是否为空

SELECT IFNULL(参数1,参数2) FROM 表名;

//如果不为NULL,则返回参数1。 否则,IFNULL函数返回参数2。

 

条件查询


语法:
SELECT 查询列表 FROM 表名 WHERE 筛选条件;

分类:
一、按条件表达式筛选

条件运算符:>   <   =   !=   <>   >=   <=

二、按逻辑表达式筛选


逻辑运算符:用于连接条件表达式
&&   ||    !
and  or  not

&&和and:两个条件都为true,结果为true,反之为false
||或or:     只要有一个条件为true,结果为true,反之为false
!或not:    如果连接的条件本身为false,结果为true,反之为false

 三、模糊查询
like
between and
in
is null 

 

一、按条件表达式筛选

例1:查询年龄>25的员工信息

SELECT * FROM 表名 WHERE age>25;


例2:查询年龄不等于20的员工名和年龄

SELECT last_name,age FROM 表名 WHERE age<>20;


二、按逻辑表达式筛选

例1:查询年龄在20到35之间的员工名、年龄

SELECT last_name,age FROM 表名 WHERE age>=20 AND age<=35;

例2:查询年龄不是在20到35之间,或者年龄高于35的员工信息

SELECT * FROM 表名 WHERE NOT(age>=20 AND  age<=35) OR age>35;

 

三、模糊查询

1. LIKE
① 一般和通配符搭配使用
通配符:
%  任意多个字符,包含0个字符
_   任意单个字符

例1:查询员工名中包含字符a的员工信息

SELECT * FROM 表名 WHERE last_name LIKE '%a%';

例2:查询员工名中第三个字符为e,第五个字符为a的员工名和年龄

SELECT last_name,age FROM 表名 WHERE last_name LIKE '__e_a%';

例3:查询员工名中第二个字符为_的员工名      \ 转义字符      ESCAPE 定义转义符

SELECT last_name FROM 表名 WHERE last_name LIKE '_\_%';
SELECT last_name FROM 表名 WHERE last_name LIKE '_$_%' ESCAPE '$';


2. BETWEEN AND
① 使用 BETWEEN AND 可以提高语句的简洁度
② 包含临界值
③ 两个临界值不可以调换顺序

例1:查询员工年龄在20到30之间的员工信息

SELECT * FROM 表名 WHERE age BETWEEN 20 AND 30;

 

3. IN
含义:判断某字段的值是否属于 IN 列表中的某一项
特点:
① 使用 IN 提高语句简洁度
② IN 列表的值类型必须一致或兼容
③ IN 列表中不支持通配符


例1:查询员工的员工名是 MARRY_HE、AMY_LU、JACK_Q 中的一个员工名

SELECT last_name FROM 表名 WHERE last_name IN ( 'MARRY_HE' , 'AMY_LU' , 'JACK_Q' );

 

4. IS NULL
= 或 <> 不能用于判断null值
IS NULL 或 IS NOT NULL 可以判断null值


例1:查询没有邮箱的员工名和年龄

SELECT last_name,age FROM 表名 WHERE email IS NULL;

例1:查询有邮箱的员工名和年龄

SELECT last_name,age FROM 表名 WHERE email IS NOT NULL;

 

5. 安全等于  <=>

例1:查询没有邮箱的员工名和年龄

SELECT last_name,age FROM 表名 WHERE email <=> Null;

例2:查询年龄为27的员工信息

SELECT * FROM 表名 WHERE age <=> 27;

 

    IS NULL 和 <=> 的区别:

                                             IS NULL:只能判断NULL值
<=>    :既可以判断NULL值,也可以判断普通的数值

 

  相关解决方案