拓展语句


删除表内的所有数据
delete truncate drop
1.delete from test;
 delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的记录之后继续自增写入 
2.truncate table test;
清空表的数据,而且会把表结构重新建立。速度上比delete快,推荐
3.drop table test;
删除表,不推荐。
创建临时表

mysal的约束方式:
6种常用的约束:
 1、主键约束,用于唯一标识表中的每一行,主键列的值必须是唯一而且不能为空,一个表只能有一个主键
 2、外键约束,用于建立表于表之间的关系,一般是和另一张的表的主键关联。保证数据引用的完整性。一个表可以有多个外键。
 3、非空约束,not null 必须要有一个值。
 4、唯一性约束:unique,确保列中的所有值都是唯一的,类似于主键,但是可以为空,而且一个表可以有多个唯一约束。
 5、默认值约束:default,在插入表数据时,如果没有定义值,会提供一个默认值。
 6、自增约束:每行自动生成一个唯一标识。通常和主键在一起使用。
主表从表




实验1
条件:
主表company从表depart
 company:
 1、woxk_id非空,主键int(4)不满四位要补齐
 2、name 非空 char(5)
 3、sex非空 char(2)
 depart
 1、de_id 非空 主键int(6).不满六位要补齐
 2、work_id 要和主表的work_id关联为外键
 3、addrss 为空,但是有一个默认值
 4、phone 不能为空而且不能相同。
create table company(
 work_id int(4) zerofill primary key,
 name varchar(5) not null,
 sex char (2) not null
 );
create table depart (
 de_id int(6) zerofill primary key,
 work_id int(4),
 address varchar(255) default '地址不详',
 phone int(11) not null unique
 );
 alter table depart add foreign key (work_id) references company (work_id);
实验2
1、school
 de_id int(4)不满四位要补齐,而且自增长 主键
 name VARCHAR(15) not NULL
 email varchar(45)可以为空,但是不能重复,而且有默认值 bdqnkgc126.coM
 2、cloud ky32
 id  自增长主键 int
 class_name 不能为空。
 de_id 外键,外键和主表的主键关联。
 adress可以为空,默认是地址不详
 phone int 不能为空,而且不能重复。
 3、要求删除外键关联。删除从表的主键,重新定义主键为phone.
create table school (
 de_id int (4) zerofill auto_increment primary key,
 name varchar(10) not null,
 email varchar(25) default 'baqnkgc@126.com'
 );
create table cloud_ky32 (i
 d int(4) zerofill auto_increment primary key,
 de_id int(4) zerofill,
 address varchar(255)default'地址不详',
 phone int(11) not null unique,
 foreign key (de_id) references school (de_id)
 );
show create table cloud_ky32;
alter table cloud_ky32 drop foreign key cloud_ky32_ibfk_1;
desc cloud_ky32;
alter table cloud_ky32 modify id int(5);
alter table cloud_ky32 drop primary key;
alter table cloud_ky32 add primary key(phone);
  
总结
1.if not exists test:
 test这个表不存在,才会创建。
2.zerofill:
 自动填充位置,自动补齐
3.primary key:
 当前表的主键,主键只能有一个,而且唯一,而且不能为空
4.auto_increment:
 表示该字段可以自增长,默认从1开始,每条记录会自动递增1
5.unique key 或 unique:
 唯一性约束。跟主键不同,可以为空。即不能重复。
6.create table test like test;
 复制,通过like这个语法直接复制test的表结构。只是复制表结构,不能复制表里面的数据
7.insert into test1 select * from test;
 把test表里面的数据,复制到test1,两个表数据结构要一致。
8.create table test1 (select * from test);
 创建一张表,test1,数据从test来,表结构也是test;
9.delete from test;truncate table test;drop table test;删除表
10.create temporary table test1;创建临时表
11.default '.....' 默认值是.....
12.not null 不为空
13.foreign key (id) references school (id)创建class表时设置外键
alter table class add foreign key (id) references school (id);创建class表后设置外键
14.alter table test drop primary key;删除主键
如果有自增,需要先修改数据类型。
alter table test modify id int(5);修改test表id的数据类型
15.alter table test add id int(6) primary key;添加id为主键
16.alter table test drop foreign key 外键名称;删除外键



















