数据库备份与还原:
备份格式:mysqldump -u用户名 -p密码 数据库 > 文件的路径
还原格式:source 路径
可视化工具中有更快捷的方式:
数据库约束:
-
-
UNIQUE
: 唯一 -
NOT NULL
: 非空 -
DEFAULT
: 默认 -
FOREIGN KEY
: 外键
主键 primary key
主键的特点:
- 每一个表最好都建一个主键,当然没有也可以
- 主键是唯一的,一个表中只有一个主键,主键的值能重复
- 主键是非空的,就主键必须有值,且不能重复
综合以上特点,引入自增,AUTO_INCREMENT
自增的特点:字段类型必须为int类型,且为主键,那么这个主键的值就会随数据行数增加而增加以0,1,2,3....这样增加
UNIQUE
: 唯一:确保数据的唯一性,如果name字段使用了该该关键字则不能出现两个名字一样的人
NOT NULL
: 非空: 该字段必须填写,不能为空通常用于性别,名字等不可或缺的属性
DEFAULT:默认:为字段设置默认值,比如归属地默认为中国
create table stu1( id int primary key auto_increment, -- id字段主键字段递增 name varchar(20) not null, -- name字段 非空 sex varchar(2) not null, -- sex字段 非空 p_id varchar(20) unique not null, -- p_id字段 非空,且唯一不能重复 site varchar(20) default '中国' -- site字段 默认值为 中国 );
添加数据:
insert into stu1(`name`,sex,p_id) values('李四','男','212090832109843');
我们并没有廷加id和site;但是语句执行成功
删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;
alter table stu drop primary key -- 删除stu表的主键
FOREIGN KEY
: 外键
外建是表与表之间的约束,所以需要两个表
create table teacher( id int primary key auto_increment -- 创建教室id 主键自增 ); create table stu1( s_name varchar(20) , t_id int, constraint s_name_t_name foreign key(t_id) references teacher(id) -- 外建关联t_id 关联教师id );
约束效果:
为教师表添加三个id
约束的另一个特点:当从表约束还存在时,主表就无法删除数据,需要删除从表的数据之后才能在删除主表,比如学生表中有1001这个存在,则教师表中的1001那条数据就不能被删除,需要学生表中的t_id字段没有1001这个值。