拓展语句
删除表内的所有数据
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 外键名称;删除外键