231007 TIL #210 정처기 실기 #20 SQL 응용

김춘복·2023년 10월 7일
0

TIL : Today I Learned

목록 보기
210/543
post-custom-banner

Today I Learned

시험 직전, 복습용으로 문제를 풀고 sql을 다시 보며 정리했다.


SQL 응용

DDL

Data Define Language. DB구축 or 수정 목적으로 사용

CREATE

SCHEMA, DOMIN, TABLE, VIEW, INDEX를 정의

CREATE TABLE

CREATE TABLE 테이블명
	(속성명 데이터_타입 [NOT NULL], ... ,
    ...,
    PRIMARY KEY(기본키_속성명),
    FOREIGN KEY(외래키_속성명) REFERENCES 참조테이블(기본키_속성명)
    	ON DELETE 옵션
        ON UPDATE 옵션,
    CONSTRAINT 제약조건명
    	CHECK (조건식));

CREATE VIEW

CREATE VIEW 뷰명(속성명, 속성명, ...)
AS SELECT

SELECT문에는 FROM 테이블명 WHERE 조건식; 이 들어간다

CREATE INDEX

CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명 [ASC|DESC]]);

ALTER

테이블 정의를 변경하는 명령

ALTER TABLE

ALTER TABLE 테이블명 ADD 속성명 데이터_타입;
ALTER TABLE 테이블명 ALTER 속성명;
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];

컬럼(속성)제거는 여기서

DROP

스키마, 도메인, 기본테이블, 뷰테이블, 인덱스, 제약조건 등을 제거하는 명령문

DROP SCHEMA 스키마명;
DROP DOMAIN 도메인명;
DROP TABLE 테이블명;
DROP VIEW 뷰명;
DROP INDEX 인덱스명;
DROP CONSTRAINT 제약조건명;

이름 뒤에 CASCADE나 RESTRICT를 사용 가능.


DCL

Data Control Language. 데이터 보안, 무결성, 회복, 병행제어 등을 정의하는 데 사용하는 언어.
DBA 데이터베이스 관리자가 데이터 관리를 목적으로 사용

COMMIT / ROLLBACK

  • COMMIT : 명령에 의해 수행된 결과를 실제 물리적 디스크에 저장하고 DB 조작이 정상적으로 완료되었음을 관리자에게 알림

  • ROLLBACK : 변경되었으나 아직 COMMIT되지 않은 모든 내용을 취소하고 DB를 이전상태로 되돌리는 명령어

GRANT / REVOKE

GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];

DML

Data Manipulation Language. 데이터베이스 사용자가 저장된 데이터를 실질적으로 관리하는데 사용하는 언어
DB 사용자와 DBMS간 인터페이스를 제공

INSERT INTO(삽입문)

새로운 튜플을 삽입할 때 사용

INSERT INTO 테이블명(속성1, 속성2, ...)
VALUES (데이터1, 데이터2, ...)
  • 모든 속성 삽입시 속성은 생략가능
  • SELECT문 사용해서 VALUES대신에 다른 테이블 검색 결과를 삽입 가능

DELETE FROM(삭제문)

DELETE FROM 테이블명 [WHERE 조건];
  • 모든 레코드 삭제시 WHERE 절 생략
  • 다 삭제해도 구조는 남아있기때문에 DROP과는 다르다.

UPDATE ~ SET ~ (갱신문)

UPDATE 테이블명
SET 속성명 = 데이터[, 속성명2 = 데이터2, ...]
[WHERE 조건];
  • WHERE에 해당하는 조건에서 SET절의 속성으로 변경

SELECT

SELECT [PREDICATE | DISTINCT] [테이블명.]속성명 [AS 별칭][, ...]
FROM 테이블명
[WHERE 조건]
[GROUP BY 속성명, 속성명2, ...]
[HAVING 조건]
[ORDER BY 속성명 [ASC | DESC]];
  • PREDICATE : 검색할 튜플 수를 제한하는 명령어를 기술

  • DISTINCT : 중복된 튜플이 있으면 첫번째만 표시

  • GROUP BY : 특정 속성을 기준으로 그룹화해 검색할때 사용

  • HAVING : GROUP BY 와 함께 사용되며 그룹의 조건을 지정함

  • ORDER BY : 데이터를 정렬할 때 사용. 기준이 되는 속성과 정렬방식.

WHERE 절

  • % : 모든 문자 대표
  • _ : 문자 하나 대표
  • # : 숫자 하나 대표
  • <> : 같지 않다
  • BETWEEN ~ AND ~ : 두 값의 사이 검색.
    EX) WHERE 생일 BETWEEN #01/01/78# AND #12/31/93#;
  • NULL 표시 방식 : WHERE 주소 IS NULL;

ORDER BY 정렬

  • ORDER BY 부서 ASC, 이름 DESC : 먼저 부서 오름차순으로 정렬하고 부서가 같으면 이름 내림차순으로 정렬.

GROUP 함수

  • COUNT(), SUM(), AVG(), MAX(), MIN(), STDDEV(), VARIANCE()
profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글