-
AUTO_INCRMENT属性用于为新行生成唯一标识。如果列被声明为“NOTNULL”,则可以将NULL分配给该列以生成数字序列。当将任何值插入到AUTO_INCREMENT列中时,该列将被设置为该列值,并且序列也会被重置,以便它在最大列值的顺序范围内自动生成值。可以更新现有的“AUTO_INCRMENT”列,这也会重置“AUTO_INCRMENT”序列。最新自动生成的‘AUTO_INCRMENT;可以使用SQL中的“LAST_INSERT_ID()”函数或使用CAPI函数“mysql_insert_id
-
在MySQL中,术语基数是指可以放入列中的数据值的唯一性。它是一种影响数据搜索、聚类和排序能力的属性。基数可以有两种类型,如下-低基数-列的所有值必须相同。高基数-列的所有值必须是唯一的。如果我们对列施加约束以限制重复值,则使用高基数的概念。高基数以下是高基数的示例,其中列的所有值都必须是唯一的。mysql>createtableUniqueDemo1->(->idint,->namevarchar(100),->UNIQUE(id,name)->);QueryOK,0
-
众所周知,MySQL为我们提供了循环语句,允许我们根据条件重复执行SQL代码块。REPEAT循环语句就是此类循环语句之一。其语法如下-REPEAT statements;UNTILexpressionENDREPEAT首先,MySQL执行语句,然后评估表达式。如果表达式评估为FALSE,MySQL会重复执行语句,直到表达式评估为TRUE。REPEAT 循环在执行语句后检查表达式,这也是为什么它被称为后测试循环。为了演示使用存储过程的REPEAT 循环的用法,以下是
-
许多MySQL程序都具有在运行时使用SET语句设置的内部变量。大多数程序变量也可以在服务器启动时设置,借助与指定程序选项相同的语法。示例1mysql有一个max_allowed_packet变量,它控制其通信缓冲区的最大大小。要将mysql的max_allowed_packet变量设置为16MB,可以使用下面提到的命令-mysql--max_allowed_packet=16777216(or)mysql--max_allowed_packet=16M第一个命令指定以字节为单位的值。另一方面,第二
-
众所周知,MySQL中的某些对象被称为标识符。这些对象包括数据库、表、索引、列、别名、视图、存储过程、分区、表空间等。标识符使用Unicode(UTF-8)存储。每种类型标识符的最大长度如下表所示:Sr.编号标识符最大长度(字符)1数据库6422表格643列644索引645约束646存储过程或函数647触发648视图649事件6410表空间6411日志文件组6412别名25613复合语句标签16
-
让我们了解MySQL和标准SQL之间的区别。MySQL执行许多操作在某些情况下,操作方式不同−权限在授予用户权限方面,MySQL与标准SQL之间存在许多差异。在MySQL中,当删除表时,表的权限不会自动被撤销。需要显式地使用REVOKE语句来撤销表的权限。外键约束MySQL对外键约束的实现与SQL标准不同。如果父表中有许多行具有相同的引用键值,InnoDB引擎会对具有相同键值的其他父行进行外键检查,以确保它们不存在。例如,如果定义了RESTRICT类型的约束,并且存在具有多个父行的子行,Inn
-
借助CREATEDATABASEdb-name命令,我们可以查看创建任意MySQL数据库的语句。mysql>SHOWCREATEDATABASESample;+----------+-------------------------------------------------------------------+|Database|CreateDatabase &nb
-
让我们了解如何在Unix或Linux中升级MySQL二进制和基于包的安装。这可以就地完成,也可以使用逻辑升级方法完成。让我们简单地了解这两种方法-就地升级就地升级涉及关闭旧的MySQL服务器,将旧的MySQL二进制文件或软件包替换为新的。完成此操作后,MySQL服务器将在现有数据目录上重新启动。此后,现有安装的剩余部分(需要某种升级)将被升级。对于某些Linux平台,MySQL安装从RPM或Debian软件包将包括“systemd”支持,帮助管理MySQL服务器启动和关闭。命令“mysqld_safe”不
-
事务由在数据库中执行的一系列命令组成。事务中的每个命令都是原子的,即它不能进一步拆分为子命令。事务中的任何命令可能会也可能不会更改数据库的结构。而且,事务所需的更改必须一起进行。如果不执行此规则,则在系统故障、断电或其他原因时,数据可能会丢失。一个简单的事务示例如下-Harry需要将100卢比从他的账户转入Sally的账户。这是作为交易完成的。首先,Harry的账户详细信息被读取,他的余额减少了100。这些新数据被保存回Harry的账户中。接下来,Sally的帐户详细信息被读取,她的余额增加了100。这些
-
通过使用mysqldump客户端程序,我们可以将数据库中的特定表备份到扩展名为“.sql”的文件中。可以通过以下示例来理解-示例在这个示例中,借助mysqldump客户端程序,我们从名为“student_info.sql”的文件中的“query”数据库备份名为“student_info”的表。以下命令将执行此操作:C:\mysql\bin>mysqldump-urootquerystudent_info>student_info.sql上面的命令将创建一个名为student_info.sql的
-
SQLServer函数SCOPE_IDENTITY()相当于MySQL中的LAST_INSERT_ID()。语法如下:SELECTLAST_INSERT_ID().这将返回最后插入的记录的ID。在这里,我将创建一个带有主键列的表。下面是last_insert_id()的演示。首先,让我们创建两个表。创建第一个表的查询如下:mysql>createtableTestOnLastInsertIdDemo ->( ->StudentIdintNOTN
-
MySQLLAST_INSERT_ID()函数用于通过AUTO_INCRMENT获取最近生成的序列号。示例在这个示例中,我们是创建一个名为“Student”的表,该表具有AUTO_INCRMENT列。我们在“Name”列中插入两个值,当我们使用INSERT_LAST_ID()函数时,它会返回最近生成的序列号,即2。mysql>CreatetableStudent(IdINTPRIMARYKEYNOTNULLAUTO_INCREMENT,NameVarchar(5));QueryOK,0rowsaff
-
我们可以通过使用ADD关键字和ALTERTABLE语句对现有表的多列设置PRIMARYKEY约束。示例假设我们有一个表“Room_allotment”如下-mysql>CreatetableRoom_allotment(IdInt,NameVarchar(20),RoomNoInt);QueryOK,0rowsaffected(0.20sec)mysql>DescribeRoom_allotment;+--------+-------------+------+-----+---------+
-
InnoDB是一个平衡高可靠性和性能的通用存储引擎。从MySQL5.6开始,InnoDB是MySQL默认的存储引擎。InnoDB可用于多种目的。以下是其中一些-它可用于事务目的,即所有ACID属性。InnoDB可以用于行级锁定,这意味着与MyISAM相比,它提供更高的性能。InnoDB可用于大型缓冲池的数据和索引。InnoDB可以在我们需要比MyISAM更好的性能时使用。MyISAM是MySQL关系数据库管理系统5.5版本之前的默认存储引擎。MyISAM也可以用于各种类型的目的。MyISAM易于用于创建和
-
众所周知,默认的MySQL数据库将是当前用于后续查询的数据库。我们可以使用SHOWTABLES语句获取该数据库中的表列表。mysql>SHOWTABLES;+------------------+|Tables_in_sample|+------------------+|employee||new_student||student|+------------------+3rowsinset(0.00sec)上面的语句显示了示例数据库中的表列表。