본문 바로가기
SQL/개념

01. SQL 개념과 기초

by Merware 2023. 5. 2.

01. SQL 문법 종류

1) 데이터 제어 언어 (DCL: Data Control Language)

  • 데이터베이스에 대한 권한을 부여하거나 회수하는 명령어
  • 보안 및 권한 관리와 관련된 작업을 수행
  • 주요 명령어:
    • GRANT : 사용자에게 특정 작업에 대한 권한을 부여.
    • REVOKE : 사용자에게 부여된 권한을 회수.

2) 데이터 정의 언어 (DDL: Data Definition Language)

  • 데이터베이스 구조를 정의하거나 수정하는 명령어
  • 테이블, 인덱스, 뷰 등 객체를 생성, 수정, 삭제하는 데 사용
  • 주요 명령어:
    • CREATE : 테이블, 뷰, 인덱스 등의 데이터베이스 객체를 생성.
    • ALTER : 기존 데이터베이스 객체의 구조를 수정.
    • DROP : 데이터베이스 객체를 삭제.
    • TRUNCATE : 테이블의 모든 데이터를 삭제하지만, 테이블 구조는 유지 (복구 불가능).

3) 데이터 조작 언어 (DML: Data Manipulation Language)

  • 데이터를 조회, 삽입, 수정, 삭제하는 명령어
  • 주로 테이블 내의 데이터 조작에 사용
  • 주요 명령어:
    • SELECT : 테이블에서 데이터를 조회.
    • INSERT : 테이블에 새로운 데이터를 삽입.
    • UPDATE : 테이블의 기존 데이터를 수정.
    • DELETE : 테이블의 데이터를 삭제.

4) 트랜잭션 제어 언어 (TCL: Transaction Control Language)

  • 데이터베이스에서의 트랜잭션을 제어하는 명령어
  • 트랜잭션의 처리 여부를 결정하여 데이터 무결성을 유지
  • 주요 명령어:
    • COMMIT : 트랜잭션에서 수행한 작업을 확정하고, 데이터베이스에 반영.
    • ROLLBACK : 트랜잭션에서 수행한 작업을 취소하고, 이전 상태로 되돌림.
    • SAVEPOINT : 트랜잭션 내에서 특정 시점으로 돌아가기 위한 저장점 설정.
    • SET TRANSACTION : 트랜잭션의 특성을 설정 (예: 격리 수준).

02. 키(Key)의 종류

1) 기본키 (Primary Key)

  • 테이블에서 각 레코드를 유일하게 식별하기 위한 키.
  • 중복될 수 없고, NULL 값을 가질 수 없음.

2) 복합키 (Composite Key)

  • 두 개 이상의 칼럼을 조합하여 만든 키로, 개별적으로는 유일하지 않지만 조합하면 유일한 레코드를 식별할 수 있음.

3) 보조키 (Alternate Key)

  • 기본키로 선택되지 않은 후보키 중 하나.
  • 기본키의 대안으로 사용할 수 있는 키.

4) 외래키 (Foreign Key)

  • 한 테이블의 필드가 다른 테이블의 기본키와 연결될 때, 외래키로 사용됨.
  • 외래키를 사용하는 이유: 데이터의 무결성을 유지하고 데이터 중복을 피하기 위함.

03. 자료형 (Data Types)

  • VARCHAR2(길이) : 가변 길이 문자열 데이터, 최대 4000바이트까지 저장 가능.
  • NUMBER : 숫자 데이터 타입, 정수 및 소수점 포함 가능.
  • DATE : 날짜와 시간 데이터를 저장.
  • CHAR(길이) : 고정 길이 문자열 데이터.
  • NVARCHAR2(길이) : 가변 길이의 유니코드 문자열 데이터를 저장.
  • BLOB : 최대 4GB의 대용량 이진 데이터를 저장 (Binary Large Object).
  • CLOB : 최대 4GB의 대용량 텍스트 데이터를 저장 (Character Large Object).
  • BFILE : 외부 파일 시스템에 저장된 대용량 이진 데이터를 참조하는 포인터. 파일 자체는 데이터베이스 밖에 저장됨.

04. 객체 (Objects)

  • 테이블 (Table) : 데이터를 저장하는 기본 객체. 행(Row)과 열(Column)로 구성됨.
  • 인덱스 (Index) : 테이블의 검색 성능을 높이기 위한 객체.
  • 뷰 (View) : 하나 또는 여러 개의 테이블에서 선택된 데이터를 논리적으로 연결하여 제공. 가상의 테이블로 취급됨.
  • 시퀀스 (Sequence) : 자동으로 일련 번호를 생성하는 객체. 주로 기본키 값 자동 생성을 위해 사용.
  • 시노님 (Synonym) : 데이터베이스 객체에 대한 별칭을 제공하여 참조를 용이하게 함.

그 외 객체 (일반적으로 자주 사용하지 않음)

  • 프로시저 (Procedure) : 특정 작업을 수행하기 위해 저장된 일련의 SQL 문.
  • 함수 (Function) : 입력값을 받아 처리 후 결과를 반환하는 프로그램 코드.
  • 패키지 (Package) : 관련된 프로시저, 함수, 변수 등을 하나로 묶은 집합체.
  • 트리거 (Trigger) : 테이블에 데이터가 삽입, 수정, 삭제될 때 자동으로 실행되는 프로시저.

05. SELECT 문의 기본 형식

SELECT DEPT.DNAME, SUM(EMP.SAL)
    FROM DEPT, EMP
GROUP BY DEPT.DNAME
SELECT JOB
    FROM EMP;
SELECT E.*
    FROM EMP E;
SELECT E.DNO, D.DNAME
    FROM EMP E, DEPT D
    WHERE E.DNO = D.DEPTNO;
SELECT E.DNO "부서코드", D.DNAME "부서이름"
    FROM EMP E, DEPT D
    WHERE E.DNO = D.DEPTNO;

!https://blog.kakaocdn.net/dna/KH1Ms/btsdzhP3aNr/AAAAAAAAAAAAAAAAAAAAADWJ4IN4F4421kJwPEligvHTxP9_6XxptxSb1gzzpMYj/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1751295599&allow_ip=&allow_referer=&signature=3OcM%2FZDaQXswQ0CSn9aFlbQVISY%3D

===Q2.
SELECT DISTINCT JOB
    FROM EMP;

!https://blog.kakaocdn.net/dna/dd2SLI/btsdIH6Yq9A/AAAAAAAAAAAAAAAAAAAAAJaIzyRbcLHq1dxIquS8CX_djHcKhh5p6VHfcjLPQah-/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1751295599&allow_ip=&allow_referer=&signature=w1Akbng57ctEsEWSYMPKjnAfNFs%3D

===Q3.
SELECT EMPNO AS EMPLOYEE_NO,
       ENAME AS EMPLOYEE_NAME,
       JOB,
       MGR AS  MANAGER,
       HIREDATE,
       SAL AS SALARY,
       COMM AS COMMISSION,
       DNO AS DEPARTMENT_NO
  FROM EMP
ORDER BY DNO DESC, ENAME ASC;

06. 연산자 (Operators)

1) 조건 연산자

  • WHERE : 특정 조건을 만족하는 데이터를 필터링.
  • AND : 모든 조건을 만족하는 경우 TRUE.
  • OR : 하나 이상의 조건을 만족하는 경우 TRUE.

2) 산술 연산자

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / : 나눗셈

3) 비교 연산자

  • = : 두 값이 같으면 TRUE.
  • !=, <>, ^= : 두 값이 다르면 TRUE.
  • <, >, <=, >= : 대소 비교 연산.

4) 범위 및 집합 연산자

  • BETWEEN A AND B : 값이 A와 B 사이에 있으면 TRUE.
    • NOT BETWEEN A AND B : 값이 A와 B 사이에 없으면 TRUE.
  • IN (값1, 값2, ...) : 값이 집합 내에 있으면 TRUE.
    • NOT IN (값1, 값2, ...) : 값이 집합 내에 없으면 TRUE.

5) 패턴 매칭 연산자

  • LIKE '패턴' : 문자열이 주어진 패턴과 일치하면 TRUE.
    • % : 0개 이상의 문자를 의미.
    • _ : 단일 문자를 의미.
    • NOT LIKE '패턴' : 패턴과 일치하지 않으면 TRUE.

6) NULL 연산자

  • IS NULL : 값이 NULL이면 TRUE.
    • IS NOT NULL : 값이 NULL이 아니면 TRUE.

7) 집합 연산자

  • UNION : 두 쿼리의 결과를 합집합으로 반환, 중복 제거.
  • UNION ALL : 중복 허용하는 합집합.
  • MINUS : 첫 번째 쿼리에서 두 번째 쿼리를 뺀 차집합.
  • INTERSECT : 두 쿼리의 교집합.

연산자 우선 순위

  • 산술 연산자 > 비교 연산자 > 논리 연산자 순으로 처리됨.

'SQL > 개념' 카테고리의 다른 글

05. 서브쿼리  (0) 2023.05.03
04. 조인  (0) 2023.05.03
03. 다중행 함수와 데이터 그룹화  (0) 2023.05.03
02. 오라클 함수  (0) 2023.05.03
00. 데이터 모델링  (0) 2023.05.02