코딩하는라민

[정처기 실기] SQL 응용 - DDL, DML, DCL 명령어 본문

자격증 공부/정보처리기사

[정처기 실기] SQL 응용 - DDL, DML, DCL 명령어

코딩하는라민 2023. 10. 2. 00:36
728x90
반응형

[정처기 실기] SQL 응용 - DDL, DML, DCL 명령어

 

 

📌 DDL 명령어

데이터 정의어 :

테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어들로 구성되어있다.

TABLE 관련 DDL
CREATE TABLE CREATE TABLE 테이블명
(
    컬럼명  데이터타입  [조건]
)
테이블, 뷰 생성
- 제약조건 : PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT
ALTER TABLE ALTER TABLE 테이블명
    ADD  컬럼명  데이터타입  [조건]
CREATE TABLE 의 컬럼에 사용하는 제약조건을 사용할 수 있음
ALTER TABLE 테이블명
    MODIFY  컬럼명  데이터타입  [조건]
 
ALTER TABLE 테이블명
    DROP  컬럼명
 
DROP TABLE DROP TABLE 테이블명
   [ CASCADE | RESTRICT ]
테이블 삭제
- CASCADE : 참조 테이블 포함
- RESTRICT : 참조 중이면 삭제 안함
TRUNCATE TABLE TRUNCATE TABLE 테이블명 테이블 내의 데이터 삭제
VIEW 관련 DDL
CREATE VIEW CREATE VIEW 뷰이름 AS 조회쿼리 뷰 생성
VIEW 테이블의 SELECT 문에는 UNION, ORDER BY 사용할 수 없음
CREATE OR
REPLACE VIEW
CREATE OR REPLACE VIEW 뷰이름
   
AS 조회쿼리
뷰 교체
DROP VIEW DROP VIEW 뷰이름 AS 조회쿼리 뷰 삭제
INDEX 관련 DDL
CREATE INDEX CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명1, ...) 테이블의 컬럼명1 컬럼에 대해 인덱스 생성
ALTER INDEX ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명 (컬럼명1, ...) 테이블의 컬럼명1 컬럼에 대해 인덱스명 수정
DROP INDEX ALTER INDEX 인덱스명 인덱스명을 가지고 있는 인덱스 삭제

 

📌 DML 명령어

데이터 조작어 :

데이터베이스에 저장된 자료들을 CRUD하는 언어

SELECT 명령어
SELECT 속성명1, ... AS 명령어를 통해 별칭 붙일 수 있음
- ALL : 모든 튜플 검색(생략 가능, 기본값)
- DISTINCT : 중복될 경우 하나만 검색
FROM 테이블명1, ...  
[ WHERE ] 조건 - 비교 (=, <>, !=, <, <=, >, >=)
- 범위 (BETWEEN~ AND)
- 집합 (IN, NOT IN)
- 패턴 (LIKE(% / [] / [^] / _))
- NULL (IS NULL, IS NOT NULL)
- 복합조건 (AND, OR, NOT, !)
[ GROUP BY ] 속성명1, ... 속성값을 그룹으로 분류할 때 사용
- 집계함수 사용
[ HAVING ] 조건 그룹에 대한 조건 지정할 때 사용
- 집계함수의 조건
[ ORDER BY ] 속성명1, ASC/DESC, ... 속성값을 정렬할 때 사용
- 기본값은 ASC 정렬
JOIN
내부조인 공통 존재 컬럼의 값이 같은 경우를 추출 SELECT A.컬럼1, ..., B.컬럼1, ...
    FROM 테이블1 A [INNER] JOIN 테이블2 B
    ON 조인조건
    [WHERE 검색조건]
외부조인 왼쪽 외부 조인 SELECT A.컬럼1, ..., B.컬럼1, ...
    FROM 테이블1 A LEFT [OUTER] JOIN 테이블2 B
    ON 조인조건
    [WHERE 검색조건]
오른쪽 외부 조인 SELECT A.컬럼1, ..., B.컬럼1, ...
    FROM 테이블1 A RIGHT [OUTER] JOIN 테이블2 B
    ON 조인조건
    [WHERE 검색조건]
완전 외부 조인 SELECT A.컬럼1, ..., B.컬럼1, ...
    FROM 테이블1 A FULL [OUTER] JOIN 테이블2 B
    ON 조인조건
    [WHERE 검색조건]
교차조인 조인 조건이 없는 모든 데이터 조합 추출 SELECT 컬럼1, 컬럼2, ...
    FROM 테이블1 CROSS JOIN 테이블2
셀프조인 자기 자신에게 별칭을 지정 후 다시 조인 SELECT A.컬럼1, ..., B.컬럼1, ...
    FROM 테이블1 A [INNER] JOIN 테이블1 B
    ON 조인조건
    [WHERE 검색조건]
삽입, 수정, 삭제 명령어
INSERT INSERT INTO 테이블명(속성명1, ..)
    VALUES (데이터1, ...)
데이터의 내용 삽입
- 속성명 생략 가능
UPDATE UPDATE 테이블명
    SET 속성명 = 데이터, ...
    WHERE 조건
데이터의 내용 변경
- WHERE 절을 통해 어떤 조건이 만족할 경우에만 특정 컬럼의 값을 수정하는 용도로 자주 사용
DELETE DELETE FROM 테이블명
    WHERE 조건
데이터의 내용 삭제
- 모든 레코드 삭제 시 WHERE 사용하지 않아도 됨
- 레코드 삭제해도 테이블 구조 남아있음
집합 연산자
UNION 중복 행 제거된 결과 반환 A∪B
UNION ALL 중복 행 제거되지 않은 결과 반환 A+B
INTERSECT 공통 행 결과 반환 A∩B
MINUS 첫 번째 쿼리에만 있는 결과만 반환 A-B

 

📌 DCL 명령어

데이터 제어어 :

관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어

DCL 명령어
GRANT GRANT 권한 ON 테이블 TO 사용자 권한 부여
REVOKE REVOKE 권한 ON 테이블 FROM 사용자 권한 취소

 

📌 집계성 SQL

집계성 SQL
집계 함수 COUNT 함수  
SUM 함수  
AVG 함수  
MAX 함수  
MIN 함수  
STDDEV 함수  
VARIAN 함수  
그룹 함수 ROLLUP 함수 중간 집계 값 산출
CUBE 함수 결합 가능한 모든 값에 다차원 집계 생성
GROUPING SETS 함수 집계 대상 컬럼에 대한 개별 집계
윈도 함수 RANK 함수 동일 순위 레코드 존재 시 후순위로 넘어감
DENSE_RANK 함수 동일 순위 레코드 존재 시에도 후순위로 넘어가지 않음
ROW_NUMBER 함수 동일 순위 레코드 존재 시에도 무관하게 연속 번호 부여

 


참고 : 수제비2022 실기 교재

  등을 공부하고, 간단하게 정리한 내용입니다. 잘못된 부분이나 문제되는 점이 있으면 댓글 부탁드립니다.

728x90
반응형