티스토리 뷰
1. 데이터 조작 언어의 개념 ( DML )
- 데이터 정의 언어로 정의된 데이터베이스 내의 데이터에 대해 여러 연산을 수행하기 위한 명령어의 집합
- 사용자에게 데이터베이스에 저장된 데이터를 처리할 수 있게 하는 일체의 도구를 제공
- 정의된 테이블 등에 레코드를 삽입 / 수정 / 삭제 및 검색하는데 사용되는 SQL 명령어들의 집합
- 데이터 조작 언어는 실행 즉시 반영되는 영구적 변경을 위한 명령어의 집합이 아니며 복구가 가능 ( DDL과의 차이점 )
2. 명령어의 종류
- CRUD를 위한 SQL 명령어의 종류
- INSERT : 테이블 스키마에 적합한 레코드를 삽입
- UPDATE : 테이블에서 조건을 만족하는 특정 레코드의 컬럼값을 수정
- DELETE : 테이블에 조건을 만족하는 레코드를 삭제
- SELECT : 조건을 만족하는 레코드를 테이블에서 검색
3. INSERT 명령어
- 테이블에 새로운 레코드를 삽입하는 명령어
- 모든 컬럼 또는 부분 컬럼에 대한 컬럼값을 입력
- NOT NULL 제약 조건이 있는 컬럼은 반드시 컬럼값을 입력
- 문자와 날짜 값은 따옴표(’)로 처리
- 예시
- INSERT INTO 테이블이름 VALUES(값1, 값2, … 값n)
- 모든 컬럼값에 해당하는 값이 VALUES에 있을 경우에 사용 가능
- VALUES 내 값들이 나열된 순서와 테이블에 정의된 컬럼의 순서가 반드시 일치해야 함
- INSERT INTO 학과 VALUES (’영어영문학과’, ‘인문과학대학’, ‘http://eng.knou.ac.kr’, ‘02-3668-4510’, 135)
- INSERT INTO 테이블이름(컬럼1, 컬럼2, …. 컬럼n) VALUES(값1, 값2, … 값n)
- INSERT INTO 학과 ( 단과대학, 학과이름, 졸업학점 ) VALUES ( ‘자연과학대학’, ‘농학과’, 140 )
- INSERT INTO 테이블이름 VALUES(값1, 값2, … 값n)
4. INSERT 명령어 2
- 테이블에서 검색의 결과를 새로운 레코드로 삽입시에도 사용 가능
- 삽입하려는 레코드의 컬럼이 반드시 매치되어야 한다.
- 예시
- INSERT INTO 테이블이름 ( 컬럼1, 컬럼2, … 컬럼n ) SELECT 컬럼1, 컬럼2, … 컬럼n FROM 테이블이름2 WHERE 검색조건
- INSERT INTO IT전공교수 ( 교수번호, 교수이름, 직위, 소속학과, 연봉 ) SELECT 교수번호, 교수이름, 직위, 소속학과, 연봉 FROM 교수 WHERE 소속학과 = ‘컴퓨터과학과’
- INSERT INTO 테이블이름 ( 컬럼1, 컬럼2, … 컬럼n ) SELECT 컬럼1, 컬럼2, … 컬럼n FROM 테이블이름2 WHERE 검색조건
5. UPDATE 명령어
- 특정한 조건을 만족하는 레코드의 특정 컬럼값을 수정
- 메모리에서만 수정된 것으로, 내부에서도 반영하려면 다른 명령어를 사용해야 한다.
- 예시
- UPDATE 테이블이름 SET 컬럼1 = 값1[, 컬럼2 = 값2, … 컬럼n = 값n]
- UPDATE 학과 SET 주소 = ‘http://agri.knou.ac.kr’ WHERE 학과이름 = ‘농학과’
- UPDATE 테이블이름 SET 컬럼1 = 수식1[, 컬럼2 = 수식2, … 컬럼n = 수식n]
- UPDATE 학과 SET 전화번호 = ‘02-3668-4641’, 졸업학점 = 130 WHERE 학과이름 = ‘생활과학과’
- UPDATE 계좌 SET 잔액 = 잔액 + 잔액 * 0.02 WHERE 잔액 ≥ 500000
- UPDATE 테이블이름 SET 컬럼1 = 값1[, 컬럼2 = 값2, … 컬럼n = 값n]
6. DELETE 문
- 조건에 일치하는 레코드 집합을 테이블에서 삭제할 때 사용하는 명령어
- 컬럼값을 삭제하기 위해서는 UPDATE문을 사용하여 컬럼값을 Null로 변경
- 다른 테이블에서 참조하고 있을 경우, DELETE문을 사용하면 참조무결성을 지키기 위해 재질문
- ON DELETE CASCADE : 부모 삭제시 자식도 삭제
- 예시
- DELETE FROM 테이블이름 [WHERE 조건]
- DELETE FROM 강의
- 강의 테이블에 저장되어있는 모든 레코드 삭제
- DELETE FROM 교수 WHERE 소속학과 = ‘유아교육과’
- 소속학과가 유아교육과인 교수의 레코드를 삭제
- DELETE FROM 강의
- DELETE FROM 테이블이름 [WHERE 조건]
7. WHERE절 확인
- WHERE 절이 없는 UPDATE 및 DELETE 문은 전체 테이블을 대상으로 실행
8. SELECT 명령어
- 이미 존재하는 데이터를 조회하는 명령문
- 한 개 이상의 테이블에서 주어진 조건에 만족하는 레코드를 출력하는 명령문
- 관계 대수의 셀렉션, 프로젝션, 조인, 카티션 프로덕트 연산자의 기능을 모두 포함하는 명령문
- 필수절인 SELECT 절과 부가적인 목적으로 사용하는 절을 혼합하여 검색기능을 구체화
9. SELECT 구문형식 (*)
- SELECT [DISTINCT] 컬럼1, 컬럼2, … 컬럼n FROM 테이블1[ INNER JOIN | OUTER JOIN 테이블2, INNER JOIN | OUTER JOIN ON 조인조건식1 테이블3 … , INNER JOIN | OUTER JOIN 테이블m ON 조인조건식n] [ WHERE 조건식[중첩질의] ] [ GROUP BY 컬럼1, 컬럼2, … 컬럼n [HAVING 조건] ] [ORDER BY 컬럼1[ASC | DESC], … 컬럼n[ASC | DESC]]
- 기능
- SELECT 절 : 결과에 포함되는 컬럼을 지정
- FROM 절 : 질의를 적용할 테이블을 지정
- ON 절 : 조인 조건을 지정
- WHERE 절 : 검색 대상 레코드의 조건을 지정
- GROUP BY 절 : 레코드를 그룹화하기 위한 그룹조건을 지정
- HACING : GROUP BY 절이 적용된 결과에 대한 조건을 지정
- ORDER BY : 검색 결과의 정렬 기준을 지정
10. 단순 SELECT 문
- 레코드를 제한하지 않고 전체 테이블을 검색하는 SELECT 문
- WHERE 절이 없는 질의문
- DISTINCT 키워드를 통해 중복 제거 가능
- 릴레이션과 다르게 테이블은 중복값을 지닐 수 있다.
- 예시
- SELECT [DISTINCT] 컬럼1, 컬럼2, … 컬럼n FROM 테이블
- 지정한 컬럼 조회
- SELECT 소속학과 FROM 교수
- SELECT DISTINCT 소속학과 FROM 교수 ( 중복 제거 )
- 지정한 컬럼 조회
- SELECT * FROM 테이블
- 전체 컬럼 조회
- SELECT ALL FROM 테이블로도 사용 가능
- SELECT [DISTINCT] 컬럼1, 컬럼2, … 컬럼n FROM 테이블
11. 조건 SELECT 문
- 산술연산식, 함수 등을 사용하여 표현한 조건을 WHERE 절에 기술하여 조건을 만족하는 레코드만 선택적으로 검색하는 SELECT 문
- 산술연산자
- 비교연산자
- 논리연산자
- WHERE 절은 UPDATE, DELETE 문 등 조건을 기술하여 선택적으로 레코드에 적용하는 명령문에서 동일하게 사용
12. 조건 표현 연산자
- 산술연산자
- 컬럼값 또는 상수와의 산술 연산을 위한 연산자
- 예시 : DIV, /, -, MOD(%), +, *
- 비교연산자
- 컬럼값과 상수의 크기를 비교하는 연산자
- 예시 : =, <> (≠), >, ≥ , <, ≤
- 논리연산자
- 두 개 이상의 조건이 기술되는 질의문에서 조건식 간의 관계를 정의하는 연산자
- 예시 : AND, OR, NOT
728x90
'방송대 > 데이터베이스 시스템' 카테고리의 다른 글
7강. SQL(4) (0) | 2025.04.04 |
---|---|
6강. SQL (3) (0) | 2025.03.24 |
4강. SQL ( 1 ) (0) | 2025.03.10 |
3강. 관계형 모델 (0) | 2025.03.03 |
2강. 데이터베이스 모델링 (0) | 2025.02.26 |
댓글