mysql 添加主键

Alter table tb add primary key(id);
Alter table tb change id id int(10) not null auto_increment=1;
好的,我将为你详细介绍如何在MySQL添加主键和外键。 ### 主键 (Primary Key) 主键用于唯一标识表中的每一行数据,并且不允许有空值(NULL)。每个表只能有一个主键。 **创建新表时指定主键** ```sql CREATE TABLE 表名 ( 列1 数据类型 PRIMARY KEY, 列2 数据类型, ... ); ``` 例如: ```sql CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT ); ``` 这里`id`列作为主键,并设置了自增属性 `AUTO_INCREMENT`. **向现有表中添加主键** 如果需要在一个已经存在的表上设置主键,可以这样做: ```sql ALTER TABLE 表名 ADD PRIMARY KEY (列名); ``` 注意,在已有数据的情况下增加主键前要确保该字段不存在重复及null值. ### 外键 (Foreign Key) 外键是用来建立两个表格之间的关联关系,即一个表的一列或多列组合起来作为一个引用到另一个表的某个记录。它主要用于保持数据库完整性约束。 **创建包含外键的新表** ```sql CREATE TABLE 子表名称( 列名 类型, ..., CONSTRAINT fk_别名 FOREIGN KEY (本地列) REFERENCES 父表名称 (父表对应列) ); ``` 比如我们有两个表:一个是上面提到的学生信息(`students`);另一个是他们的成绩(`grades`). 我们想通过学号(`student_id`)把这两个表联系起来,则可以在创建成绩表的时候加入如下的语句: ```sql CREATE TABLE grades ( grade_id INT AUTO_INCREMENT PRIMARY KEY, student_id INT NOT NULL, course_name VARCHAR(45), score DECIMAL(5, 2), CONSTRAINT fk_student_grade FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE ON UPDATE RESTRICT; ); ``` 上述命令表示当删除学生记录时会同时级联地删除所有相关的分数记录 (`ON DELETE CASCADE`) ,而更新学生的ID则受到限制无法直接更改 (`ON UPDATE RESTRICT`). **给已有的表添加外键** 如果你想要对现有的表之间建立起这种参照的关系的话, ```sql ALTER TABLE 子表 ADD [CONSTRAINT constraint_name] FOREIGN KEY(col_name,...) REFERENCES parent_table(parent_col,...); ``` 例如, ```sql ALTER TABLE grades ADD CONSTRAINT fk_student_grade FOREIGN KEY(student_id) REFERENCES students(id); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值