MySQL必知必会(二)

第6章 过 滤 数 据

本章将讲授如何使用SELECT语句的WHERE子句指定搜索条件。

6.1 使用WHERE子句

数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。

在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤
WHERE子句在表名(FROM子句)之后给出

mysql> select idx_name 
from text//  text 为 表名
where pk_id=1;
+----------+
| idx_name |
+----------+
| 巴萨     |
| 阿根廷   |
+----------+
2 rows in set (0.02 sec)

这条语句从text表中检索1个列,但不返回所有行,只返回pk_id值为1的行.
简单来说:
where子句后面接的就是 你对这个表的筛选操作 具体如何实现 就看个人对数据的需求是怎么样的。


6.2 WHERE子句操作符

接下来的演示 都是利用这个图的操作符
在这里插入图片描述

6.2.1 检查单个值

检查 单个值 还是很简单的 大概意思就是 where后 只判断一个数据(一列的值)
这么说 你们可能有点迷糊
来例子吧:

mysql> select pk_id,idx_name 
from text
where idx_name='fcb';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
2 rows in set (0.04 sec)

是不是有人会问 为什么 FCB和fcb都有 我不是检查的是fcb么?

MySQL在执行匹配时默认不区分大小写,所以FCB与fcb匹配。

但是 肯定又会有人说 如果我需要区分大小写 怎么办对吧?
解决方法一:
在建表的时候就告诉MySQL 这个表区分大小写;

create table some_table(
   str char(20) binary 
)

解决方法二:
在查询的时候 在where后面加上 binary

mysql> select pk_id,idx_name 
from text
where binary  idx_name='fcb';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
+-------+----------+
1 row in set (0.03 sec)

6.2.2 不匹配检查

这个不匹配 怎么说呢 就是 不等于这个值的行
法一:<>

mysql> select pk_id,idx_name 
from text
where pk_id <> 1;
+-------+-----------------------+
| pk_id | idx_name              |
+-------+-----------------------+
|     2 | 皇马                  |
|     3 | 拜仁                  |
|     4 | 曼联                  |
|     5 | 曼城   kun            |
|    12 | fcb                   |
|    13 | FCB                   |
+-------+-----------------------+
6 rows in set (0.04 sec)

或者 !=

mysql> select pk_id,idx_name 
from text
where pk_id!=1;
+-------+-----------------------+
| pk_id | idx_name              |
+-------+-----------------------+
|     2 | 皇马                  |
|     3 | 拜仁                  |
|     4 | 曼联                  |
|     5 | 曼城   kun            |
|    12 | fcb                   |
|    13 | FCB                   |
+-------+-----------------------+
6 rows in set (0.04 sec)

6.2.3 范围值检查

举个例子:
我需要text表中 id为2-4的姓名

mysql> select pk_id,idx_name 
from text
where pk_id between 2 and 4;
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|     2 | 皇马     |
|     3 | 拜仁     |
|     4 | 曼联     |
+-------+----------+
3 rows in set (0.04 sec)

从这个例子中可以看到,在使用BETWEEN时,必须指定两个值——所需范围的低端值和高端值。这两个值必须用AND关键字分隔。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。

6.2.4 空值检查

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。
注意;
NULL 无值(no value),它与字段包含0、空字符串或仅仅包含空格不同

SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。

mysql> select pk_id,idx_name 
from text
where idx_password is null;
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|     1 | 阿根廷   |
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
3 rows in set (0.04 sec)

版子就是 :
where [你要判断的列] is null
这个就会返回 这一行对应的这一列值为null的行

如果你的列都是有值的 那么就会是这个结果

mysql> select pk_id,idx_name 
from text
where idx_name is null;
Empty set

因此,在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有NULL的行


第七章 数 据 过 滤

本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件。
我们还将学习如何使用NOT和IN操作符。

7.1 组合WHERE子句

第6章中介绍的所有WHERE子句在过滤数据时使用的都是单一的条件。为了进行更强的过滤控制,MySQL允许给出多个WHERE子句。这些子句可以两种方式使用:以AND子句的方式或OR子句的方式使用

7.1.1 AND操作符

为了通过不止一个列进行过滤,可使用AND操作符给WHERE子句附加条件。

下面的代码给出了一个例子:

mysql> select pk_id,idx_name 
from text
where idx_name='fcb' and pk_id=12;
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
+-------+----------+
1 row in set (0.03 sec)

AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行

7.1.2 OR操作符

OR操作符与AND操作符不同它指示MySQL检索匹配任一条件的行。

mysql> select pk_id,idx_name 
from text
where pk_id=12 or pk_id=13;
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
2 rows in set (0.03 sec)

OR操作符告诉 DBMS(数据库管理系统) 匹配任一条件而不是同时匹配两个条件。

特别注意:

如果这里的or换成and 那么就不会返回数据
在这里 大家要注意 and和or 的执行顺序 and就像c的&&而or就是|| 所以MySQL也是 在处理or前先执行and 那么 这就会产生歧义 所以 大家在俩者混用的时候 记得加上括号 告诉DBMS 你想让它执行的顺序


7.2 IN操作符

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。

mysql> select pk_id,idx_name 
from text
where pk_id in (1,2,12);
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|     1 | 巴萨     |
|     2 | 皇马     |
|     1 | 阿根廷   |
|    12 | fcb      |
+-------+----------+
4 rows in set (0.04 sec)

其实 这个和or差不多。 只是写法不一样。
但为什么还 要用 in呢
因为它有它的优点:

 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
 在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
 IN操作符一般比OR操作符清单执行更快。
 IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。

7.3 NOT操作符

WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
简单来说 就是 取反

举个例子:

mysql> select pk_id,idx_name 
from text
where pk_id not in (1,2,12);
+-------+-----------------------+
| pk_id | idx_name              |
+-------+-----------------------+
|     3 | 拜仁                  |
|     4 | 曼联                  |
|     5 | 曼城   kun            |
|    13 | FCB                   |
+-------+-----------------------+
4 rows in set (0.04 sec)

为什么使用NOT?对于简单的WHERE子句,使用NOT确实没有什么优势。但在更复杂的子句中,NOT是非常有用的。例如,在与IN操作符联合使用时,NOT使找出与条件列表不匹配的行非常简单。

第 8 章 用 通 配 符 进 行 过 滤

8.1 LIKE操作符

通配符(wildcard) 用来匹配值的一部分的特殊字符
**搜索模式(search pattern)**由字面值、通配符或两者组合构成的搜索条件。

8.1.1 百分号(%)通配符 *

最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现任意次数。

mysql> select pk_id,idx_name 
from text
where idx_name like 'fc%';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
2 rows in set (0.04 sec)

区分大小写 根据MySQL的配置方式,搜索可以是区分大小写的。如果区分大写,fc%是不会匹配道FCB的 但是 在我这 没有进行 区分大小写的操作

通配符可在搜索模式中任意位置使用,并且可以使用多个通配符。

重要的是要注意到,除了一个或多个字符外,%还能匹配0个字符。%代表搜索模式中给定位置的0个、1个或多个字符

8.1.2 下划线(_)通配符 ?

另一个有用的通配符是下划线(_)。下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符。


mysql> select pk_id,idx_name 
from text
where idx_name like '_cb';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
2 rows in set (0.04 sec)

与%能匹配0个字符不一样,_总是匹配一个字符,不能多也不能少。

第9章 用正则表达式进行搜索

REGEXP

9.1 正则表达式介绍

前两章中的过滤例子允许用匹配、比较和通配操作符寻找数据。对于基本的过滤(或者甚至是某些不那么基本的过滤),这样就足够了。但随着过滤条件的复杂性的增加,WHERE子句本身的复杂性也有必要增加。

这也就是正则表达式变得有用的地方。正则表达式是用来匹配文本的特殊的串(字符集合)。如果你想从一个文本文件中提取电话号码,可以使用正则表达式。如果你需要查找名字中间有数字的所有文件,可以使用一个正则表达式。如果你想在一个文本块中找到所有重复的单词,可以使用一个正则表达式。如果你想替换一个页面中的所有URL为这些URL的实际HTML链接,也可以使用一个正则表达式(对于最后这个例子,或者是两个正则表达式)。

所有种类的程序设计语言、文本编辑器、操作系统等都支持正则表达式。有见识的程序员和网络管理员已经关注作为他们技术工具重要内容的正则表达式很长时间了。

正则表达式用正则表达式语言来建立,正则表达式语言是用来完成刚讨论的所有工作以及更多工作的一种特殊语言。与任意语言一样,正则表达式具有你必须学习的特殊的语法和指令。

9.2 使用MySQL正则表达式

那么,正则表达式与MySQL有何关系?已经说过,正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较。MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤SELECT检索出的数据。

9.2.1 基本字符匹配

mysql> select pk_id,idx_name 
from text
where idx_name regexp 'fc';

+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
2 rows in set (0.04 sec)

它告诉MySQL:REGEXP后所跟的东西作
为正则表达式(与文字正文fc匹配的一个正则表达式)处理。


mysql> select pk_id,idx_name 
from text
where idx_name regexp 'f.';

+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
2 rows in set (0.03 sec)

这里使用了正则表达式 f. 正则表达式语言中一个特殊的字符。它表示匹配任意一个字符

分析一下 LIKE和REGEXP的区别:

LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。这是一个非常重要的差别

9.2.2 进行OR匹配

为搜索两个串之一(或者为这个串,或者为另一个串),使用|,

mysql> select pk_id,idx_name 
from text
where pk_id regexp '1|2';

+-------+----------+
| pk_id | idx_name |
+-------+----------+
|     1 | 巴萨     |
|     2 | 皇马     |
|     1 | 阿根廷   |
|    12 | fcb      |
|    13 | FCB      |
+-------+----------+
5 rows in set (0.03 sec)

只要满足有1或者2出现 就符合要求

使用|从功能上类似于在SELECT语句中使用OR语句,多个OR条件可并入单个正则表达式

两个以上的OR条件 可以给出两个以上的OR条件。例如,'1000 | 2000 | 3000’将匹配1000或2000或3000

9.2.3 匹配几个字符之一

mysql> select pk_id,idx_name 
from text
where idx_name regexp '[123]CCW';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    14 | 1CCW     |
|    15 | 2CCW     |
+-------+----------+
2 rows in set (0.04 sec)

正如所见,[]是另一种形式的OR语句。事实上,正则表达式[123]CCW为[1|2|3]CCW的缩写,也可以使用后者。但是,需要用[]来定义OR语句查找什么。为更好地理解这一点,请看下面的例子:

mysql> select pk_id,idx_name 
from text
where idx_name regexp '1|2|3CCW';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    14 | 1CCW     |
|    15 | 2CCW     |
|    16 | CCW1     |
|    17 | CCW2     |
+-------+----------+
4 rows in set (0.03 sec)

这并不是期望的输出。两个要求的行被检索出来,但还检索出了另外3行。之所以这样是由于MySQL假定你的意思是’1’或’2’或’3 CCW’。除非把字符|括在一个集合中,否则它将应用于整个串。字符集合也可以被否定,即,它们将匹配除指定字符外的任何东西。为否定一个字符集,在集合的开始处放置一个^即可。因此,尽管[123]匹配字符1、2或3,但 [^123] 却匹配除这些字符外的任何东西。

9.2.4 匹配范围

集合可用来定义要匹配的一个或多个字符。例如,下面的集合将匹配数字0到9 [0123456789]
为简化这种类型的集合,可使用-来定义一个范围。下面的式子功能上等同于上述数字列表:[0-9]
范围不限于完整的集合,[1-3]和[6-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意字母字符。

mysql> select pk_id,idx_name 
from text
where idx_name regexp '[1-3]CCW';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    14 | 1CCW     |
|    15 | 2CCW     |
|    18 | 3CCW     |
+-------+----------+
3 rows in set (0.03 sec)

这里使用正则表达式[1-3] CCW。[1-3]定义了一个范围,这个表达式意思是匹配1到3,因此返回3个匹配行。由于3 CCW匹配,所以返回.5 CCW;

9.2.5 匹配特殊字符

正则表达式语言由具有特定含义的特殊字符构成。我们已经看到.、[]、|和-等,还有其他一些字符。


mysql> select pk_id,idx_name 
from text
where idx_name regexp '.';
+-------+-----------------------+
| pk_id | idx_name              |
+-------+-----------------------+
|     1 | 巴萨                  |
|     2 | 皇马                  |
|     3 | 拜仁                  |
|     4 | 曼联                  |
|     5 | 曼城   kun            |
|     1 | 阿根廷                |
|    12 | fcb                   |
|    13 | FCB                   |
|    14 | 1CCW                  |
|    15 | 2CCW                  |
|    16 | CCW1                  |
|    17 | CCW2                  |
|    18 | 3CCW                  |
|    19 | 4CCW                  |
|    20 | 5CCW                  |
|    21 | JSU.                  |
+-------+-----------------------+
16 rows in set (0.04 sec)

如果我们需要找到带 . 的这一行  我们这样使用就会出错  那么如何去匹配呢???

为了匹配特殊字符,必须用\为前导。\-表示查找-,\.表示查找.。

mysql> select pk_id,idx_name 
from text
where idx_name regexp '\\.';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    21 | JSU.     |
+-------+----------+
1 row in set (0.04 sec)

\也用来引用元字符(具有特殊含义的字符),
在这里插入图片描述
匹配\ 为了匹配反斜杠(\)字符本身,需要使用\\。

9.2.6 匹配字符类

存在找出你自己经常使用的数字、所有字母字符或所有数字字母字符等的匹配。为更方便工作,可以使用预定义的字符集,称为字符类(character class)。
表9-2列出字符类以及它们的含义。

在这里插入图片描述

9.2.7 匹配多个实例目前为止使用的所有正则表达式都试图匹配单次出现。如果存在一

个匹配,该行被检索出来,如果不存在,检索不出任何行。但有时需要对匹配的数目进行更强的控制。例如,你可能需要寻找所有的数,不管数中包含多少数字,或者你可能想寻找一个单词并且还能够适应一个尾随的s(如果存在),等等。

这可以用表9-3列出的正则表达式重复元字符来完成。
在这里插入图片描述
举个例子:


mysql> select pk_id,idx_name 
from text
where idx_name regexp '[:digit:]JSU?';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    22 | 1958JSU  |
|    23 | 2021JSU  |
|    24 | 2020JSUU |
+-------+----------+
3 rows in set (0.04 sec)

[0-9]匹配任意数字 U后的?使U可选,因为?匹配它前面的任何字符的0次或1次出现

需要注意的是,在使用正则表达式时,编写某个特殊的表达式几乎总是有不止一种方法。上面的例子也可以如下编写: (这个就说明 条条大路通罗马嘛 不过 有飞机不搭 非得开车 怕不是个…(那啥 哈哈哈哈))

mysql> select pk_id,idx_name 
from text
where idx_name regexp '[0-9][0-9][0-9][0-9]JSU?';
+-------+----------+
| pk_id | idx_name |
+-------+----------+
|    22 | 1958JSU  |
|    23 | 2021JSU  |
|    24 | 2020JSUU |
+-------+----------+
3 rows in set (0.03 sec)

9.2.8 定位符

目前为止的所有例子都是匹配一个串中任意位置的文本。为了匹配特定位置的文本,需要使用表9-4列出的定位符。
在这里插入图片描述

例如,如果你想找出以一个数(包括以小数点开始的数)开始的所有产品,怎么办?简单搜索[0-9\.](或[[:digit:]\.])不行,因为它将在文本内任意位置查找匹配。解决办法是使用^定位符.

mysql> select pk_id,idx_name 
from text
where idx_name regexp '[\\.0-9]JSU?';
+-------+---------------+
| pk_id | idx_name      |
+-------+---------------+
|    22 | 1958JSU       |
|    23 | 2021JSU       |
|    24 | 2020JSUU      |
|    25 | .2019JSU      |
|    26 | .2018.2020JSU |
+-------+---------------+
5 rows in set (0.03 sec)
mysql> select pk_id,idx_name 
from text
where idx_name regexp '^\\.[0-9]';
+-------+---------------+
| pk_id | idx_name      |
+-------+---------------+
|    25 | .2019JSU      |
|    26 | .2018.2020JSU |
+-------+---------------+
2 rows in set (0.04 sec)

特别注意:

^的双重用途 ^有两种用法。在集合中(用[和]定义),用它来否定该集合,否则,用来指串的开始处

使REGEXP起类似LIKE的作用 本章前面说过,LIKE和REGEXP的不同在于,LIKE匹配整个串而REGEXP匹配子串。利用定位符,通过用^开始每个表达式,用$结束每个表达式,可以使REGEXP的作用与LIKE一样

第 10 章 创建计算字段

10.1 计算字段

字段(field) 基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上

计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的。

10.2 拼接字段

拼接(concatenate) 将值联结到一起构成单个值

在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列

mysql> select  concat(pk_id,'(',idx_name,')')
from text
WHERE pk_id<5;
 
+--------------------------------+
| concat(pk_id,'(',idx_name,')') |
+--------------------------------+
| 1(巴萨)                        |
| 2(皇马)                        |
| 3(拜仁)                        |
| 4(曼联)                        |
| 1(阿根廷)                      |
+--------------------------------+
5 rows in set (0.04 sec)

MySQL的不同之处 多数DBMS使用+或||来实现拼接,MySQL则使用**Concat()**函数来实现。当把SQL语句转换成MySQL语句时一定要把这个区别铭记在心。

使用别名 as

mysql> select  concat(pk_id,'(',idx_name,')') as name
from text
WHERE pk_id<5;
 
+-----------+
| name      |
+-----------+
| 1(巴萨)   |
| 2(皇马)   |
| 3(拜仁)   |
| 4(曼联)   |
| 1(阿根廷) |
+-----------+
5 rows in set (0.04 sec)

导出列
别名有时也称为导出列(derived column),不管称为什么,它们所代表的都是相同的东西。

10.3 执行算术计算

.在这里插入图片描述
在这里插入图片描述

第 11 章 使用数据处理函数

11.1 函数

与其他大多数计算机语言一样,SQL支持利用函数来处理数据。函数一般是在数据上执行的,它给数据的转换和处理提供了方便。在前一章中用来去掉串尾空格的RTrim()就是一个函数的例子。

11.2 使用函数

大多数SQL实现支持以下类型的函数
用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数。

用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)
的数值函数。
用于处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)的日期和时间函数。
返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。

11.2.1 文本处理函数

下面是另一个例子,这次使用Upper()函数:

mysql> select pk_id ,idx_name, UPPER(idx_name) as 大写
from text
order by pk_id ;
+-------+-----------------------+-----------------------+
| pk_id | idx_name              | 大写                  |
+-------+-----------------------+-----------------------+
|     1 | 巴萨                  | 巴萨                  |
|     1 | 阿根廷                | 阿根廷                |
|     2 | 皇马                  | 皇马                  |
|     3 | 拜仁                  | 拜仁                  |
|     4 | 曼联                  | 曼联                  |
|     5 | 曼城   kun            | 曼城   KUN            |
|    12 | fcb                   | FCB                   |
|    13 | FCB                   | FCB                   |
|    14 | 1CCW                  | 1CCW                  |
|    15 | 2CCW                  | 2CCW                  |
|    16 | CCW1                  | CCW1                  |
|    17 | CCW2                  | CCW2                  |
|    18 | 3CCW                  | 3CCW                  |
|    19 | 4CCW                  | 4CCW                  |
|    20 | 5CCW                  | 5CCW                  |
|    21 | JSU.                  | JSU.                  |
|    22 | 1958JSU               | 1958JSU               |
|    23 | 2021JSU               | 2021JSU               |
|    24 | 2020JSUU              | 2020JSUU              |
|    25 | .2019JSU              | .2019JSU              |
|    26 | .2018.2020JSU         | .2018.2020JSU         |
|    27 | 1ccw                  | 1CCW                  |
|    28 | 2ccw                  | 2CCW                  |
+-------+-----------------------+-----------------------+
23 rows in set (0.06 sec)

正如所见,Upper()将文本转换为大写,
下面的就不一一演示了 大家可自行去实践!
在这里插入图片描述
在这里插入图片描述
注意:

SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。虽然SOUNDEX不是SQL概念,但MySQL(就像多数DBMS一样)都提供对SOUNDEX的支持



11.2.2 日期和时间处理函数

日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。一般,应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是被用来读取、统计和处理这些值。由于这个原因,日和时间函数在MySQL语言中具有重要的作用。

这个也留给大家自己去完成 自己的例子吧 我只 简单的举几个

返回当前日期
mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2021-07-14 |
+------------+
1 row in set (0.05 sec)

返回今天对应是周几
mysql> select dayofweek(curdate());
+----------------------+
| dayofweek(curdate()) |
+----------------------+
|                    4 |
+----------------------+
1 row in set (0.04 sec)

在这里插入图片描述
首先需要注意的是MySQL使用的日期格式。无论你什么时候指定一个日期,不管是插入或更新表值还是用WHERE子句进行过滤,日期必须为格式yyyy-mm-dd。因此,2005年9月1日,给出为2005-09-01。虽然其他的日期格式可能也行,但这是首选的日期格式,因为它排除了多义性(如,04/05/06是2006年5月4日或2006年4月5日或2004年5月6日或……)。

11.2.3 数值处理函数

数值处理函数仅处理数值数据。这些函数一般主要用于代数、三角或几何运算,因此没有串或日期—时间处理函数的使用那么频繁。

表11-3列出一些常用的数值处理函数

在这里插入图片描述

好了 本次就写到这里 !!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值