sql命令(三)-操作数据表中的记录

约束类型:
sql命令(三)-操作数据表中的记录_第1张图片
1,外键约束
外键约束的要求:
sql命令(三)-操作数据表中的记录_第2张图片
mysql配置文件:default-storage-engine=INNODB (将数据表的默认引擎改为INNODB)

2,查看数据表的创建命令,索引
show create table provinces;//查看表provinces的创建命令

show index from provinces;//查看表provinces中的索引

 show INDEX from users2\G;//换一种直观的格式查看users2中索引

3,添加外键
创建主表
CREATE TABLE  provinces (
id smallint UNSIGNED  PRIMARY key  auto_increment,
pname varchar(20) not NULL
);
创建子表
CREATE TABLE users (
    id SMALLINT UNSIGNED PRIMARY KEY auto_increment,
    username VARCHAR (10) NOT NULL,
    pid SMALLINT UNSIGNED,
     FOREIGN KEY (pid) REFERENCES provinces (id)  //参照provinces中的id创建pid外键
); 
4,外键约束的参照操作
sql命令(三)-操作数据表中的记录_第3张图片


5,添加数据表字段
alter table user1 add age tinyint UNSIGNED not null DEFAULT 10;//为表user1添加字段age,该字段自动出现在最后面
alter table user1 add password VARCHAR(32)  not null after username;//为表user1添加字段password ,该字段出现在username后面
 
alter table user1 add truename VARCHAR(32)  not null first; //为表user1添加字段truename,该字段出现在表的最前面

ALTER TABLE user1 ADD (     //添加多个字段,备注:不能给字段指定位置,必须添加小括号
t1namea VARCHAR (32) NOT NULL,
t1amea VARCHAR (32) NOT NULL
);

6,删除数据表字段
ALTER TABLE user1 DROP t1amea;   //删除表user1 中的t1amea列


ALTER TABLE user1  drop id,drop age;//同时删除user1中的id列,age列

ALTER TABLE user1  drop tame , add age VARCHAR (32) NOT NULL;//删除user1中的id列,添加age列

7,为数据表添加删除约束

alter table users2 add CONSTRAINT PK_users2_id PRIMARY key (id); //将表users2中的字段id修改为主键(PK_users2_id  是约束的名字

ALTER table users2 add UNIQUE (username);//为表users2中的字段username添加唯一约束

alter table users2 add FOREIGN key(pid) REFERENCES provinces(id); 为users2中的字段pid添加外键,外键指向provinces表中的id字段

alter table users2 alter age set DEFAULT 15; //将字段age的默认值修改为15

alter table users2 alter age drop DEFAULT; //删除字段age的默认值

alter table users2  drop PRIMARY key;;//删除表users2的主键约束(因为每张表只有一个主键,所以不用指定主键对应的字段名称)

alter table users2 drop INDEX username;//删除表users2中username的唯一约束









你可能感兴趣的:(sql命令(三)-操作数据表中的记录)