Mysql主外键
主键 primary key
创建表时直接加上主键:
create table student1(
id int primary key,
name varchar(20),
age int,
gender char(5)
);
定义列之后在指定主键
create table student2(
id int,
name varchar(20),
age int,
gemder char(5),
primary key(id)
);
修改表时添加主键:
create table student3(
id int,
name varchar(20),
age int,
gender char(5)
);
alter table student3 add primary key(id);
主键自增长:
主键必须是整数类型才可以自动增长
create table student4 (
id int primary key auto_increment,
name varchar(19),
age int,
gender char(5)
);
删除主键:
alter table student4 change id id int; --删除自动增长
DESC student4;
alter table student4 drop primary key;
DESC student4;
修改表时设置自增长
create table student5(
id int primary key,
name varchar(29),
age int,
gender char(7)
);
alter table student5 change id id int auto_increment;
-----删除主键自增长:
alter table student5 change id id int;
-----非空:
create table student6 (
id int primary key auto_increment,
name varchar(20) not null,
age int,
gender char(3)
);
-----唯一:
create table student7(
id int primary key auto_increment,
name varchar(20) unique,
age int ,
gender char(5)
);
添加唯一:
ALTER TABLE 表名 CHANGE name name VARCHAR(30) UNIQUE;
删除唯一:
DROP INDEX 列名 ON 表名;
alter table 表名 drop index 列名;
外键
create table a(
a_id int primary key auto_increment,
name varchar(20) unique not null,
age int,
gender char(5)
);
create table b(
b_id int primary key auto_increment,
name varchar(30),
age int,
gender char(4),
a_id int,
constraint cc foreign key(a_id) references a(a_id)
外键名 外键 谁是外键 参照物 那个表
);
-------修改表指定a s是b 的外键
create table a1(
a_id int primary key,
name varchar(20)
);
create table b1(
b_id int primary key,
name varchar(20),
a_id int
);
alter table b1 add constraint cc foreign key(a_id) references a1(a_id);
-----删除外键约束:
alter table b1 drop foreign key cc;