【笔记四】:LIKE,UNION,ORDER BY,AND,OR,IN,BETWEEN,IS NULL,NOT

2024-05-08 10:38
文章标签 笔记 union order like null

本文主要是介绍【笔记四】:LIKE,UNION,ORDER BY,AND,OR,IN,BETWEEN,IS NULL,NOT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1,LIKE

2,ORDER BY

3,UNION

4,AND

5,OR

6,IN

7,BETWEEN AND

8,IS NULL

9,NOT


1,LIKE

以下是 SQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
  • _:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
  • []:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
  • [^] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
  • 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询
MariaDB [mydb]> select * from students;
+-------+-----------+------+------+----------+------------+
| id    | name      | sex  | age  | interest | birthday   |
+-------+-----------+------+------+----------+------------+
| 20001 | 小明      | 男   |   16 | football | 2004-03-05 |
| 20002 | 小红      | 女   |   14 | music    | 2006-06-18 |
| 20003 | 小张      | 男   |   15 | painting | 2005-08-14 |
| 20004 | 露丝      | 女   |   13 | painting | 2007-07-19 |
| 20005 | 丽丽      | 女   |   15 | painting | 2005-12-01 |
| 20005 | 李明      | 男   |   16 | music    | 2004-08-14 |
| 20006 | 张大明    | 男   |   18 | football | 2002-03-05 |
+-------+-----------+------+------+----------+------------+
7 rows in set (0.001 sec)

选择birthday 是03月份的学生

MariaDB [mydb]> select * from students where birthday like '%03%';
+-------+-----------+------+------+----------+------------+
| id    | name      | sex  | age  | interest | birthday   |
+-------+-----------+------+------+----------+------------+
| 20001 | 小明      | 男   |   16 | football | 2004-03-05 |
| 20006 | 张大明    | 男   |   18 | football | 2002-03-05 |
+-------+-----------+------+------+----------+------------+
2 rows in set (0.000 sec)

选择name是2个字且最后一个字是‘明’的学生

MariaDB [mydb]> select * from students where name like '_明';
+-------+--------+------+------+----------+------------+
| id    | name   | sex  | age  | interest | birthday   |
+-------+--------+------+------+----------+------------+
| 20001 | 小明   | 男   |   16 | football | 2004-03-05 |
| 20005 | 李明   | 男   |   16 | music    | 2004-08-14 |
+-------+--------+------+------+----------+------------+
2 rows in set (0.002 sec)

选择除了name是2个字且最后一个字是‘明’以外的学生

MariaDB [mydb]> select * from students where birthday not like '%03%';
+-------+--------+------+------+----------+------------+
| id    | name   | sex  | age  | interest | birthday   |
+-------+--------+------+------+----------+------------+
| 20002 | 小红   | 女   |   14 | music    | 2006-06-18 |
| 20003 | 小张   | 男   |   15 | painting | 2005-08-14 |
| 20004 | 露丝   | 女   |   13 | painting | 2007-07-19 |
| 20005 | 丽丽   | 女   |   15 | painting | 2005-12-01 |
| 20005 | 李明   | 男   |   16 | music    | 2004-08-14 |
+-------+--------+------+------+----------+------------+
5 rows in set (0.002 sec)

2,ORDER BY

按age升序、降序排列

SELECT field, field2,... [or column] FROM table_name, table_name2,...
ORDER BY field, field2,... ASC[or DESC]

默认是按升序排列 [ASC]

MariaDB [mydb]> select * from students order by age;
+-------+-----------+------+------+------------+------------+
| id    | name      | sex  | age  | interest   | birthday   |
+-------+-----------+------+------+------------+------------+
| 20004 | 露丝      | 女   |   13 | painting   | 2007-07-19 |
| 20002 | 小红      | 女   |   14 | music      | 2006-06-18 |
| 20003 | 小张      | 男   |   15 | basketball | 2005-08-14 |
| 20005 | 丽丽      | 女   |   15 | painting   | 2005-12-01 |
| 20001 | 小明      | 男   |   16 | football   | 2004-03-05 |
| 20005 | 李明      | 男   |   16 | music      | 2004-08-14 |
| 20006 | 张大明    | 男   |   18 | football   | 2002-03-05 |
+-------+-----------+------+------+------------+------------+
7 rows in set (0.000 sec)

指定age按降序排列。 

MariaDB [mydb]> select * from students order by age desc;
+-------+-----------+------+------+------------+------------+
| id    | name      | sex  | age  | interest   | birthday   |
+-------+-----------+------+------+------------+------------+
| 20006 | 张大明    | 男   |   18 | football   | 2002-03-05 |
| 20001 | 小明      | 男   |   16 | football   | 2004-03-05 |
| 20005 | 李明      | 男   |   16 | music      | 2004-08-14 |
| 20003 | 小张      | 男   |   15 | basketball | 2005-08-14 |
| 20005 | 丽丽      | 女   |   15 | painting   | 2005-12-01 |
| 20002 | 小红      | 女   |   14 | music      | 2006-06-18 |
| 20004 | 露丝      | 女   |   13 | painting   | 2007-07-19 |
+-------+-----------+------+------+------------+------------+
7 rows in set (0.000 sec)

 先指定age按升序排列如果age相同brithday再按降序排列。 

MariaDB [mydb]> select * from students order by age, birthday desc;
+-------+-----------+------+------+------------+------------+
| id    | name      | sex  | age  | interest   | birthday   |
+-------+-----------+------+------+------------+------------+
| 20004 | 露丝      | 女   |   13 | painting   | 2007-07-19 |
| 20002 | 小红      | 女   |   14 | music      | 2006-06-18 |
| 20005 | 丽丽      | 女   |   15 | painting   | 2005-12-01 |
| 20003 | 小张      | 男   |   15 | basketball | 2005-08-14 |
| 20006 | 李明      | 男   |   16 | music      | 2004-08-14 |
| 20001 | 小明      | 男   |   16 | football   | 2004-03-05 |
| 20007 | 张大明    | 男   |   18 | football   | 2002-03-05 |
+-------+-----------+------+------+------------+------------+
7 rows in set (0.001 sec)

 

3,UNION

操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2


注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

以下2张表

MariaDB [mydb]> select * from students;
+-------+-----------+------+------+------------+------------+
| id    | name      | sex  | age  | interest   | birthday   |
+-------+-----------+------+------+------------+------------+
| 20001 | 小明      | 男   |   16 | football   | 2004-03-05 |
| 20002 | 小红      | 女   |   14 | music      | 2006-06-18 |
| 20003 | 小张      | 男   |   15 | basketball | 2005-08-14 |
| 20004 | 露丝      | 女   |   13 | painting   | 2007-07-19 |
| 20005 | 丽丽      | 女   |   15 | painting   | 2005-12-01 |
| 20006 | 李明      | 男   |   16 | music      | 2004-08-14 |
| 20007 | 张大明    | 男   |   18 | football   | 2002-03-05 |
+-------+-----------+------+------+------------+------------+
7 rows in set (0.002 sec)MariaDB [mydb]> select * from score;
+-------+-----------+------+----------+--------+
| id    | name      | math | language | sports |
+-------+-----------+------+----------+--------+
| 20001 | 小明      |   81 |       86 |     93 |
| 20002 | 小红      |   86 |       86 |     89 |
| 20003 | 小张      |   77 |       83 |     93 |
| 20004 | 露丝      |   88 |       78 |     65 |
| 20005 | 丽丽      |   92 |       94 |     64 |
| 20006 | 李明      |   75 |       78 |     88 |
| 20007 | 张大明    |   54 |       65 |     95 |
+-------+-----------+------+----------+--------+
7 rows in set (0.000 sec)

 

MariaDB [mydb]> select id,name from students union select id,name from score;
+-------+-----------+
| id    | name      |
+-------+-----------+
| 20001 | 小明      |
| 20002 | 小红      |
| 20003 | 小张      |
| 20004 | 露丝      |
| 20005 | 丽丽      |
| 20006 | 李明      |
| 20007 | 张大明    |
+-------+-----------+
7 rows in set (0.002 sec)MariaDB [mydb]> select id,name from students union all select id,name from score;
+-------+-----------+
| id    | name      |
+-------+-----------+
| 20001 | 小明      |
| 20002 | 小红      |
| 20003 | 小张      |
| 20004 | 露丝      |
| 20005 | 丽丽      |
| 20006 | 李明      |
| 20007 | 张大明    |
| 20001 | 小明      |
| 20002 | 小红      |
| 20003 | 小张      |
| 20004 | 露丝      |
| 20005 | 丽丽      |
| 20006 | 李明      |
| 20007 | 张大明    |
+-------+-----------+
14 rows in set (0.002 sec)

4,AND

MariaDB [mydb]> select * from students where age=16 and interest='music';
+-------+--------+------+------+----------+------------+
| id    | name   | sex  | age  | interest | birthday   |
+-------+--------+------+------+----------+------------+
| 20006 | 李明   | 男   |   16 | music    | 2004-08-14 |
+-------+--------+------+------+----------+------------+
1 row in set (0.001 sec)

5,OR

MariaDB [mydb]> select * from students where age=16 or birthday='2007-07-19';
+-------+--------+------+------+----------+------------+
| id    | name   | sex  | age  | interest | birthday   |
+-------+--------+------+------+----------+------------+
| 20001 | 小明   | 男   |   16 | football | 2004-03-05 |
| 20004 | 露丝   | 女   |   13 | painting | 2007-07-19 |
| 20006 | 李明   | 男   |   16 | music    | 2004-08-14 |
+-------+--------+------+------+----------+------------+
3 rows in set (0.000 sec)

 

MariaDB [mydb]> select * from students where (age=16 and birthday='2004-08-14') or birthday='2007-07-19';
+-------+--------+------+------+----------+------------+
| id    | name   | sex  | age  | interest | birthday   |
+-------+--------+------+------+----------+------------+
| 20004 | 露丝   | 女   |   13 | painting | 2007-07-19 |
| 20006 | 李明   | 男   |   16 | music    | 2004-08-14 |
+-------+--------+------+------+----------+------------+
2 rows in set (0.002 sec)

6,IN

MariaDB [mydb]> select * from students where age in (13,14);
+-------+--------+------+------+----------+------------+
| id    | name   | sex  | age  | interest | birthday   |
+-------+--------+------+------+----------+------------+
| 20002 | 小红   | 女   |   14 | music    | 2006-06-18 |
| 20004 | 露丝   | 女   |   13 | painting | 2007-07-19 |
+-------+--------+------+------+----------+------------+
2 rows in set (0.001 sec)

7,BETWEEN AND

MariaDB [mydb]> select * from students where age between 15 and 18;
+-------+-----------+------+------+------------+------------+
| id    | name      | sex  | age  | interest   | birthday   |
+-------+-----------+------+------+------------+------------+
| 20001 | 小明      | 男   |   16 | football   | 2004-03-05 |
| 20003 | 小张      | 男   |   15 | basketball | 2005-08-14 |
| 20005 | 丽丽      | 女   |   15 | painting   | 2005-12-01 |
| 20006 | 李明      | 男   |   16 | music      | 2004-08-14 |
| 20007 | 张大明    | 男   |   18 | football   | 2002-03-05 |
+-------+-----------+------+------+------------+------------+
5 rows in set (0.000 sec)

8,IS NULL

首先确保我的表格中的某些数据是null才可以使用
update colin set name='Chen' where age=null;
是修改不了数据的因为age=null 最后的结果是false 条件是不成立的
update colin set name='Chen' where 1=1; 条件成立,但是这种条件没有任何意义
update colin set name='Chen' where age is null; 正确

9,NOT

MariaDB [mydb]> select * from students where not age=15;
+-------+-----------+------+------+----------+------------+
| id    | name      | sex  | age  | interest | birthday   |
+-------+-----------+------+------+----------+------------+
| 20001 | 小明      | 男   |   16 | football | 2004-03-05 |
| 20002 | 小红      | 女   |   14 | music    | 2006-06-18 |
| 20004 | 露丝      | 女   |   13 | painting | 2007-07-19 |
| 20006 | 李明      | 男   |   16 | music    | 2004-08-14 |
| 20007 | 张大明    | 男   |   18 | football | 2002-03-05 |
+-------+-----------+------+------+----------+------------+
5 rows in set (0.000 sec)
MariaDB [mydb]> select * from students where age not between 15 and 18;
+-------+--------+------+------+----------+------------+
| id    | name   | sex  | age  | interest | birthday   |
+-------+--------+------+------+----------+------------+
| 20002 | 小红   | 女   |   14 | music    | 2006-06-18 |
| 20004 | 露丝   | 女   |   13 | painting | 2007-07-19 |
+-------+--------+------+------+----------+------------+
2 rows in set (0.001 sec)

 

 

 

 

 

 

 

 

 

这篇关于【笔记四】:LIKE,UNION,ORDER BY,AND,OR,IN,BETWEEN,IS NULL,NOT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/970083

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

Mybatis中的like查询

<if test="templateName != null and templateName != ''">AND template_name LIKE CONCAT('%',#{templateName,jdbcType=VARCHAR},'%')</if>

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个