——数据库的约束和列操作
1、show create table province;可以用来展示新创建表格的引擎类型和基本信息内容
2、外键约束主要是为了建立起来父表和子表之间的关系,必须为innoDB的存储引擎,主要有唯一约束,主键约束,外键约束,not null等
3、另外对于父表和子表之间的参照列必须具有相似的属性(数字则相同,字符串则相似),具有外键约束的是字表,参照的父表
4、外键列和参照列必须创建索引,如果不创建,MySQL将要自动创建
5、显示数据表的索引语句:show indexes from tablenameG(表格形式展示)
6、外键约束的参照操作:CASCADE、SET NULL、RESTRIC、NO ACTION等
create table users1(
-> id smallint unsigned primary key auto_increment,
-> username varchar(10) not null,
-> pid smallint unsigned,
-> foreign key(pid) references province(id) on delete cascade);
7、外键约束在操作数目的多少角度上可以划分为列级约束(1个列)和表级约束(多个列)
8、not null 和default约束不存在表级约束,唯一,主键和外键约束既有表及约束,也有列级约束
9、数据表添加列操作语句
alter table users1 add age tinyint unsigned not null default 10;(默认往最后添加)
alter table users1 add password varchar(30) not null after username;(after在某一列之后添加)
alter table users1 add truename varchar(10) not null first;(first在数据表第一列添加)
10、添加多列不能指定添加的位置,只可以添加子最后面
11、数据表删除列语句:
alter table users1 drop truename;(单列删除)
alter table users1 drop id,drop age;(多列删除)
12、添加约束:
alter table users2 add constraint pk_users2_id primary key (id);添加主键约束
alter table users2 add unique(username);添加唯一约束
alter table users2 add foreign key(pid) references province(id);添加外键约束
alter table users2 alter age set default 15;添加默认约束
alter table users2 alter age drop default;删除默认约束
13、删除约束:
alter table users2 drop primary key;删除主键约束
alter table users2 drop index username;删除唯一约束
alter table users2 drop foreign key users2_ibfk_1;删除外键约束使用约束名称即可
alter table users2 drop index pid;删除外键约束需要注意还要删除索引
14、修改列定义(change和modify均可,change更加全面)
(1)修改列的位置前后-modify
alter table users2 modify id smallint unsigned not null first;把某一列放在前面
alter table users2 modify id smallint unsigned not null after username;把某一列放在username列之后
(2)修改列的属性定义,数据类型等-modify
alter table users2 modify id tinyint unsigned not null first;修改列属性定义,数据类型等,从大类型到小类型注意一定要防止数据丢失
(3)修改列名称-change
alter table users2 change pid p_id tinyint unsigned not null;
15.修改数据表的名称:
(1)alter table users2 rename users3;
(2)rename table users3 to users2;