数据库拓展语句,约束方式和用户管理

拓展语句

数据库拓展语句,约束方式和用户管理_第1张图片

数据库拓展语句,约束方式和用户管理_第2张图片

删除表内的所有数据

delete truncate  drop

1.delete from test;
delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的记录之后继续自增写入 

2.truncate table test;

清空表的数据,而且会把表结构重新建立。速度上比delete快,推荐

3.drop table test;

删除表,不推荐。

创建临时表

数据库拓展语句,约束方式和用户管理_第3张图片

mysal的约束方式:

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

主表从表

数据库拓展语句,约束方式和用户管理_第4张图片

数据库拓展语句,约束方式和用户管理_第5张图片

数据库拓展语句,约束方式和用户管理_第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 '[email protected]'
);

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 外键名称;删除外键

你可能感兴趣的:(数据库)