找到 6705 篇文章 关于数据库
94 次浏览
众所周知,MySQL NULLIF() 控制流函数如果两个参数不同则返回第一个参数。如果两个参数不同,则返回第一个参数,因为 MySQL 会对第一个参数进行两次评估。示例mysql> Select NULLIF('Tutorialspoint','MySQL'); +----------------------------------+ | NULLIF('Tutorialspoint','MySQL') | +----------------------------------+ | Tutorialspoint | +----------------------------------+ 1 row in set (0.00 sec)在上面的示例中,由于参数不同,因此 MySQL 对第一个参数即'Tutorialspoint' 进行两次评估并将其作为输出返回。
146 次浏览
MySQL NULLIF() 控制流函数如果两个参数相同则返回 NULL,否则返回第一个参数。语法NULLIF(expression1, expression2)如果 expression1 = expression2,则 NULLIF() 将返回 NULL,否则将返回 expression1。以下示例将展示这一点:mysql> Select NULLIF('Ram','Ram'); +---------------------+ | NULLIF('Ram','Ram') | +---------------------+ | NULL | +---------------------+ 1 row in set (0.00 sec) mysql> Select NULLIF('Ram','Shyam'); +-----------------------+ | NULLIF('Ram','Shyam') | +-----------------------+ | Ram | +-----------------------+ 1 row in set (0.00 sec)
179 次浏览
假设我们在 BEGIN/END 块内声明一个变量,那么此变量的作用域将在此特定块中。我们还可以在另一个 BEGIN/END 块内声明一个同名变量,这完全合法,但其作用域将在其 BEGIN/END 块内。可以通过以下示例了解,在示例中我们创建一个过程来显示变量的作用域:示例mysql> Create Procedure Scope_variables() -> BEGIN -> DECLARE A Varchar(5) Default 'outer'; -> BEGIN -> DECLARE A ... 阅读更多
59 次浏览
实际上,MySQL 会保留创建存储过程时的环境。可以通过以下示例了解,在示例中我们使用两个竖线连接字符串。这仅在 SQL 模式为 ansi 时才合法。但是,如果我们将 SQL 模式更改为非 ansi,则该过程仍按原样工作,就好像原始设置仍然有效一样。示例mysql> Set sql_mode = 'ansi'// Query OK, 0 rows affected, 1 warning (0.14 sec) mysql> Create Procedure Con_string() -> SELECT 'a'||'b'// Query OK, 0 rows affected (0.12 sec) mysql> Call Con_string (); +----------+ | ... 阅读更多
147 次浏览
MySQL IFNULL() 控制流函数如果第一个参数不为 NULL 则返回第一个参数,否则返回第二个参数。语法IFNULL(expression1, expression2)如果 expression1 不为 NULL,则 IFNULL() 将返回 expression1,否则返回 expression2。如果两个参数都为 NULL,则将返回 NULL。以下示例将展示这一点:mysql> Select IFNULL(NULL, 'Ram'); +--------------------+ | IFNULL(NULL, 'Ram') | +--------------------+ | Ram | +--------------------+ 1 row in set (0.00 sec) mysql> Select IFNULL('Shyam', 'Ram'); +-----------------------+ | IFNULL('Shyam', 'Ram') | +-----------------------+ | Shyam | +-----------------------+ ... 阅读更多
171 次浏览
众所周知,REPLACE () 函数用于替换字符串中子字符串的出现次数。我们还可以将 REPLACE 函数与 UPDATE 语句一起使用来更新表。以下示例将演示它:示例mysql> Update Student set Father_Name = REPLACE(Father_Name, 'Mr.', 'Shri '); Query OK, 5 rows affected (0.06 sec) Rows matched: 5 Changed: 5 Warnings: 0 mysql> Select Name, Father_Name from Student; +---------+-----------------+ | Name | Father_Name | +---------+-----------------+ | Gaurav | Shri Ramesh | | Aarav | Shri Sanjay | ... 阅读更多
432 次浏览
我们可以在没有“BEGIN”和“END”的情况下创建 MySQL 存储过程,就像使用这两个语句创建一样,只需要省略 BEGIN 和 END 即可。在下面的示例中,我们正在创建一个没有“BEGIN”和“END”的存储过程来获取表中的所有行:示例mysql> Delimiter // mysql> CREATE PROCEDURE Hello() -> SELECT * from Student_info; // Query OK, 0 rows affected (0.08 sec)我们可以看到 MySQL 创建了没有 BEGIN 和 END 的存储过程。现在通过 CALL 语句调用它:mysql> Delimiter ; mysql> CALL Hello(); +-----+---------+------------+------------+ | id | ... 阅读更多
86 次浏览
实际上,IFNULL(expression1, expression2) 的默认返回类型是两个表达式中更通用的一个,顺序为 STRING、REAL 或 INTEGER。可以通过以下示例了解:示例mysql> Create table testing Select IFNULL(100, 'testing123'); Query OK, 1 row affected (0.18 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> Select * from testing568; +-----------------------+ | IFNULL(100, 'testing') | +-----------------------+ | 100 | +-----------------------+ 1 row in set (0.00 sec) mysql> Describe testing568; +-----------------------+------------+------+-----+---------+-------+ | Field | Type ... 阅读更多
697 次浏览
实际上,它们都是赋值运算符,用于赋值,但它们之间存在显着差异:= 运算符将值赋值为 SET 语句的一部分或 UPDATE 语句中 SET 子句的一部分,在任何其他情况下,= 运算符都被解释为比较运算符。另一方面,:= 运算符赋值,并且永远不会被解释为比较运算符。mysql> Update estimated_cost1 SET Tender_value = '8570.000' where id = 2; Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0 ... 阅读更多