MYSQL之约束和数据库的备份与还原

部分知识回顾:
1、删除表:drop table 表名;
2、创建表:create 表名(
列名 类型,
列名 类型
);
3、删除数据库
drop database 名称;
4、创建数据库
create database 名称;

1、数据完整性

  • 实体完整性:

实体:一条记录是一条实体
实体完整性的作用:保证每一条数据不重复.
约束类型:主键约束、唯一约束,自动增长列

  • 域完整性

域:一个单元格
域完整性约束:数据类型、非空约束、默认值约束

  • 参照完整性

外键约束

		非空约束 not  null
		唯一约束 unique
		主键约束 primary key  非空且唯一
		外键约束 foreign key

一、非空约束

添加方式1、在创建表时加入

CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL
); #表示在添加数据时name的值不能为空

删除约束就是修改表的某一列;

ALTER TABLE stu MODIFY NAME VARCHAR(20);

添加方式2、创建表后添加

ALTER TABLE  stu MODIFY NAME VARCHAR(20) NOT NULL;

二、唯一约束

1、在创建表时加入

CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE
);

注意:插入的值不可以一样,但是可以都是null
2、删除

ALTER TABLE 表名 DROP INDEX 含有唯一性的列 ;
ALTER TABLE stu DROP INDEX phone_number ;

3、在创建表后添加

ALTER TABLE  stu MODIFY phone_number  VARCHAR(20) UNIQUE ;

三、主键约束

1、特点:非空且唯一
2、一张表只能有一个字段是主键约束
3、主键是表的唯一标识

1、在创建表时加入

CREATE TABLE stu(
	id 	 INT   PRIMARY KEY,
	NAME VARCHAR(20)
);

2、删除

ALTER TABLE stu DROP  PRIMARY KEY;//因为主键是唯一的,因此不需要写drop index id,但是需要加上primary key

3、创建表后添加

ALTER TABLE stu MODIFY id INT PRIMARY KEY;

4、自动增长
(1)、关键字:auto_increment
(2)、使用方式:
在创建表时加入

CREATE TABLE stu(
 id INT PRIMARY KEY AUTO_INCREMENT,
 NAME VARCHAR(20)
);

(3)、使用场景:一般是用于主键,当主键是数字并且数字是按逐一增加1排列时使用
(4)、使用自动增长后,添加数据时可以不添加相应字段,因为它会自动添加。
当然,也可以自己添加。自动增长时,其数据只于前一个数据有关,比前一个数据加1.
(5)、删除

ALTER TABLE 表名 MODIFY 列名 类型;

四、外键约束

1、关键字:foreign key
2、概念:将表a(子表)中的某一列与表b(父表)中的某一列关联。或者将表的某几列进行关联。
3、注意:
形成关联后,父表中在子表中正在使用的内容不可以在父表中删除,父表中没有的内容,不可以在子表中添加。
所关联的内容必须是主键约束或者唯一约束的。
4、添加方式:
创建表时添加;

CONSTRAINT 外键名(任意) FOREIGN KEY (外键列) REFERENCES 主表(外键列关联的列)
CREATE TABLE department(
id INT PRIMARY KEY ,
dep_name VARCHAR(20),
POSITION VARCHAR(20)
);
DROP TABLE department	;
SELECT *FROM department;
INSERT INTO department VALUES(1,'调研部','广州');
INSERT INTO department VALUES(2,'行政部','上海');

CREATE TABLE employee(
id INT PRIMARY KEY,
NAME VARCHAR(20),
dep_id INT, #varchar(20),
CONSTRAINT dep_emp_id FOREIGN KEY (dep_id) REFERENCES department(id)
);
INSERT INTO employee VALUES(1,'zs',1);
INSERT INTO employee VALUES(2,'ls',1);
INSERT INTO employee VALUES(3,'ww',2);
INSERT INTO employee VALUES (4,'zl',4);

创建表后添加

ALTER TABLE 子表 ADD CONSTRAINT  外键名 FOREIGN KEY (外键列) REFERENCES 父表(所关联的列) ;

删除

ALTER TABLE 子表名 DROP FOREIGN KEY 外键名;

5、级联操作
概念:添加级联操作后,修改父表中的内容,子表中的内容也会改变。但是不可以删除在子表中使用的内容
添加方法:再添加外键约束时添加

ALTER TABLE employee ADD CONSTRAINT  dep_emp_id 
FOREIGN KEY (dep_id) REFERENCES department(id) ON UPDATE CASCADE;

删除:

ALTER TABLE employee ADD CONSTRAINT  dep_emp_id 
FOREIGN KEY (dep_id) REFERENCES department(id) ON DELETE CASCADE;

6、设置默认值
default 默认值

CREATE TABLE USER(
user_ID VARCHAR(20) PRIMARY KEY ,
user_name VARCHAR(20) NOT NULL UNIQUE,
user_password VARCHAR(20) NOT NULL,
user_address VARCHAR(30) NOT NULL,
user_sex VARCHAR(1) DEFAULT '女',#设置默认值为女
user_phone VARCHAR(11) NOT NULL UNIQUE
);

备份、还原

命令行
1、备份

mysqldump -u用户名 -p密码 要备份的数据库名称 > 备份文件的存储位置

2、还原

先创建数据库
source 备份文件的位置;

sqlyog
在这里插入图片描述
在这里插入图片描述
还原
在这里插入图片描述

发布了41 篇原创文章 · 获赞 5 · 访问量 2951

猜你喜欢

转载自blog.csdn.net/qq_43573743/article/details/104134401