找到 6705 篇文章 关于 数据库
231 次查看
在这种情况下,CHAR_LENGTH() 函数的输出取决于我们是否将 NULL 作为字符串提供,或者我们是否只是简单地向其提供 NULL。以下示例将演示差异:mysql> Select CHAR_LENGTH(NULL); +-------------------+ | CHAR_LENGTH(NULL) | +-------------------+ | NULL | +-------------------+ 1 row in set (0.00 sec) mysql> Select CHAR_LENGTH('NULL'); +---------------------+ | CHAR_LENGTH('NULL') | +---------------------+ | 4 | +---------------------+ 1 row in set (0.00 sec)正如我们从上面的结果集中观察到的,当我们提供... 阅读更多
3K+ 次查看
这两个函数都是字符串函数,并返回字符串中存在的字符数。但它们在概念上有所不同,CHAR_LENGTH() 函数以“字符”为单位测量字符串长度,而 LENGTH() 函数以“字节”为单位测量字符串长度。换句话说,我们可以说 CHAR_LENGTH() 函数是多字节安全的,即它忽略字符是单字节还是多字节。例如,如果一个字符串包含四个 2 字节字符,那么 LENGTH()。该函数将返回 8,而 CHAR_LENGTH() 函数将返回 4。从这个意义上说,我们可以说 CHAR_LENGTH() 比 LENGTH() 函数给出更精确的结果。区别尤其在于... 阅读更多
190 次查看
众所周知,如果在数值表达式的评估期间发生溢出,MySQL 将产生错误。例如,最大的带符号 BIGNT 是 9223372036854775807,因此以下表达式将产生错误:mysql> Select 9223372036854775807 + 1; ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'MySQL 可以通过以下方式处理此类溢出:通过将值转换为 UNSIGNEDMySQL 通过将值转换为无符号值来启用此类操作,如下所示: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 sec)现在,借助以下命令,我们启用了... 阅读更多
120 次查看
这可以通过一个示例来理解,在这个示例中,NULL 值已插入 AUTO_INCREMENT 列,并且 MySQL 提供了一个新的序列号。mysql> Create table employeeinfo(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Name Varchar(10)); Query OK, 0 rows affected (0.16 sec) mysql> Insert into employeeinfo(id, Name) values(NULL, 'Saurabh'); Query OK, 1 row affected (0.07 sec) mysql> Select * from employeeinfo; +----+---------+ | id | Name | +----+---------+ | 1 | Saurabh | +----+---------+ 1 row in set (0.00 sec)正如我们从上面的示例中观察到的,列“id”已被... 阅读更多
967 次查看
当我们将 NULL 值插入 AUTO_INCREMENT 列时,MySQL 将返回序列号。示例mysql> Create table employee(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Name Varchar(10)); Query OK, 0 rows affected (0.16 sec) mysql> Insert into employee(id, Name) values(NULL, 'Gaurav'); Query OK, 1 row affected (0.07 sec) mysql> Select * from employee; +----+---------+ | id | Name | +----+---------+ | 1 | Gaurav | +----+---------+ 1 row in set (0.00 sec)
78 次查看
当我们在 MySQL 列上使用 AUTO_INCREMENT 时,序列号始终按升序增加,从默认值 1 或我们指定的值开始。这就是为什么 MySQL 不允许将 AUTO_INCREMENT 值更改为小于当前序列号的值。这可以通过以下示例来理解:示例在这个示例中,假设我们有一个名为“emp1”的表,并且在创建表时,我们将 AUTO_INCREMENT VALUE 指定为 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'); ... 阅读更多