5K+ 次浏览
CHAR 和 VARCHAR 都是 ASCII 字符数据类型,几乎相同,但在从数据库存储和检索数据时有所不同。以下是 MySQL 中 CHAR 和 VARCHAR 的一些重要区别:CHAR 数据类型VARCHAR 数据类型全称是 CHARACTER全称是 VARIABLE CHARACTER以固定长度存储值,并用空格字符填充以匹配指定的长度VARCHAR 以可变长度存储值,以及 1 字节或 2 字节的长度前缀,并且不填充任何字符最多可容纳 255 个字符。最多可容纳 65,... 阅读更多
609 次浏览
CHAR 和 NCHAR 都是固定长度字符串数据类型。它们有以下区别:CHAR 数据类型NCHAR 数据类型全称是 CHARACTER。全称是 NATIONAL CHARACTER使用 ASCII 字符集使用 Unicode 字符集,数据以 UTF8 格式存储每个字符占用 1 字节空间。每个字符占用 2 字节空间mysql>create table hello1(name CHAR(20)); Query OK, 0 rows affected (0.15mysql>create table hello(name NCHAR(20)); Query OK, 0 rows affected (0.61
285 次浏览
当两个表通过外键连接,并且父表中的数据被删除(该数据也在子表中存在),则以下方法可以维护数据完整性:ON DELETE CASCADE如果主表中外键的值被删除,此选项也会从子表中删除该记录。ON DELETE NULL 此选项会将子表中该记录的所有值设置为 NULL,其中主表中外键的值被删除。
251 次浏览
我们可以使用以下语句禁用外键检查:mysql> Set foreign_key_checks = 0; Query OK, 0 rows affected (0.00 sec)我们可以使用以下语句启用它:mysql> Set foreign_key_checks = 1; Query OK, 0 rows affected (0.00 sec)禁用外键检查的一些好处如下:禁用外键检查后,我们可以按任何顺序将数据加载到父表和子表中。否则,我们必须先将数据加载到父表,然后加载到子表中。如果不禁用外键检查,我们将无法删除... 阅读更多
10K+ 次浏览
我们可以使用 DROP 关键字和 ALTER TABLE 语句从现有表的列中删除 FOREIGN KEY 约束。语法 ALTER TABLE table_name DROP FOREIGN KEY constraint_name 此处 constraint_name 是我们在创建表时应用的外键约束的名称。如果未指定约束名称,则 MySQL 将提供约束名称,可以通过 SHOW CREATE TABLE 语句进行检查。示例以下查询将从“orders”表中删除 FOREIGN KEY 约束:mysql> Alter table orders DROP FOREIGN KEY orders_ibfk_1; Query OK, 0 rows affected (0.22 sec) ... 阅读更多
173 次浏览
为数值列指定 ZEROFILL 时,MYSQL 会自动将字段的显示值用零填充,直到达到列定义中指定的显示宽度。例如,我们创建一个表 showzerofill 并插入值如下:mysql> Create Table showzerofill(Val1 INT(5) ZEROFILL, Val2 INT(5)); Query OK, 0 rows affected (0.09 sec) mysql> Insert into showzerofill(Val1, Val2) values(1, 1>, , , , ; Query OK, 5 rows affected (0.03 sec) Records: 5 Duplicates: 0 Warnings: 0现在我们可以很容易地理解 ZEROFILL 对列 Val1 值的影响。ZEROFILL 在数字中填充零,... 阅读更多
1K+ 次浏览
从父表中删除行时,如果该行的数剧在子表中使用,则由于 FOREIGN KEY 约束失败,MySQL 将抛出错误。可以用名为“customer”和“orders”的两个表的例子来理解。这里,“customer”是父表,“orders”是子表。我们不能从“customer”表中删除在子表“orders”中使用的行。可以通过从父表中删除值来演示这一点:mysql> Select * from Customer; +----+--------+ | id | name ... 阅读更多
153 次浏览
实际上,外键强制执行引用完整性,这有助于我们自动维护数据的完整性和一致性。可以用名为“customer”和“orders”的两个表的例子来理解。这里,“customer”是父表,“orders”是子表。我们不能为不存在的客户创建订单。可以通过在两个表中插入值来演示这一点:mysql> Select * from Customer; +----+--------+ | id | name | +----+--------+ | 1 | Gaurav | | 2 | Raman | | 3 | Harshit| | 4 | Aarav | ... 阅读更多
384 次浏览
父表和子表之间的关系是一对多关系。可以用名为“customer”和“orders”的两个表的例子来理解。这里,“customer”是父表,“orders”是子表。这种关系是一对多,因为一个客户可以有多个订单。可以通过在两个表中插入值来演示这一点:mysql> Select * from Customer; +----+---------+ | id | name | +----+---------+ | 1 | Gaurav | | 2 | Raman | | 3 | Harshit | | 4 | Aarav | +----+---------+ ... 阅读更多
805 次浏览
MySQL允许我们在表的多个字段上添加外键约束。条件是子表中的每个外键必须引用不同的父表。例如,假设我们有一个表“customer2”,该表在字段“cust_unq_id”上具有主键约束,如下所示:mysql> describe customer2;+-------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------------+-------------+------+-----+---------+-------+| cust_id | int(11) | YES | | NULL | || First_name | ... 阅读更多