테이블 생성부터 DML, TCL까지 이해하기

Yunsung·2024년 12월 17일
post-thumbnail

1. 테이블 실습

1.1 기본 테이블 생성하기

  • 테이블명 : TBL_TEST1
  • 컬럼 속성 :
    - DATA1 : 숫자 타입
    - DATA2 : 가변 문자열 (10)
CREATE TABLE TBL_TEST1 (
	DATA1 INT,
    DATA2 VARCHAR(10)
);

1.2 컬럼 레벨 제약 추가하기

  • 테이블명 : TBL_TEST2
  • 제약 사항 :
    - No : 숫자 타입, Primary Key, Auto Increment
    - Name : 가변 문자열, Not Null
    - Wdate : 날짜 + 시간 (timestamp)
CREATE TABLE TBL_TEST2 (
	no INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(10) NOT NULL,
    wdate TIMESTAMP
);

1.3 레코드 레벨 제약 추가하기

문제 상황: 다중 컬럼을 식별키로 지정하려면 레코드 레벨에서 제약을 추가해야 합니다.

CREATE TABLE TBLE_TEST3 (
	no INT,
    name VARCHAR(10),
    wdata TIMESTAMP,
    CONSTRAINT PK_NO_NAME PRIMARY KEY(no, name)
);

2. DMA (데이터 조작 언어)

2.1 데이터 추가 (Insert)

단일 행 추가
스키마 구조에 맞게 데이터를 삽입합니다.

INSERT INTO TBL_TEST1 (DATA1, DATA2)
VALUES (1, 'example');

다중 행 추가

INSERT INTO TBL_TEST1 (DATA1, DATA2)
VALUES
	(1, 'data1'),
    (2, 'data2'),
    (3, 'data3');

서브쿼리 이용

INSERT INTO TBL_TEST1 (DATA1, DATA2)
SELECT DATA1, DATA2 FROM TBL_TEST2;

2.2 데이터 조회 (Select)

SELECT * FROM TBL_TEST1
ORDER BY DATA1;

2.3 데이터 수정 (Update)

모든 레코드 변경

UPDATE TBL_TEST1
SET DATA2 = 'updated';

조건에 맞는 레코드 변경

UPDATE TBL_TEST1
SET DATA2 = 'updated'
WHERE DATA1 = 1;

2.4 데이터 삭제 (Delete)

  1. 모든 레코드 삭제
DELETE FROM TBL_TEST1;
  1. 조건에 맞는 레코드 삭제
DELETE FROM TBL_TEST1
WHERE DATA1 = 1;
  1. 완전 삭제 (Truncate)
TRUNCATE TABLE TBL_TEST1;

3. Safe Update Mode 해제하기 (MySQL)

Safe Update Mode를 해제하려면 WHERE 없이 UPDATE를 실행할 수 있습니다.
1. 설정 해체 방법: Edit -> Prefernces -> SQL Editor -> Safe Update 체크해제
2. SQL 명령어로 해제

SET SQL_SAFE_UPDATES = 0;

4. TCL (트랜잭션 제어 언어)

4.1 Commit

변경 사항을 데이터베이스에 영구적으로 저장합니다.

4.2 Rollback

변경 사항을 되돌립니다.

4.3 Savepoint

복구 지점을 지정할 수 있습니다.

profile
풀스택 개발자로서의 도전을 하는 중입니다. 많은 응원 부탁드립니다!!😁

0개의 댓글