- MySQL Document-Dark Horse 프로그래머 (Tencent Weiyun) : https://share.weiyun.com/RaCdIwas
- 1-MySQL Foundation.pdf, 2-MySQL 제약 조건 및 design.pdf, 3-MySQL 다중 테이블 쿼리 및 트랜잭션 작업 .pdf
- MySQL 연구 노트 01 [데이터베이스 개념, MySQL 설치 및 사용] [day01]
- MySQL 연구 노트 02 [SQL 기본 개념 및 일반 문법, 데이터베이스 CRUD 작업] [day01]
MySQL 연구 노트 03 [데이터베이스 테이블의 CRUD 작업, 데이터베이스 테이블에 기록 된 기본 작업, 클라이언트 측 그래픽 인터페이스 도구 SQLyog] [day01]
MySQL 연구 노트 04 [데이터베이스 쿼리 작업, 테이블 제약] [day01, day02]
MySQL 연구 노트 05 [다중 테이블 작업, 세 가지 패러다임, 데이터베이스 백업 및 복원] [day02]
목차
09 다중 테이블 작업
다중 테이블 관계 소개
데이터베이스 설계 -1. 여러 테이블 간의 관계
1. 분류 :
1. 일대일 (이해) :
* 예 : 사람과 신분증
* 분석 : 한 사람은 하나의 ID 만 가지고 있고 하나의 ID는 한 사람에게만 대응할 수 있습니다.
2. 일대 다 (다 대일) :
* 예 : 부서 및 직원
* 분석 : 한 부서에 여러 직원이 있으며 한 직원은 한 부서에만 대응할 수 있습니다.
3. 다 대다 :
* 예 : 학생 및 코스
* 분석 : 학생은 많은 코스를 선택할 수 있으며 코스는 많은 학생이 선택할 수 있습니다.
다중 테이블 관계 _ 일대 다 관계 구현
데이터베이스 설계 -1. 여러 테이블 간의 관계
1. 분류 :
1. 일대일 (이해) :
* 예 : 사람과 신분증
* 분석 : 한 사람은 하나의 ID 만 가지고 있고 하나의 ID는 한 사람에게만 대응할 수 있습니다.
2. 일대 다 (다 대일) :
* 예 : 부서 및 직원
* 분석 : 한 부서에 여러 직원이 있으며 한 직원은 한 부서에만 대응할 수 있습니다.
3. 다 대다 :
* 예 : 학생 및 코스
* 분석 : 학생은 많은 코스를 선택할 수 있으며 코스는 많은 학생이 선택할 수 있습니다.2. 관계 실현 :
1. 일대 다 (다 대일) :
* 예 : 부서 및 직원
* 구현 방법 : 여러 측면에 외래 키를 설정하여 한 쪽의 기본 키를 가리 킵니다. .
다중 테이블 관계 _ 다 대다 관계 실현
2. 관계 실현 :
1. 일대 다 (다 대일) :
* 예 : 부서 및 직원
* 구현 방법 : 여러 측면에 외래 키를 설정하여 한 쪽의 기본 키를 가리 킵니다. .
2. 다 대다 :
* 예 : 학생 및 코스
* 구현 모드 : 다 대다 관계를 실현하려면 세 번째 중간 테이블의 도움이 필요합니다. 중간 테이블에는 두 개 이상의 필드가 포함되어 있으며이 두 필드는 세 번째 테이블의 외래 키로 사용되며 각각 두 테이블의 기본 키를 가리 킵니다.
3. 일대일 (이해) :
* 예 : 사람과 신분증
* 구현 : 일대일 관계가 실현되고, 고유 한 외래 키가 양쪽에 추가되어 기본 키를 가리킬 수 있습니다. 다른 쪽.
다중 테이블 관계 _ 일대일 관계 실현
2. 관계 실현 :
1. 일대 다 (다 대일) :
* 예 : 부서 및 직원
* 구현 방법 : 여러 측면에 외래 키를 설정하여 한 쪽의 기본 키를 가리 킵니다. .
2. 다 대다 :
* 예 : 학생 및 코스
* 구현 모드 : 다 대다 관계를 실현하려면 세 번째 중간 테이블의 도움이 필요합니다. 중간 테이블에는 두 개 이상의 필드가 포함되어 있으며이 두 필드는 세 번째 테이블의 외래 키로 사용되며 각각 두 테이블의 기본 키를 가리 킵니다.
3. 일대일 (이해) :
* 예 : 사람과 신분증
* 구현 : 일대일 관계가 실현되고, 고유 한 외래 키가 양쪽에 추가되어 기본 키를 가리킬 수 있습니다. 다른 쪽.
다중 테이블 relationship_case
-- 创建旅游线路分类表 tab_category
-- cid 旅游线路分类主键,自动增长
-- cname 旅游线路分类名称非空,唯一,字符串 100
CREATE TABLE tab_category (
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR (100) NOT NULL UNIQUE
) ;
-- 创建旅游线路表 tab_route
/*
rid 旅游线路主键,自动增长
rname 旅游线路名称非空,唯一,字符串 100
price 价格
rdate 上架时间,日期类型
cid 外键,所属分类
*/
CREATE TABLE tab_route (
rid INT PRIMARY KEY AUTO_INCREMENT,
rname VARCHAR (100) NOT NULL UNIQUE,
price DOUBLE,
rdate DATE,
cid INT,
FOREIGN KEY (cid) REFERENCES tab_category (cid)
) ;
/*创建用户表 tab_user
uid 用户主键,自增长
username 用户名长度 100,唯一,非空
password 密码长度 30,非空
name 真实姓名长度 100
birthday 生日
sex 性别,定长字符串 1
telephone 手机号,字符串 11
email 邮箱,字符串长度 100
*/
CREATE TABLE tab_user (
uid INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR (100) UNIQUE NOT NULL,
PASSWORD VARCHAR (30) NOT NULL,
NAME VARCHAR (100),
birthday DATE,
sex CHAR(1) DEFAULT '男',
telephone VARCHAR (11),
email VARCHAR (100)
) ;
/*
创建收藏表 tab_favorite
rid 旅游线路 id,外键
date 收藏时间
uid 用户 id,外键
rid 和 uid 不能重复,设置复合主键,同一个用户不能收藏同一个线路两次
*/
CREATE TABLE tab_favorite (
rid INT, -- 线路id
DATE DATETIME,
uid INT,
-- 用户id
-- 创建复合主键
PRIMARY KEY (rid, uid),
-- 联合主键
FOREIGN KEY (rid) REFERENCES tab_route (rid),
FOREIGN KEY (uid) REFERENCES tab_user (uid)
) ;
10 세 가지 패러다임
패러다임 개요
2. 데이터베이스 설계 패러다임
* 개념 : 데이터베이스를 설계 할 때 따라야 할 몇 가지 사양. 뒤에있는 패러다임 요구 사항을 따르려면 먼저 전면의 모든 패러다임 요구 사항을 따라야합니다.
관계형 데이터베이스를 설계 할 때는 서로 다른 사양에 따라 합리적인 관계형 데이터베이스를 설계해야합니다. 이러한 서로 다른 사양을 서로 다른 패러다임이라고합니다. 다양한 패러다임을 하위 표준으로 제시합니다. 패러다임이 높을수록 데이터베이스의 중복성이 낮아집니다.
관계형 데이터베이스에는 현재 6 개의 패러다임이 있습니다 : 제 1 정규형 (1NF), 제 2 정규형 (2NF), 제 3 정규형 (3NF), Bath-Cord 정규형 (BCNF), 제 4 정규형 (4NF) 및 제 5 정규형 ( 완벽한 패러다임이라고도하는 5NF).
* 분류 :
1. First Normal Form (1NF) : 각 열은 분할 할 수없는 원자 데이터 항목입니다.
2. 2NF (Second Normal Form) : 1NF를 기반으로 비 코드 속성은 코드에 완전히 의존해야합니다 (1NF를 기반으로 기본 코드에 대한 비 기본 속성의 부분적인 기능 의존성이 제거됨).
3. 제 3 정규형 (3NF) : 2NF를 기반으로, 모든 비 기본 속성은 다른 비 기본 속성에 의존하지 않습니다 (2NF를 기반으로 한 전 이적 의존성 제거).
세 가지 패러다임에 대한 자세한 설명
2. 데이터베이스 설계 패러다임
* 개념 : 데이터베이스를 설계 할 때 따라야 할 몇 가지 사양. 뒤에있는 패러다임 요구 사항을 따르려면 먼저 전면의 모든 패러다임 요구 사항을 따라야합니다.
관계형 데이터베이스를 설계 할 때는 서로 다른 사양에 따라 합리적인 관계형 데이터베이스를 설계해야합니다. 이러한 서로 다른 사양을 서로 다른 패러다임이라고합니다. 다양한 패러다임을 하위 표준으로 제시합니다. 패러다임이 높을수록 데이터베이스의 중복성이 낮아집니다.
관계형 데이터베이스에는 현재 6 개의 패러다임이 있습니다 : 제 1 정규형 (1NF), 제 2 정규형 (2NF), 제 3 정규형 (3NF), Bath-Cord 정규형 (BCNF), 제 4 정규형 (4NF) 및 제 5 정규형 ( 완벽한 패러다임이라고도하는 5NF).
* 분류 :
1. First Normal Form (1NF) : 각 열은 분할 할 수없는 원자 데이터 항목입니다.
2. 2NF (Second Normal Form) : 1NF를 기반으로 비 코드 속성은 코드에 완전히 의존해야합니다 (1NF를 기반으로 기본 코드에 대한 비 기본 속성의 부분적인 기능 의존성이 제거됨).* 몇 가지 개념 :
1. 기능적 종속성 : A-> B. 속성 A (속성 그룹)의 값을 사용하여 고유 속성 B의 값을 결정할 수있는 경우 B는 A에 종속됩니다.
예 : 학생 ID-> 이름. (학생 번호, 코스 이름)-> 점수
2. 완전한 기능적 종속성 : A-> B. A가 속성 그룹 인 경우 B의 속성 값 결정은 속성의 모든 속성 값에 의존해야합니다. 그룹 A.
예 : (학생 ID, 코스 이름)-> 점수
3. 부분적 기능 의존성 : A-> B, A가 속성 그룹 인 경우 B의 속성 값 결정은 일부 값에만 의존하면됩니다. 속성 그룹 A에서, 즉 할 수 있습니다.
예 : (학생 ID, 코스 이름)-> 이름
4. 전달 함수 종속성 : A-> B, B-> C. 속성 A (속성 그룹)의 값을 사용하여 고유 B 속성의 값을 판별 할 수 있고 속성 B (속성 그룹)의 값을 사용하여 고유 C 속성의 값을 판별 할 수있는 경우 C 전달 함수는 A에 의존한다고합니다.
예 : 학생 ID-> 부서 이름, 부서 이름-> 부장
5. 코드 : 속성 또는 속성 그룹이 테이블의 다른 모든 속성에 완전히 종속 된 경우이 속성 (속성 그룹)을 The 테이블의 코드.
예 : 테이블의 코드는 다음과 같습니다. (학생 ID, 코스 이름)
* 기본 속성 :
코드 속성 그룹의 모든 속성 * 기본이 아닌 속성 : 코드 속성 그룹을 제외한 속성
3. 제 3 정규형 (3NF) : 2NF를 기반으로, 모든 비 기본 속성은 다른 비 기본 속성에 의존하지 않습니다 (2NF를 기반으로 한 전 이적 의존성 제거).
11 데이터베이스 백업 및 복원
1. 명령 줄 :
* 구문 :
* 백업 : mysqldump -u 사용자 이름 -p 암호 데이터베이스 이름> 저장된 경로
* 복원 :
1. 데이터베이스에 로그인
2. 데이터베이스 생성
3. 데이터베이스 사용
4. 파일을 실행합니다. 소스 파일 경로
2. 그래픽 도구