美文网首页
MySQL 表主/外键 相关语句

MySQL 表主/外键 相关语句

作者: 寻心_0a46 | 来源:发表于2023-05-29 22:07 被阅读0次

表主键

主键:指示表中数据唯一性的字段,这个唯一性的字段也可以是多个表字段组合而成的,一个表中只有一个主键。
主键约束:主键自带非空和唯一约束,起到保证主键非空且唯一的作用。

创建表时指定主键

语句格式:

CREATE TABLE test (数据唯一性字段名 字段类型 PRIMARY KEY,其它字段名 字段类型,其它字段名 字段类型,其它字段名 字段类型); 

使用 MySQLWorkbench 执行实例:

// 创建表并指定主键
CREATE TABLE test (id BIGINT PRIMARY KEY,name VARCHAR(255),address VARCHAR(255),phone_number VARCHAR(255)); 
// 插入一条数据,但不插入主键值
INSERT INTO test (name) VALUES("阿刚");
截屏2023-05-20 15.53.07.png
// 插入一条数据,并插入主键值
INSERT INTO test (id,name) VALUES(1,"阿刚");
截屏2023-05-20 15.59.07.png

对主键设置自增

主键自增:

  • 主键数值以出现过的最大值的基础上 + 1。
  • 表内自增的数值只增不减。
  • 清空表的数据,数值不归0,而是继续增长。

语句格式:

ALTER TABLE 表名 MODIFY 主键名 字段类型 AUTO_INCREMENT;

使用 MySQLWorkbench 执行实例:

// 设置主键 id 自增
ALTER TABLE test MODIFY id BIGINT AUTO_INCREMENT;
// 由于已经插入一条数据,设置自增的数值偏倚到2开始
ALTER TABLE test AUTO_INCREMENT = 2;
// 插入一条数据,但不插入主键值
INSERT INTO test (name) VALUES("阿全");
截屏2023-05-20 16.21.28.png

创建表时指定主键并且主键自增

语句格式:

CREATE TABLE 表名 (数据唯一性字段名 字段类型 PRIMARY KEY AUTO_INCREMENT,其它字段名 字段类型,其它字段名 字段类型,其它字段名 字段类型); 

使用 MySQLWorkbench 执行实例:

// 创建带有主键自增的表
CREATE TABLE test (id BIGINT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(255),address VARCHAR(255),phone_number VARCHAR(255)); 
// 插入数据,但都未插入主键值
INSERT INTO test VALUES(null,"阿全","秦皇岛","16666666666"),(null,"阿峰","秦皇岛","19999999999");
截屏2023-05-20 16.34.12.png

创建表后添加主键

语句格式:

ALTER TABLE 表名 ADD PRIMARY KEY (数据唯一性字段名,数据唯一性字段名...);

使用 MySQLWorkbench 执行实例:

// 创建表,但不指定主键字段
CREATE TABLE test (id BIGINT,name VARCHAR(255),address VARCHAR(255),phone_number VARCHAR(255)); 
// 将 id  字段指定为主键
ALTER TABLE test ADD PRIMARY KEY (id);

删除主键

语句格式:

ALTER TABLE 表名 DROP PRIMARY KEY;

使用 MySQLWorkbench 执行实例:

// 删除主键
ALTER TABLE test DROP PRIMARY KEY;
// 重置 NOT NULL约束
ALTER TABLE test MODIFY id BIGINT;
截屏2023-05-21 14.51.44.png

表外键

外键是关系型数据库中的一个概念,用于建立两个表之间的关联关系。一个表中的一个或多个字段可以被指定为外键,它们的值与另一个表中的字段值相对应,用来表示两个表之间的关联关系。通常情况下外键会与另一个表的主键相关联。

外键自身的约束保持着数据的一致性

  • 外键的值可以为null,可以重复,但是不能是不存在的值。
  • 外键所指向的表不能先删除,外键所指向的数据不能先删除。如果需要删除,则先删除外键约束或先删除外键保存的数据以断开关联关系。

注意:使用外键必须要求两张表相同的 InnoDB 引擎,Myisam 引擎不支持外键。

创建表时设置外键

语法格式:

CONSTRAINT 外键名 FOREIGN KEY 从表名 (从表字段) REFERENCES 主表名 (主表唯一字段)

放置在需要被约束的外键字段类型后。注意,外键名是唯一的。

使用 MySQLWorkbench 执行实例:

CREATE TABLE user_role2(user_role_id INT PRIMARY KEY AUTO_INCREMENT,
user_foreign_key INT,
CONSTRAINT u_f_k FOREIGN KEY user_role2 (user_foreign_key) REFERENCES user (user_id),
role_foreign_key INT
);
截屏2023-05-28 16.02.19.png

创建表后指定外键

语法格式:

ALTER TABLE 从表名 ADD CONSTRAINT 外键名 FOREIGN KEY(从表字段) REFERENCES 主表名(主表唯一字段);

使用 MySQLWorkbench 执行实例:

ALTER TABLE user_role2 ADD CONSTRAINT r_f_k FOREIGN KEY(role_foreign_key) REFERENCES role(role_id);
截屏2023-05-28 16.10.23.png

删除外键约束

语法格式:

ALTER TABLE 从表名 DROP FOREIGN KEY 外键名;

使用 MySQLWorkbench 执行实例:

ALTER TABLE user_role2 DROP FOREIGN KEY r_f_k;
截屏2023-05-28 16.19.10.png

相关文章

  • [转]【数据库复习】SQL

    数据库复习SQL语句各个部分执行顺序 外键 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表...

  • 09_MySQL多表 & JDBC

    MySQL多表 外键 主表主键和从表外键 ==(从表的外键引用主表的主键)== 从表的外键类型必须和主表的主键类型...

  • 必知必会-第十五章

    联结 这是mysql中最重要的知识点之一。使用SELECT语句通过表的外键(foreign key)对多个表进行查...

  • MySQL的简单学习(二)-多表查询

    外键 设置外键 如果是创建表添加外键约束,我们需要在创建表的()最后添加如下语句 FOREIGN KEY (bra...

  • MySql常用的sql语句

    MySql常用的sql语句 数据库 表 表结构 表的数据 键 试图 联接 用户 存储过程 函数 其他语句

  • Mysql外键

    只有InnoDB存储引擎才支持外键 有两张表: 创建外键 方式1: 如上面创建表的语句: 方式2: 删除外键

  • MYSQL数据表建立外键

    MYSQL数据表建立外键 MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件 1....

  • 外键约束

    外键的定义: 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。 外键的作用 ...

  • mysql在有外键时,怎么截断表。

    1、mysql5.7及以上需要先修改sql_mode。修改时注意语句的引号 2、修改外键使用状态 3、截断表 4、...

  • MySQL数据管理

    MySQL数据管理(管理集体的数据,而不是表结构) 1. 外键 删除被引用的表前需要删除主表 创建带外键的表 修改...

网友评论

      本文标题:MySQL 表主/外键 相关语句

      本文链接:https://www.haomeiwen.com/subject/blcnsdtx.html