Mysql 笔记 6-10

MYSQL 笔记6-10

过滤数据

使用WHERE子句

根据特定操作或报告的需要提取表数据的子集,只检索所需数据指定搜索条件(search croteria),搜索条件也称为过滤条件(filter condition);
在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤,WHERE子句在表名(FROM子句)之后给出:
在这里插入图片描述这条语句从products表中检索两个列,但不返回所有列,只返回prod_price值为2.50的数据;

WHERE子句操作符

操作符等于
=等于
<>不等于
!=不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN在指定的两个值之间

检查单个值

在这里插入图片描述
检查WHERE prod_name='fuses’语句,它返回prod_name的值为Fuses的一行,MYSQL执行匹配时默认不区分大小写,所以fuses和Fuses匹配;

不匹配检查

在这里插入图片描述其中<>和!=是一样的功能,它们列出不是由供应商1003制造的所有产品;

范围值检查

检查某个范围值,可以使用BETWEEN操作符,其语法与其他WHERE子句操作符不同;
在这里插入图片描述在使用BETWEEN时,必须指定两个值----所需范围的低端值和高端值,着两个值必须用AND关键字分隔,BETWEEN匹配范围中所有的值,包括指定的开始值和结束值;

空值检查

在一个列不包含值时,称其为包含空值NULL;//NULL 无值,它与包含0,空字符串仅仅包含空格不同;
在这里插入图片描述
SELECT语句由一个特殊的WHERE子句,可用来检查具有NULL值的,这个WHERE子句就是IS NULL子句
在这里插入图片描述

数据过滤

组合WHERE子句

MySQL允许给出多个WHERE子句,这些子句可以两种方式:以AND子句的方式或OR子句的方式使用

AND操作符

在这里插入图片描述这个SQL语句检测由1003制作价格小于等10的此商品的名称和价格;这条SELECT语句中的WHERE子句包含两个条件,并且用AND关键字连接;满足条件才会输出,并且可以再增加其他的条件,要用AND进行连接

OR操作符

OR操作符与AND不同,它指示Mysql检索匹配任一条件的行;
在这里插入图片描述这条SQL语句检索由任一指定语句制造的所有产品的产品名称和价格,OR操作符匹配任一条件而不是同时匹配两个条件,只要满足一个就可以输出

计算次序

在这里插入图片描述WHERE包含任意数目的AND和OR的操作符,允许两者结合以进行复杂和高级的筛选;在上面的图片中,可以看到出现了两条价格小于10的数据,为什么?因为AND在计算次序中优先级更高,操作符被错误的组合了;

解决办法:
在这里插入图片描述这个SELECT语句与上面的差别是:前两个条件用圆括号括起来了,原括号具有较AND和OR操作符高的计算次序;它改变了其优先级计算次序

IN操作符

圆括号在WHERE还有另一种用法,IN操作符用来指定条件范围,范围中每个条件都可以进行匹配,IN取合法值由逗号分隔的清单,全部在圆括号中;
在这里插入图片描述此SELECT 语句检索1002和1003的所有语句,IN操作符后跟由逗号分隔的合法值的清单,整个清单必须括在圆括号中;它和之前用OR操作符的条件一样;
为什么使用IN操作符:

  1. 在使用长的合法选项清单时,IN操作符更加直观
  2. 在使用IN时,计算的次序更容易管理
  3. IN操作符一般比OR操作符清单指向的更快
  4. IN的最大优点是可以包含其他的SELECT语句,使其更快的动态建立WHERE子句

NOT操作符

WHERE子句中的NOT操作符只有一个功能,就是否定它之后所有的条件;
在这里插入图片描述匹配1002和1003之外的所有vend_id的数据;

用通配符进行过滤

LIKE 操作符

上面所说的都是知道其价格或者名字等内容进行的检索,那么只知道大概的数据如何进行检查?
通配符(wildcard) 用来匹配值的一部分的特殊字符
搜索模式(search pattern)由字面值,通配符或两者组合构成的搜索条件
通配符本身是由SQL的WHERE子句中的特殊字符,SQL支持通配符,想使用通配符,必须使用LIKE操作符,LIKE指示MSQL后跟搜索模式利用通配符进行比较;

百分号(%)通配符

在这里插入图片描述使用搜索模式 ‘jet%’,在执行这条子句的时候,将检索任意以jet开头的字符,%告诉MYsql接受jet任意字符,不管有多少字符;
在这里插入图片描述
通配符可在搜索模式中任意位置取使用,也可以使用多个通配符;

注意%通配符,不能匹配NULL

下划线_通配符

_下划线通配符只能匹配单个字符而不是多个字符
在这里插入图片描述

使用通配符的技巧

通配符搜索的处理一般要比之前其他的搜索花时间更长;

  1. 不要过度使用通配符,如果其他操作符能达到相同的目的,应该使用其他操作符
  2. 在确实需要使用通配符时,除法绝对有必要,否则不要把它们用在搜索模式开始处,把通配符置于搜索模式开始处,搜索起来最慢;
  3. 仔细注意通配符的位置,放错地方,可能不会返回想要的数据;

用正则表达式进行搜索

正则表达式搜索数据

使用MYSQL正则表达式

正则表达式的作用是匹配文本,将一个模式与一个文本串进行比较,mysql的WHERE子句对正则表达式提供支持;允许使用正则表达式,过滤SELECT检索出的数据

基本字符匹配

在这里插入图片描述关键字LIKE被REGEXP替代,该语句告诉MYSQL:REGEXP后跟的东西作为正则表达式处理;
在这里插入图片描述使用了正则表达式,.000,. 表示匹配任意一个字符;

进行OR 匹配

为搜索两个串之一,使用 |
在这里插入图片描述使用正则表达式 1000 | 2000 ,| 为正则表达式的OR操作符,它表示其中只有,因此1000 和 2000 都匹配成功;

匹配几个字符之一

只想匹配特定的字符呢?可以通过特定的[]括起来的字符完成;
在这里插入图片描述使用了正则表达式[123] TON,[123]定义一组字符,意思是匹配1或2或3,因此1 ton和2 ton都匹配返回了;
在这里插入图片描述这是意料之外的数据,这个语句的意思是:mysql假定你的意思是‘1’或‘2’ ‘3’TON‘ 除非把字符 | 括在一个集合中,否则它将应用于整个串;

字符集合也可以被否定,它将匹配除了知道字符外的任何东西,在集合开始加一个 ^这个字符就可以;

匹配范围

集合可用来定义要匹配的一个或多个字符
在这里插入图片描述简化格式使用 - 来定义一个范围,举例 [a-z] [6-9] 都可以匹配

匹配特殊字符

想匹配特殊字符时应该怎么办?
为了匹配特殊字符,必须要有\ w为前导,进行查找
在这里插入图片描述这种就是所谓的转义
\也用来引用元字符(具有特殊含有的字符)

元字符说明
\\f换页
\\n换行
\\r回车
\\t制表
\\v纵向制表

匹配字符类

在这里插入图片描述

匹配多个实例

正则表达式重复元字符

元字符说明
*0个或多个匹配
+1个或多个匹配
0个或1个匹配
{n}指定数目的匹配
{n,}不少于指定数目的匹配
{n,m}匹配数目的范围

举例:
在这里插入图片描述[0-9]匹配任意数组,sticks?匹配stick 和 sticks;

在这里插入图片描述上面的图标[:digit:]匹配任意数字,后面的{4}确切的要求前面的字符出现4此;所有[[:digit:]]{4} 匹配连在一起的任意4位数字;

定位符

之前的字符都是匹配应该一个串中的任意位置的文本,为了匹配特定位置的文本,需要这些定位符:

元字符说明
^文本的开始
$文本的结尾
[[:<:]]词的开始
[[:>:]]词的结尾

在这里插入图片描述

创建计算字段

计算字段

计算字段并不实际存在数据库表中,计算字段是运行时在SELECT语句内创建的
字段(field)基本上与列的意思相同,经常互换使用,不管数据库列一般叫列;

拼接字段

拼接将值联结构到一起构成当个值
将两个列拼接在一起,可使用Concat()函数来拼接两个列
在这里插入图片描述Concat()拼接串,将多个串连接起来形成一个长串;
Concat()需要一个或多个指定的串,串之间用用逗号分隔;

通过删除数据右侧多余的空格来整理数据,使用RTrim()函数来完成;
在这里插入图片描述通过RTrim删除了多余的空格;

使用别名

支持别名,之前拼接的地址字段名字是什么?匿名的,我们可以给他起个别名
别名是一个字段或值的替换名,别名用AS关键字赋予;
在这里插入图片描述这里AS指示SQL创建一个包含指定计算的名位vend_title的计算字段;现在它名字位vend_title,任何客户机应用都可以按别名引用这个列;

执行算术计算

对检索出的数据进行算术计算;
在这里插入图片描述检索出包含订单中的每项物品的单价;
在这里插入图片描述汇总物品的价格:这些SQL语句作用是:quantity*item_price 最后得到数据起别名位expanded_price;其他客户机也可以使用expanded_price;
下面表格中可以使用的基本算术操作符:

操作符说明
+
-
*
/
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN是一个技术交流平台,里面有许多关于各种编程语言和数据库的学习资料和笔记。而MySQL是其中一种常用的关系型数据库管理系统,也是开放源代码软件之一。 在CSND上,MySQL笔记是指关于MySQL数据库的学习和使用的笔记和教程。这些笔记包含了MySQL数据库的基本概念、安装配置、SQL语句的使用、数据表的设计和管理、索引使用、数据备份和恢复等方面的知识。学习MySQL笔记可以帮助开发者更好地理解和应用MySQL数据库。 MySQL笔记主要可以分为以下几个方面来介绍和学习: 1. 数据库基础知识:学习数据库的基本概念和原理,了解关系型数据库的特点以及MySQL的特点。 2. 安装和配置:学习如何在不同操作系统上安装和配置MySQL数据库,包括设置用户名、密码和端口等。 3. SQL语句的使用:学习SQL语句的基本语法和常用命令,包括查询、插入、更新、删除等操作。 4. 数据表的设计和管理:学习如何设计和创建数据表,包括选择适当的数据类型、设置主键和外键等。 5. 索引的使用:学习如何创建和使用索引来提高查询效率和数据访问速度。 6. 数据备份和恢复:学习如何进行MySQL数据库的数据备份和恢复,包括全量备份和增量备份等。 通过学习MySQL笔记,开发者可以掌握MySQL数据库的基本操作和高级功能,提高数据管理和查询的效率。此外,还可以了解MySQL数据库的优化技巧和性能调优方法,提升数据库的性能和稳定性。 总之,通过CSDN上的MySQL笔记,开发者可以系统地学习和掌握MySQL数据库的相关知识,从而更好地应用于实际的项目开发中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值