-
[SQLD 요약] II. SQL 기본 및 활용 - 01. SQL 기본 (3) - DML자격증/SQLD (SQL 개발자) 2021. 5. 1. 13:33728x90반응형
SQLD 요약 / SQL Developer 요약
🔑 DML/ 데이터입력/ INSERT/ Nologging/ 데이터수정/ UPDATE/ 조건문/ WHERE/
데이터삭제/ DELETE/ TRUNCATE/ 데이터조회/ SELECT/ ORDER BY/ ASC/ DESC/ INDEX/ DISTINCT/ ALIAS
II. SQL 기본 및 활용
01. SQL 기본
[1] 관계형 데이터베이스
[2] SQL 종류
[3] DDL (Data Definition Language)
[4] DML (Data Manipulation Language)
01. SQL 기본
[3] DML (Data Manipulation Language)
- DML: 테이블에서 데이터를 입력, 수정, 삭제, 조회하기 위한 SQL문
- 조건문: WHERE절로 조건문을 생성하여 원하는 조건을 검색한 다음, 데이터 수정 or 삭제 or 조회를 수행한다.
테이블에 데이터 입력 입력된 데이터값 수정 테이블 행(데이터) 삭제 입력된 데이터를 조회 INSERT INTO ~ VALUES ~~ UPDATE ~ SET ~~ DELETE FROM ~ SELECT ~ FROM ~~
(1) INSERT 문 | 데이터 입력
# (1) INSERT문 INSERT INTO table (col1, col2, ...) VALUES (ex1, ex2, ...); INSERT INTO STUDENT (stdno, stdname) VALUES (1001, 'Lee'); # (2) SELECT문 이용 # STUDENT 테이블의 모든 데이터를 조회 >> STUDENT_TEST 테이블에 입력 INSERT INTO STUDENT_TEST SELECT * FROM STUDENT; # (3) Nologging 옵션 사용 ALTER TABLE STUDENT NOLOGGING;
INSERT 문 SELECT 문으로 입력 Nologging 사용 테이블명-칼럼명-데이터 순서로 입력 데이터를 조회하여 바로 테이블로 삽입 로그파일 기록 최소화 → 성능 향상 - 모든 칼럼에 대해 데이터 삽입하는 경우:
칼럼명 생략 가능
- 문자열 입력하는 경우: 작은 따옴표 사용
- 데이터 파일에 저장되는 것이 아님
→ 저장하려면 TCL문 Commit 실행- 다른 테이블에서 SELECT 문으로
데이터를 조회하여, 해당 테이블로 삽입
- 입력되는 테이블은 사전에
생성되어 있어야 함- 데이터베이스에 데이터 입력
→ 로그파일에 정보 기록됨
- Nologging 옵션: 로그파일 기록 최소화
→ Buffer Cache 메모리 영역을 생략
→ 데이터 입력 시 성능 향상↑
(2) UPDATE 문 | 데이터 수정
# 원하는 조건으로 데이터를 검색하여, 해당 데이터를 수정한다. UPDATE Table SET col1 = new_data WHERE col2 = value; # 예시 UPDATE STUDENT # 수정되는 테이블: STUDENT SET stdname = 'Kim' # stdname 칼럼의 값을 'Kim'으로 수정 WHERE stdno = 1001; # stdno 칼럼의 값이 1001인 행을 검색
- WHERE절에서 원하는 조건으로 데이터 검색 → 해당 데이터 값을 수정
- 조건문이 있으면 → WHERE절에서 검색된 행 수만큼 수정됨
- 조건문이 없으면 → 모든 데이터가 수정됨
(3) DELETE 문 | 데이터 삭제
# 원하는 조건을 검색하여, 해당되는 행을 삭제한다. DELETE FROM Table WHERE col = value; # 예시 DELETE FROM STUDENT # 데이터 삭제되는 테이블: STUDENT WHERE stdno = 1010; # stdno 칼럼의 값이 1010인 행을 삭제 # 테이블 공간 초기화: TRUNCATE TRUNCATE TABLE STUDENT;
- WHERE절에서 원하는 조건으로 검색 → 해당되는 행을 삭제
- 조건문이 없으면 → 테이블의 모든 데이터가 삭제됨
- DELETE문은 "삭제 여부"만 표시함 → 용량 초기화 X → 테이블 용량 감소 X
- TRUNCATE문은 테이블의 데이터 삭제 & 용량 초기화 O → 테이블 용량 감소 O
- 테이블 구조는 삭제하지 않음
- 테이블의 데이터를 모두 삭제한 후 테이블 공간을 초기화함
(4) SELECT 문 | 데이터 조회
SELECT문 사용 정렬: ORDER BY 정렬 회피: INDEX 중복제거 및 별칭지정 - SELECT columns
FROM table;
- WHERE: 조건문 지정- ORDER BY column;
- 오름차순: ASC
- 내림차순: DESC- 기본키가 인덱스인 경우
- 자동으로 오름차순 index 생성- 중복제거: Distinct
- 별칭지정: Alias- SELECT문: 특정 칼럼 or 행만 조회
- SELECT columns: 칼럼 지정
- FROM table: 테이블 지정
- WHERE ~~: 행 지정
# SELECT문으로 테이블에 입력된 데이터를 조회한다. SELECT col1 FROM table WHERE col2 = value; # STUDENT 테이블의 모든 칼럼, 모든 행을 조회 SELECT * FROM STUDENT; # STUDENT 테이블의 모든 행에서, stdno와 stdname 칼럼만 조회 SELECT stdno, stdname FROM STUDENT; # STUDENT 테이블의 모든 행에서 stdname 칼럼을 조회하고, # stdname 칼럼 뒤에 문자열 '님'을 결합하여 출력 SELECT stdname || '님' FROM STUDENT;
- ORDER BY: SELECT문에서 같이 사용하여, 데이터를 오름차순 or 내림차순으로 정렬하여 출력
- 정렬 시점: 모든 실행이 끝난 후, 데이터를 출력하기 바로 전 시점
- 데이터베이스 메모리를 많이 사용함 → 대량 데이터를 정렬하면 성능 저하 발생
- 특별한 지정이 없으면 오름차순으로 정렬함
- 오름차순: ASC
- 내림차순: DESC
# 예시: stdname으로 오름차순 & stdno로 내림차순 정렬 SELECT * FROM STUDENT ORDER BY stdname, stdno DESC;
- INDEX: 정렬은 데이터베이스에 부하를 주므로, 인덱스를 사용하여 ORDER BY 정렬 회피
- 예시: STUDENT 테이블에서 기본키는 "stdno" → 기본키 기준으로 오름차순 인덱스가 자동 생성됨
- DISTINCT (중복 제거): 칼럼명 앞에 지정하여 중복된 데이터를 제거하고, 한 번만 조회함
- ALIAS (별칭 지정): 테이블명, 칼럼명이 너무 긴 경우에 별칭을 지정하여, 간략하게 지징함
# Distinct: 중복 제거 SELECT DISTINCT stdname FROM STUDENT # stdname의 값이 중복되는 데이터를 제거하고 ORDER BY stdno; # stdno을 기준으로 정렬하여 출력 # Alias: 별칭 지정 SELECT stdname AS "이름" # stdname 칼럼명을 "이름"으로 출력되게 함 FROM STUDENT s # STUDENT 테이블명 대신 "s"를 사용함 WHERE s.stdno = 1001; # "s"를 테이블명 처럼 사용하여 조건문 지정
참고도서: SQL 개발자 이론서+기출문제_이기적, 2020
728x90반응형'자격증 > SQLD (SQL 개발자)' 카테고리의 다른 글
[SQLD 요약] II. SQL 기본 및 활용 - 01. SQL 기본 (5) - DECODE, CASE, ROWNUM, ROWID, WITH (0) 2021.05.04 [SQLD 요약] II. SQL 기본 및 활용 - 01. SQL 기본 (4) - WHERE & GROUP (0) 2021.05.03 [SQLD 요약] II. SQL 기본 및 활용 - 01. SQL 기본 (2) - DDL (0) 2021.04.30 [SQLD 요약] II. SQL 기본 및 활용 - 01. SQL 기본 (1) - 관계형 데이터베이스와 SQL (1) 2021.04.28 [SQLD 요약] I. 데이터 모델링의 이해 (2) (0) 2021.04.27