MYSQL(三)

数据库备份与还原:

备份格式:mysqldump -u用户名 -p密码 数据库 > 文件的路径

 

 

 

 

 

 还原格式:source 路径

 

 

 可视化工具中有更快捷的方式:

数据库约束:

  • PRIMARY KEY: 主键

  • 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这个值。

posted @ 2020-08-23 09:44  一生的风景  阅读(86)  评论(0编辑  收藏  举报