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、創建表後添加
stu:表名
ig:主鍵列(主碼)
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
或者
ALTER TABLE stu add Primary Key(id);

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
在這裏插入圖片描述
在這裏插入圖片描述
還原
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章