- 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]
목차
Transaction_default 자동 커밋 및 수동 커밋
Transaction_Transaction 격리 수준 소개
Transaction_transaction 격리 수준 데모 1
DCL_Manage User_Change Password
15 업무
Business_Basic 데모
1. 트랜잭션의 기본 소개
1. 개념 :
* 여러 단계를 포함하는 비즈니스 작업이 트랜잭션으로 관리되는 경우 이러한 작업은 동시에 성공하거나 실패합니다.
2. 작업 :
1. 트랜잭션 시작 트랜잭션;
2. 롤백 : 롤백 (rollback);
3. 제출 : 커밋
3. 예 :
TABLE 계정 생성 (
ID INT PRIMARY KEY AUTO_INCREMENT를
NAME VARCHAR (10),
균형 DOUBLE
)
-
- 데이터 추가 INSERT INTO account (NAME, balance) VALUES ( 'zhangsan', 1000), ( 'lisi', 1000);
SELECT * FROM account;
UPDATE account SET balance = 1000;
-Zhang San은 500 위안을 Li Si로 이체
-0 . 거래 시작 거래
시작;
-1. Zhang San 계정 -500
업데이트 계정 SET 잔액 = 잔액 -500 WHERE NAME = 'zhangsan';
-2. Li Si 계정 +500-
문제가 발생했습니다 ...
UPDATE 계정 SET 잔액 = 잔액 + 500 WHERE NAME = ' 리시 ';
- 트랜잭션을 커밋, 실행에 문제가없는 것을 발견
COMMIT;
- 문제가 발견 롤백 트랜잭션
ROLLBACK;
Transaction_default 자동 커밋 및 수동 커밋
4. MySQL 데이터베이스
의 트랜잭션은 기본적으로 자동 제출됩니다 .
* 트랜잭션 제출에는 두 가지 방법이 있습니다. * 자동 제출 :
* mysql이 자동으로 제출됩니다.
* DML (추가, 삭제, 수정) 문이 자동으로 트랜잭션을 제출합니다.
* 수동 제출 :
* Oracle 데이터베이스는 기본적으로 트랜잭션을 수동으로 커밋
* 트랜잭션을 제출하기 전에 트랜잭션을 시작해야 합니다 * 트랜잭션
의 기본 커밋 방법을 수정합니다 :
* 트랜잭션의 기본 커밋 방법보기 : SELECT @@ autocommit; -1은 자동 커밋을 의미합니다. 0은 수동 제출을 의미합니다.
* 기본 제출 방법을 수정합니다. set @@ autocommit = 0;
거래 _ 거래의 4 가지 특징
2. 트랜잭션의 네 가지 주요 특성 :
1. 원 자성 : 동시에 성공하거나 실패하는 분할 불가능한 작업의 최소 단위입니다.
2. 지속성 : 트랜잭션이 커밋되거나 롤백 될 때 데이터베이스는 데이터를 지속적으로 저장합니다.
3. 격리 : 여러 트랜잭션 사이. 독립적 인.
4. 일관성 : 트랜잭션 작업 전후에 총 데이터 양은 변경되지 않습니다. 3. 트랜잭션
의 격리 수준 (이해)
Transaction_Transaction 격리 수준 소개
3. 트랜잭션 격리 수준 (이해)
* 개념 : 서로 독립적 인 여러 트랜잭션 간의 격리. 그러나 여러 트랜잭션이 동일한 데이터 배치에서 작동하는 경우 몇 가지 문제가 발생하고 다른 격리 수준을 설정하면 이러한 문제를 해결할 수 있습니다.
* 문제점 :
1. 더티 읽기 : 한 트랜잭션이 다른 트랜잭션에서 커밋되지 않은 데이터를 읽습니다
. 2. 반복불가능한읽기 (가상 읽기) : 동일한 트랜잭션에서 두 번 읽은 데이터가 다릅니다.
3. 팬텀 읽기 : 트랜잭션 작업 (DML) 데이터 테이블의 모든 레코드와 다른 트랜잭션이 데이터 조각을 추가하고 첫 번째 트랜잭션은 자체 수정을 쿼리 할 수 없습니다.
* 격리 수준 :
1. 커밋되지 않은 읽기 : 커밋되지 않은 읽기
* 생성 된 문제 : 더티 읽기, 반복 불가능한 읽기, 팬텀 읽기
2. 커밋 된 읽기 : 커밋 된 읽기 (Oracle)
* 생성 된 문제 : 반복 불가능한 읽기, 팬텀 읽기
3. 반복 가능한 읽기 : 반복 가능한 읽기 (MySQL 기본값)
* 문제 : 팬텀 읽기
4. 직렬화 가능 : 직렬화
* 모든 문제를 해결할 수 있음* 참고 : 작은 격리 수준에서 대규모 격리 수준으로 보안은 점점 더 높아지고 있지만 효율성은 점점 낮아지고 있습니다.
* 데이터베이스 쿼리 격리 수준 :
* @@ tx_isolation 선택,
* 데이터베이스 설정 격리 수준 :
* 전역 트랜잭션 격리 수준 문자열 설정;* 설명 :
커밋되지 않은 읽기 전역 트랜잭션 격리 수준 설정;
거래 시작;
-转账 操作
업데이트 계정 세트 잔액 = 잔액-500 여기서 id = 1;
계정 세트 잔액 업데이트 = 잔액 + 500 여기서 id = 2;
Transaction_transaction 격리 수준 데모 1
가상 읽기는 MySQL 데이터베이스에서 시연 할 수 없으므로 시연하지 않습니다. 더티 읽기 문제 해결 : 트랜잭션의 격리 수준을 "커밋 된 읽기"로 설정합니다.
트랜잭션 _ 트랜잭션 격리 수준 데모 2
16 사용자 관리 및 권한 관리
DCL_ 사용자 관리 _ 추가, 삭제 및 확인
* SQL 분류 :
1. DDL : 데이터베이스 및 테이블 운영
2. DML : 테이블에서 데이터 추가, 삭제 및 수정
3. DQL : 테이블에서 데이터 쿼리
4. DCL : 사용자 및 권한 관리* DBA : 데이터베이스 관리자
* DCL : 사용자 관리, 권한 부여
1. 사용자 관리 1. 사용자
추가 :
* 구문 : CREATE USER'Username '@'Hostname 'IDENTIFIED BY'Password',
2. 사용자 삭제 :
* 구문 : DROP USER'Username '@'Hostname ';
3. 사용자 비밀번호 수정
4. 사용자 쿼리 :
-1. mysql 데이터베이스로 전환
USE myql;
-2. 쿼리 사용자 테이블
SELECT * FROM USER;
* 와일드 카드 : %는 사용자가 모든 호스트에서 사용할 수 있음을 의미합니다. 데이터베이스
사용자 생성
사용자 삭제
DCL_Manage User_Change Password
3. 사용자 비밀번호 수정 :
UPDATE USER SET PASSWORD = PASSWORD ( 'new password') WHERE USER = 'user name'; [Modify password method 1]
UPDATE USER SET PASSWORD = PASSWORD ( 'abc') WHERE USER = 'lisi';
SET PASSWORD FOR'User Name '@'Host Name '= PASSWORD ('New Password '); [비밀번호 수정 방법 2]
SET PASSWORD FOR'root'@ 'localhost'= PASSWORD ( '123');* mysql에서 루트 사용자의 비밀번호를 잊으 셨나요?
1. cmd-> net stop mysql을 사용하여 mysql 서비스를 중지
* 관리자가 cmd를 실행해야합니다.2. 인증없이 mysql 서비스를 시작합니다. mysqld --skip-grant-tables
3. 새 cmd 창을 열고 mysql 명령을 직접 입력 한 다음 Enter를 누릅니다. 성공적으로 로그인 할 수 있습니다
. 4. mysql 사용,
5. update user set password = password ( 'your new password') where user = 'root',
6. 두 개의 창을 닫습니다
. 7. 작업 관리자를 열고 mysqld.exe를 수동으로 종료합니다. 프로세스
8. mysql 서비스를 시작
합니다. 9. 새 암호를 사용합니다.
비밀번호 변경 방법 1
비밀번호 변경 방법 2
mysql에서 루트 사용자의 비밀번호를 잊으셨습니까?
- cmd-> net stop mysql stop mysql 서비스 (관리자가 cmd를 실행해야 함)
- 인증없이 mysql 서비스 시작 : mysqld --skip-grant-tables
- 새 cmd 창을 열고 mysql 명령을 직접 입력 한 다음 Enter 키를 누릅니다. 성공적으로 로그인 할 수 있습니다.
- mysql을 사용하십시오.
- update user set password = password ( 'your new password') where user = 'root';
- 두 개의 창 닫기
- 작업 관리자를 열고 mysqld.exe 프로세스를 수동으로 종료합니다.
- mysql 서비스 시작
- 새 비밀번호로 로그인하십시오.
DCL_ 관리 권한
2. 권한 관리 :
1. 조회 권한 :
-조회 권한
SHOW GRANTS
FOR'username '@'hostname ',SHOW GRANTS FOR'lisi'@ '%';2.
권한
부여 : -권한 부여 데이터베이스 이름에 대한 권한 목록 부여 테이블 이름 'username'@ 'hostname'-
사용자 Zhang San에게 모든 권한 부여, 모든 데이터베이스의 모든 테이블에
GRANT ALL ON *. * TO'zhangsan '@'localhost ';
3. 권한 취소 :
-권한 취소 :
데이터베이스 이름에 대한 권한 목록 취소
.'user name '@'host name '의 테이블 이름, db3.`account` FROM'lisi '@'%의 테이블 이름 ';