-
顾名思义,MySQLUNIQUE约束维护表中列的唯一性,并且不允许插入重复值。基本上,UNIQUE约束创建一个索引,使得索引列中的所有值都必须是唯一的。这里值得一提的是,MySQL表中可以有多个UNIQUE列。我们可以通过在定义列时提及“UNIQUE”关键字来应用UNIQUE约束。可以借助以下示例来理解-mysql>Createtabletest3(IDINTUNIQUE,NameVarchar(20));QueryOK,0rowsaffected(0.16sec)上面的查询创建了一个名为“test
-
MySQL存储函数可以引用表,但不能使用返回结果集的语句。因此我们可以说不存在返回结果集的SELECT查询。但我们可以使用SELECTINTO来摆脱这个问题。例如,我们正在创建一个函数“Avg_marks”,它使用名为“Student_marks”的表中的动态数据(具有以下记录)来计算平均分数。mysql>Select*fromStudent_marks;+-------+------+---------+---------+---------+|Name |Math|English|Sc
-
当我们在查询中使用RAND()函数以及ORDERBY和LIMIT子句时,MySQL每次都会返回不同的行或值集。要理解它,请考虑一个具有以下记录的表“Employee”-mysql>Select*fromEmployee;+----+--------+--------+|ID|Name |Salary|+----+--------+--------+|1 |Gaurav|50000 ||2 |Rahul |20000 ||3 |Ad
-
可以通过以下示例来理解,在该示例中我们使用准备好的语句创建了名为“Student”的表-mysql>PREPAREstmt3FROM'CREATETABLEStudent(IdINT,NameVarchar(20))';QueryOK,0rowsaffected(0.00sec)Statementpreparedmysql>EXECUTEstmt3;QueryOK,0rowsaffected(0.73sec)mysql>DEALLOCATEPREPAREstmt3;Que
-
假设如果我们在BEGIN/END块内声明一个变量,那么该变量的范围将在这个特定的块中。我们还可以在另一个BEGIN/END块内声明一个同名的变量,这将是完全合法的,但其范围将在其BEGIN/END块内。可以借助以下示例来理解这一点,在该示例中我们创建一个过程来显示变量的范围-示例mysql>CreateProcedureScope_variables() ->BEGIN ->DECLAREAVarchar(5)Default'outer
-
要按块检索大量选择,您需要使用ORDERBYLIMIT。语法如下:SELECT*FROMyourTableNameORDERBYyourColumnNameLIMIT0,10;从上面的语法中,你将从表中获取10行。在上述语法中,0代表表的结果集中的第一行,这意味着它是基于零索引的。LIMIT的第二个值表示可以从表中检索的最大行数。如果你想获取10到30之后的行,那么在LIMIT中使用如下语法:SELECT*FROMyourTableNameORDERBYyourColumnNameLIMIT10,20;/
-
这是因为如果没有GROUPBY子句,MySQL返回的输出可能会产生误导。我们在下面给出的“学生”表中给出以下示例,以进行演示-mysql>Select*fromStudent;+------+---------+---------+-----------+|Id |Name |Address|Subject |+------+---------+---------+-----------+|1 |Gaurav |Delhi&n
-
MySQL中的LIMIT关键字可以指定输出中返回的记录数。LIMIT子句限制要返回的行数。可以通过以下示例来理解-示例mysql>Select*fromStudent_info;+------+---------+------------+------------+|id |Name |Address |Subject |+------+---------+------------+------------+| 1
-
实际上,它们都是赋值运算符,用于赋值,但它们之间的显着区别如下-=运算符赋值为SET语句的一部分或作为UPDATE语句中SET子句的一部分,在任何其他情况下=运算符都被解释为比较运算符。另一方面,:=运算符分配一个值,并且永远不会将其解释为比较运算符。mysql>Updateestimated_cost1SETTender_value='8570.000'whereid=2;QueryOK,1rowaffected(0.06sec)Rowsmatched:1Changed:1Warn
-
我们可以在ORDERBY子句中指定多列,以根据这些多列获得排序的输出。以下为使这个概念更清晰的例子-mysql>Select*fromStudentORDERBYName,Address;+------+---------+---------+-----------+|Id |Name |Address|Subject |+------+---------+---------+-----------+|2 |Aarav |Mu
-
要检查权限,请使用带有GRANTS的SHOW命令。以下是语法-SHOWGRANTS;上述语法将显示root用户的权限。如果您想检查特定用户的权限,然后使用以下语法−SHOWGRANTSFOR'yourUserName'@'yourHostName';上述语法将检查特定用户的权限。让我们逐个实现这两个语法。以下是查询−mysql>SHOWGRANTS;以下是显示root权限的输出-+--------------------------------
-
在MySQL中,通过将该列声明为DEFAULTCURRENT_TIMESTAMP,我们可以在将值插入另一列时自动将当前日期和时间插入到该列中。示例mysql>Createtabletesting ->( ->StudentNamevarchar(20)NOTNULL, ->RegDateTIMESTAMPDEFAULTCURRENT_TIMESTAMP ->);QueryOK,0rowsa
-
在MySQL中,SHOWTABLESTATUS命令显示表的名称、引擎、版本、行数、校验和等信息−示例首先让我们创建一个表。在这里,我们使用的是MyISAM引擎。创建表的查询如下−mysql>createtablePost_Demo ->( ->PostIdint, ->PostNamevarchar(100), ->PostDatedatetime, &n
-
MySQL程序可以从命令行(即从shell或命令提示符)调用。如何调用?这个可以通过输入程序名称,后跟指示程序执行用户想要的操作所需的任何选项或参数来完成。以下命令显示了一些示例程序调用。‘shell>’代表命令解释器的提示符;这不是用户输入内容的一部分。用户看到的具体提示符取决于他们的命令解释器。典型的提示符是$(表示sh、ksh或bash)、%(表示csh或tcsh)以及C:\>(表示Windowscommand.com或cmd).exe命令解释器。查询shell>mysql−&mi
-
借助SHOWTRIGGERS语句,我们可以列出特定数据库中的所有触发器。可以借助以下示例进行说明-示例mysql>ShowTriggers\G***************************1.row*************************** Trigger:trigger_before_delete_sample Event:DELETE Table:sampleStatement:BEGINSET@count=if(@cou