본문 바로가기

데이터베이스 DataBase

chapter 03 SQL 기초

데이터 정의어 : 테이블의 구조를 만드는 데 사용. CREATE, ALTER, DROP 문 등이 있음.

 

데이터 조작어 : 저장된 데이터를 검색, 삽입, 수정, 삭제하는 데 사용. SELECT, INSERT, DELETE, UPDATE 문 등이 있음.

 

데이터 제어어 : 데이터에 대한 접근 권한을 제어하는 데 사용. GRANT, REVOKE 문 등이 있음.

 

테이블 : 릴레이션은 실제 데이터베이스 업무에서 '테이블'이라는 용도로 자주 사용됨.

 

SQL : DBMS에게 원하는 내용을 비교적 쉽게 알려주고 결과를 얻는 데 사용하는 데이터베이스 전용언어. 완전한 프로그래밍 언어는 아니고 데이터 부속어라 칭함. JAVA나 C와 같은 프로그래밍 언어에 삽입하여 사용할 수 있고, HTML 웹 페이지 문서에 삽입도 가능. 또한 실행 순서가 없는 비절차적인 언어로 찾는 데이터만을 기술하고 어떻게 찾는지는 기술하지 않음. 직접 SQL 문을 작성할 때는 세미콜론과 함께 마치는 것이 좋으며, 대소문자의 구분은 없지만 SQL 예약어는 대문자로, 테이블이나 속성 이름은 소문자로 적어주면 가독성이 높아짐.

 

SELECT 문 : 데이터 정의어 중의 하나로 특별히 질의어라고 부름. 검색의 견과를 테이블로 출력함. SELECT * FROM * WHERE * GROUP BY * HAVING * ORDER BY * 의 형식.

 

DISTINCT : SELECT문의 검색 결과 중 중복을 제거하는 키워드.

 

BETWEEN : SELECT 문의 WHERE 절에서 범위를 지정하는 키워드로 AND와 함께 사용.

 

IN : WHERE 절에 두 개 이상의 값을 비교하기 위해 사용하는 연산자로 집합의 원소인지 판단하는 연산자.

 

LIKE : 문자열 패턴을 비교할 때 사용하는 연산자로 텍스트 혹은 날짜 데이터의 비교에는 영문 작은 따옴표(')를 사용함. LIKE연산자는 와일드 문자와 같이 사용함.

 

AND, OR, NOT : WHERE 절에서 이용하는 논리 연산자로 복합조건을 사용할 수 있음.

 

ASC : SELECT문의 ORDER BY절에선 출력결과를 정렬함. 이때 오름차순을 의미.

 

DESC : SELECT문의 ORDER BY절에선 출력결과를 정렬함. 이때 내림차순을 의미.

 

집계 함수 : 테이블의 각 열에 대해 계산을 하는 함수로 SUM, AVG, MIN, MAX, COUNT의 다섯 가지가 존재.

 

AS : 속성이름의 별칭을 지정하는 키워드.

 

COUNT : 행의 개수를 셈. DISTINCT 키워드를 이용하면 중복을 제거한 수를 세어주며 NULL값은 기본적으로 빼고 세어줌.

 

GROUP BY : 속성 값이 같은 값끼리 그룹으로 묶음.

 

HAVING : GROUP BY 절의 결과 GROUP을 제한함.

 

조인 : 한 테이블의 행을 다른 테이블의 행에 연결하는 방법으로 두 개 이상의 테이블을 결합해 하나의 테이블로 만드는 과정. 아무런 조건을 주지 않으면 카티전 프로덕트가 됨.

 

동등조인 : 동등조건에 의하여 테이블을 조인하는 것.

 

부속질의 : SELECT 문의 WHERE 절에 또 다른 테이블 결과를 이용하기 위해 다시 SELECT 문을 괄호로 묶는 것. 상하 관계가 존재해 하위 부속질의를 먼저 실행하고 그 결과를 이용해 상위 부속질의를 실행하는 반면 상관 부속질의의 경우 상위 부속질의의 투플을 이용하여 하위 부속질의를 계산함. 즉 상위 부속질의와 하위 부속질의가 독립적이지 않고 서로 관련을 맺고 있음.

 

투플 변수 : 테이블 이름이 길거나 한 개의 테이블이 SQL 문에 두 번 사용될 때 혼란을 피하기 위해 테이블의 별칭을 붙여 사용하는 것.

 

집합 연산 : 테이블은 튜플의 집합이므로 테이블 간의 집합 연산을 이용하여 합집합(UNION), 차집합(EXCEPT), 교집합(INTERSECT)을 구할 수 있음.

 

EXISTS : 상관 부속질의문 형식으로 조건에 맞는 튜플이 존재하면 결과에 포함.

 

CREATE 문 : 테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령.

 

NOT NULL : 키워드 중의 하나로 NULL 값을 허용하지 않은 제약.

 

UNIQUE : 키워드 중의 하나로 유일한 값에 대한 제약.

 

DEFAULT : 키워드 중의 하나로 속성의 기본 값 설정.

 

CHECK : 키워드 중의 하나로 값에 대한 조건을 부여.

 

PRIMARY KEY : 키워드 중의 하나로 기본키를 정함. 기본키가 되는 속성을 지정할 때 괄호는 필수.

 

FOREIGN KEY : 키워드 중의 하나로 외래키를 지정. 반드시 참조되는 테이블(부모 릴레이션)이 존재해야 하며 참조되는 테이블의 기본키여야 함.

 

ON UPDATE : 키워드 중의 하나로 외래키 속성의 수정 연산 시 동작 지정.

 

ON DELETE : 키워드 중의 하나로 외래키 속성의 삭제 연산 시 동작 지정.

 

CASCADE : 외래키 지정 시 튜플이 삭제되거나 수정될 때 취할 수 있는 동작 중 하나로 연쇄 동작.

 

NO ACTION : 외래키 지정 시 튜플이 삭제되거나 수정될 때 취할 수 있는 동작 중 하나로 어떠한 동작도 취하지 않음.

 

SET NULL : 외래키 지정 시 튜플이 삭제되거나 수정될 때 취할 수 있는 동작 중 하나로 NULL 값으로 변경.

 

SET DEFAULT : 외래키 지정 시 튜플이 삭제되거나 수정될 때 취할 수 있는 동작 중 하나로 정해진 값으로 변경.

 

ALTER 문: 생성된 테이블의 속성과 속성에 관한 제약을 변경하며, 기본키 및 외래키를 변경.

 

ADD : ALTER문에서 속성/제약을 추가할 때 사용.

 

DROP : ALTER문에서 사용하는 키워드로 속성/제약을 제거할 때 사용.

 

DROP 문 : 테이블의 구조와 데이터를 모두 삭제하므로 사용에 주의. 삭제하려는 테이블의 기본키를 다른 테이블에서 참조하고 있다면 삭제가 거절될 수 있어 이때 삭제를 하기 위해선 참조하고 있는 테이블부터 삭제해야 함.

 

INSERT 문 : 테이블에 새로운 튜플을 삽입하는 명령. 삽입하는 경우 만약 몇 개의 속성만 입력해야 한다면 해당되는 속성만 명시하면 됨. SELECT 문을 사용하여 한꺼번에 여러 개의 튜플을 삽입할 수 있음. SELECT 문을 이용하는 경우에는 VALUES 키워드가 생략됨.

 

UPDATE 문 : 특정 속성 값을 수정하는 명령. INSERT 문에 SELECT 문을 더하여 한꺼번에 처리하는 것처럼 UPDATE 문에서도 처리가 가능하지만 WHERE 절을 빼놓으면 모든 튜플의 값이 UPDATE 문의 영향을 받는 경우도 있으므로 주의해야 함.

 

DELETE 문 : 테이블에 있는 기존 튜플을 삭제. 외래키로 참조하고 있는 경우 삭제가 안될 수 있으며, UPDATE의 WHERE 절을 뺴놓은 경우와 마찬가지로 WHERE절이 없으면 모든 튜플이 DELETE문의 영향을 받아 삭제되는 경우도 있으므로 유의.