扩展语句
create table if not exists ky32 ():如果表存在就不创建了
zerofill 自动补齐(在命令行可以查看)
primary key 设置成主键
auto_increment 表示这一列可以自增,默认从1开始,每条记录会自增1
unique key 不能重复
create table test like ky32;
通过like这个语法直接复制ky32表的结构(但是没有数据)
insert into test select * from ky32;
把ky32 表里的数据,复制到test,两个表数据结构要一致。
create table test1 (select * from ky32);
创建一张表,test1,数据从ky32来,表结构也是ky32;直接全部复制
删除表内所有数据:
delete truncate drop
delete from ky32;
delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的记录之后继续自增写入。
truncate table ky32;
清空表中的数据,而且会把表结构重新建立。速度上比delete快,推荐
drop table test1;
直接删除表,不推荐。
创建临时表:临时表一般用于调试,而且临时表创建之后在表的目录当中是不显示的连接退出之后,临时表会被销毁。而且临时表无法创建外键。
create temporary table test1 ();
MySQL的约束方式;
6种常见的约束:
1,主键约束,用于唯一表示表中的每一行,主键列的值必须唯一而且不能为空,一个表只能有一个主键
2,外键约束,用于建立表于表之间的关系,一般是和另一张表的主键关联。保证数据引用的完整性。一个表可以有多个外键。
3,非空约束,not null 必须要有一个值。
4,唯一性约束:unique,确保列中的所有值都是唯一的,类似于主键,但是可以为空,而且一个表可以有多个唯一约束。
5,默认值约束:default,在插入数据时,如果没有定义值,会提供一个默认值。
6,自增约束:每行自动生成一个唯一标识。通常和主键在一起使用。
foreign key (card_id) references student (card_id) 外键连接,要保存一致
show create table class; 在命令行显示外键连接
alter table class drop foreign key class_ibfk_1;
删除外键连接。
desc class 查看class表的结构
mul:表示这是一个索引。
alter table class drop index card_id;
删除class表中card_id的索引
alter table class drop primary key;
删除主键
这是一个自增约束的主键,要改变数据类型要先解除自增约束,之后主键才能删除。
alter table class modify stud_id int (12); 改变类型
练习:
用修改的方式添加主键
alter table depart add foreign key (work_id) references company (work_id);
修改主键
alter table depart drop primary key;
alter table depart add primary key (de_id);
CREATE TABLE company (
work_id int(4) PRIMARY KEY ZEROFILL,
name char(5) not null,
sex char(2) not null
);
desc company;
CREATE TABLE depart (
de_id int(6) ZEROFILL PRIMARY KEY,
work_id int(4) not null ZEROFILL,
FOREIGN KEY (work_id) REFERENCES company (work_id),
addrss VARCHAR(255) DEFAULT '地址不详',