231 次浏览
在这种情况下,CHAR_LENGTH() 函数的输出取决于我们是否将 NULL 作为字符串提供,或者我们仅仅向其提供 NULL。以下示例将演示差异 -mysql> 选择 CHAR_LENGTH(NULL); +-------------------+ | CHAR_LENGTH(NULL) | +-------------------+ | NULL | +-------------------+ 1 条记录集 (0.00 秒) mysql> 选择 CHAR_LENGTH('NULL'); +---------------------+ | CHAR_LENGTH('NULL') | +---------------------+ | 4 | +---------------------+ 1 条记录集 (0.00 秒)从上述结果集中,我们可以观察到,当我们提供... 阅读更多
3K+ 次浏览
这两个函数都是字符串函数,可返回字符串中的字符数。但是二者的不同概念在于 CHAR_LENGTH() 函数在“字符”中测量字符串长度,而 LENGTH() 函数在“字节”中测量字符串长度。换句话说,我们可以说 CHAR_LENGTH() 函数是多字节安全的,换句话说,它忽略字符是单字节还是多字节。例如,如果一个字符串包含 4 个 2 字节字符,那么长度将为 LENGTH()。该函数将返回 8,而 CHAR_LENGTH() 函数将返回 4。从这个意义上说,我们可以说 CHAR_LENGTH() 比 LENGTH() 函数提供的结果更准确。此差异尤其 阅读更多
321 浏览次数
在 MySQL 中,BIN() 函数用于获取数字的二进制值的相应字符串表示形式。它将此数字视为 DECIMAL 数字。语法 BIN(value) 其中 value 是一个 BIGINT 数字,即要检索其二进制值的数字。示例 mysql> Select BIN(15); +---------+ | BIN(15) | +---------+ | 1111 | +---------+ 1 行信息集合 (0.00 秒)
190 浏览次数
我们知道如果数字表达式的评估中出现溢出,MySQL 会产生一个错误。例如,最大的有符号 BIGNT 是 9223372036854775807,因此以下表达式将产生一个错误:mysql> Select 9223372036854775807 + 1; ERROR 1690 (22003): BIGINT 值在“(9223372036854775807+1)”中超出范围MySQL 能够通过以下方式处理此类溢出:通过将值转换成无符号MySQL 通过将值转换成无符号来启用此类操作,如下所示:mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1; +------------------------------------------+ | CAST(9223372036854775807 AS UNSIGNED) +1 | +------------------------------------------+ | ... 阅读更多
580 浏览次数
如果 MySQL 数值超出列数据类型允许的范围,则对其的处理方式根据 SQL 模式有以下不同:(A) 启用了严格 SQL 模式- 当启用严格 SQL 模式时,MySQL 会在输入超出范围的值时返回错误。在这种情况下,部分或全部值将无法被插入。例如,我们创建了一张表,其中有两列以 TINYINT 和 UNSIGNED TINYINT 作为其列的数据类型。mysql> Create table counting(Range1 Tinyint, Range2 Tinyint Unsigned); Query OK, 0 rows affected (0.14 秒)现在,借助以下命令,我们启用了 ... 阅读更多
120 浏览次数
可以通过一个示例来理解这一点,在示例中,在 AUTO_INCREMENT 列中插入 NULL 值,MySQL 提供一个新的序列号。mysql> 创建员工信息表 (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,名称 varchar(10));查询确定,影响 0 行 (0.16 秒) mysql> 将 id、名称值插入员工信息表中 (NULL,'Saurabh');查询确定,影响 1 行 (0.07 秒) mysql> 从员工信息表中选择 *;+----+---------+ | id | 名称 | +----+---------+ | 1 | Saurabh | +----+---------+ 1 行位于集合中 (0.00 秒) 可以从上述示例中看出,列“id”具有... 阅读更多内容
967 次浏览
当我们将 NULL 值插入 AUTO_INCREMENT 列中时,MySQL 将返回序列号。示例 mysql> 创建员工表 (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,名称 varchar(10));查询确定,影响 0 行 (0.16 秒) mysql> 将 id、名称值插入员工表中 (NULL,'Gaurav');查询确定,影响 1 行 (0.07 秒) mysql> 从员工表中选择 *;+----+---------+ | id | 名称 | +----+---------+ | 1 | Gaurav | +----+---------+ 1 行位于集合中 (0.00 秒)
140 次浏览
在这种情况下,这意味着我们向 CHAR_LENGTH() 函数提供一个空字符串作为参数。在提供空字符串时,它将返回 0,因为 CHAR_LENGTH() 函数无需计算任何字符。示例 mysql> 选择 CHAR_LENGTH('');+-----------------+ | CHAR_LENGTH('') | +-----------------+ | 0 | +-----------------+ 1 行位于集合中 (0.00 秒)
78 次浏览
当我们在 MySQL 列中使用 AUTO_INCREMENT 时,序列号始终按照升序增加,从默认值 1 或我们指定的的值开始。因此,MySQL 不允许将 AUTO_INCREMENT 值更改为小于当前序列号的值。可以通过以下示例来理解这一点:示例 在此示例中,假设我们有一个名为 'emp1' 的表,在创建表时,我们将 AUTO_INCREMENT 值指定为 100。因此,在表中插入值后,序列将从 100 开始,如下所示... 阅读更多内容
72 次浏览
MySQL 中的 CHAR_LENGTH() 或 CHARACTER_LENGTH() 字符串函数用于检索指定字符串的长度。此函数将简单地计算字符数,而忽略字符是单字节还是多字节。示例mysql> Select CHAR_LENGTH('New Delhi'); +--------------------------+ | CHAR_LENGTH('New Delhi') | +--------------------------+ | 9 | +--------------------------+ 1 row in set (0.00 sec) mysql> Select CHAR_LENGTH('NewDelhi'); +-------------------------+ | CHAR_LENGTH('NewDelhi') | +-------------------------+ | 8 | +-------------------------+ 1 row in set (0.00 sec) mysql> Select CHARACTER_LENGTH('NewDelhi'); ... 了解更多