반응형

■ 트랜잭션

트랜잭션의 사용은 어떠한 작업에 있어서 구간을 선정하고 해당 작업에 오류나 실수를 COMMIT을 실행하기 전까지 본 DB에 영향을 주지 않는것을 의미한다.


I. 자동 커밋(commit) 비활성화

설명) commit 을 실행하기 전까지의 작업을 본 서버에 영향을 주지 않는다.
  • set autocommit = 0

II. 트랜잭션 시작

설명) start transaction 또는 begin 둘다 사용가능하며, 수정 작업 이후 rollback 을 실행하면 트랜잭션을 시작했던 작업으로 돌아오고 수정내용은 적용되지 않는다.
  • 1) START TRANSACTION
  • 2) BEGIN

III. 수정 처리

1) 수정 전 데이터 확인

2) 수정 처리

설명) author 가 '유은정' 인 레코드의 title을 '산' 으로 변경

 

3) 수정 후 데이터 확인

IV. ROLLBACK 실행

설명) start transaction 혹은 begin 실행했던 작업 위치로 돌아간다.

 

1) 수정 처리한 레코드 확인

설명) author 가 '유은정' 인 레코드의 title이 '산' 에서  '바다' 로 변경되었다. 즉, 수정 전으로 작업위치가 돌아갔다는걸 확인할 수 있다.

III. 재수정 처리

1) 수정 처리

설명) author 가 '유은정' 인 레코드의 title을 '산' 으로 변경

 

3) 수정 후 데이터 확인

설명) author 가 '유은정' 인 레코드의 title을 '산' 으로 변경될걸 확인

 

IV. COMMIT 실행

설명) 수정 작업 저장

 

1) 수정 된 데이터 확인

설명) author 가 '유은정' 인 레코드의 title을 '바다' 가 아닌 '산' 으로 변경 저장된걸 확인

 

 

반응형

'DataBase > MySQL' 카테고리의 다른 글

[MySQL] CASE 문  (0) 2020.07.20
[MySQL] DATE_FORMAT 날짜데이터 형식 변환  (0) 2020.07.20
[DB] MySQL 서버 원격 접속  (0) 2020.06.01
[DB] MySQL SQL파일 실행 및 백업  (0) 2020.05.27
[DB] MySQL 제약조건 확인  (0) 2020.05.26
반응형

■ MySQL 서버 원격 접속

I. 서버 DB 권한 사용자 확인

사용자 권한 정보 테이블이 있는 mysql 데이터베이스 접속
use mysql;
사용자 권한 정보 테이블에서 접속하고자 하는 user ID 와 host 확인
select user, host from user;


사용자 권한 정보 테이블에 접속하고자 하는 

user ID 와 host가 없을경우 아래 진행

 

I. 서버 DB 권한 사용자 추가

  • userID : 사용자 ID로 지정
  • IP address : 사용자 IP로 지정
  • password : 사용자 password로 지정
grant all privileges on *.* to 접속ID@'IP주소' identified by '비밀번호';

※ 실행 결과

II. 서버 DB 권한 사용자 등록 확인

※ 필자는 권한 사용자 hwan을 추가했다.

III. MySQL 서버 재시작

  • 윈도우 검색창 '서비스' 검색
  • '서비스' 실행

  • MySQL 서버 선택
  • 서비스 '다시 시작'

IV. 추가한 권한 사용자로 MySQL 서버 접속확인

반응형
반응형

■ SQL파일 실행

1. 프롬프트(cmd) 환경

예시) mysql -u(유저명) -p < sql파일명.sql
mysql -uroot -p < testFile.sql

1) testFile.sql 내용 확인

2) 프롬프트(cmd)에서 실행


2. MySQL 접속 환경

예시) source sql파일명.sql
source C:\MySQL\testFile.sql


■ SQL파일로 DataBase 백업

※ 프롬프트(cmd) 환경

예시) mysqldump -u(유저명) -p (DB명) > 백업파일이름.sql
mysqldump -uroot -p testDB > testDBFile.sql

1) testdb 데이터베이스를 testdbBackup.sql 파일에 백업

2) 1)번에서 백업처리 파일이 해당경로에 설치되었는지

반응형
반응형

■ 전체 제약 조건 확인 

  • DataBase : INFORMATION_SCHEMA 
  • Table : TABLE_CONSTRAINTS
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;

반응형

'DataBase > MySQL' 카테고리의 다른 글

[DB] MySQL 서버 원격 접속  (0) 2020.06.01
[DB] MySQL SQL파일 실행 및 백업  (0) 2020.05.27
[DB] MySQL 다중 열 서브쿼리  (0) 2020.05.25
[DB] MySQL 다중행 서브쿼리 연산자  (0) 2020.05.25
[DB] MySQL 다중행 함수  (0) 2020.05.25
반응형

IN 연산자

서브 쿼리의 다중 열의 데이터가 부모쿼리의 다중 열의 데이터와 짝으로 일치할 경우 레코드 반환


기본구조

SELECT 컬럼, 컬럼 …
FROM 테이블
WHERE (컬럼1, 컬럼2, …) IN (SELECT 컬럼1, 컬럼2, …
FROM 테이블);
SELECT *
FROM EMP
WHERE (EMPNO, JOB) IN (SELECT EMPNO, JOB
                         FROM EMP
                        WHERE DEPTNO = 20);

※ 참고

 

[DB] MySQL 다중행 서브쿼리 연산자

1. IN ※ 하나의 컬럼을 여러개의 "=" 조건으로 처리해야할 경우 사용 설명) SAL 컬럼 데이터 중 1300, 800, 950 인 레코드만 출력 SELECT ENAME, SAL, DEPTNO FROM EMP WHERE SAL IN (SELECT MIN(SAL) FROM EMP G..

hyunmin1906.tistory.com

반응형

'DataBase > MySQL' 카테고리의 다른 글

[DB] MySQL SQL파일 실행 및 백업  (0) 2020.05.27
[DB] MySQL 제약조건 확인  (0) 2020.05.26
[DB] MySQL 다중행 서브쿼리 연산자  (0) 2020.05.25
[DB] MySQL 다중행 함수  (0) 2020.05.25
[DB] MySQL 날짜 더하기/빼기 함수  (0) 2020.05.25
반응형

■ IN

하나의 컬럼을 여러개의 "=" 조건으로 처리해야할 경우 사용


설명) SAL 컬럼 데이터 중 1300, 800, 950 인 레코드만 출력
SELECT ENAME, SAL, DEPTNO
FROM EMP
WHERE SAL IN (SELECT MIN(SAL)
                FROM EMP
            GROUP BY DEPTNO);

같은결과

SELECT ENAME, SAL, DEPTNO
FROM EMP
WHERE SAL IN (1300, 800, 950);

■ ANY

여러개의 조건데이터 중 하나의 값이라도 만족하면 레코드 반환


설명) SAL컬럼의 데이터 중 1600, 1250, 1250, 1500 값보다 하나라도 클경우 레코드 반환
SELECT ENAME, SAL
FROM EMP
WHERE SAL > ANY(SELECT SAL
                  FROM EMP
                 WHERE JOB = 'SALESMAN');

같은결과

SELECT ENAME, SAL
FROM EMP
WHERE SAL > ANY(1600, 1250, 1250, 1500);

■ ALL

여러개의 조건데이터가 모두 만족하면 레코드 반환


설명) SAL컬럼의 데이터 중 1600, 1250, 1250, 1500 값보다 작을경우 레코드 반환
(최솟값이 1250 이므로 1250보다 작을경우 만족)
SELECT ENAME, SAL
FROM EMP
WHERE SAL < ALL (SELECT SAL
                   FROM EMP
                  WHERE JOB = 'SALESMAN');

같은결과

SELECT ENAME, SAL
FROM EMP
WHERE SAL < ALL (1600, 1250, 1250, 1500);

 

반응형

+ Recent posts