SQLD 요점 정리3 - SQL 기본

개미는뚠뚠·2024년 1월 21일
0

자격증 준비

목록 보기
3/6

🌍SQL 기본

1. DB와 DMBS

DB : 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미한다.

DBMS : 효율적인 데이터 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요 시 필요한 데이터를 복구하기 위한 강력한 기능의 SW

2. DB의 발전

1960 : 플로우차트 중심의 개발, 파일구조 사용
1970 : DB 관리기법이 처음 태동, 계층-망형 DB등장
1980 : 관계형 DB 상용화, Oracle, Sybase 등장
1990 : 객체 관계형 DB로 발전

3. SQL이란?

관계형 DB에서 데이터 정의, 조작, 제어를 위해 사용하는 언어

4. SQL 문장 및 종류

  • DML : SELECT, INSERT, UPDATE, DELETE 등 데이터 조작어
  • DDL : CREATE, ALTER, DROP, RENAME 등 데이터 정의어
  • DCL : GRANT, REVOKE 등 데이터 제어어
  • TCL : COMMIT, ROLLBACK 등 트랜잭션 제어어
  1. 테이블 : 데이터를 저장하는 객체, 로우(가로, 행)와 칼럼(세로, 열)으로 구성
  2. 정규화 : 데이터의 정합성 확보와 데이터 입력/수정/삭제 시 발생할 수 있는 이상현상을 방지하기 위함
  3. 기본키 : 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼
  4. 외부키 : 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼

5. 데이터 유형

  • CHAR(s) : 고정 길이 문자열 정보
  • VARCHAR(s) : 가변 길이 문자열 정보
  • NUMERIC : 정수, 실수 등 숫자 정보
  • DATE : 날짜와 시각 정보

6. 제약조건

  1. PRIMARY KEY(기본키) : 기본키 정의
  2. UNIQUE KEY(고유키) : 고유키 정의
  3. NOT NULL : NULL 값 입력금지
  4. CHECK : 입력 값 범위 제한
  5. FOREIGN KEY(외래키) : 외래키 정의

7. 트랜잭션과 특성

7-1. 트랜잭션이란?

밀접히 관련되어 분리될 수 없는 1개 이상의 DB 조작

7-2. 구성

COMMIT : 올바르게 반영된 데이터를 DB에 반영
ROLLBACK : 트랜잭션 시작 이전의 상태로 되돌림
SAVEPOINT : 저장 지점

7-3. 트랜젝션의 특성

  1. 원자성 : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않아야 함
  2. 일관성 : 트랜잭션 실행 전 DB 내용이 잘못 되지 않으면 실행 후도 잘못 되지 않아야 함
  3. 고립성 : 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다.
  4. 지속성 : 트랜잭션이 성공적으로 수행되면 DB의 내용은 영구적으로 저장된다

8. 연산자의 종류

  1. BETWEEN a AND b : a와 b 값 사이에 있으면 됨
  2. IN (list) : 리스트에 있는 값중 어느 하나라도 일치
  3. LIKE ‘비교문자열’ : 비교문자열과 형태가 일치
  4. IS NULL : NULL 값인 경우
  5. NOT IN (list) : list의 값과 일치하지 않는다
  6. IS NOT NULL : NULL 값을 갖지 않는다.

연산자 우선순위 : ()->NOT->비교연산자->AND->OR

9. 문자형 함수

  1. LOWER : 문자열을 소문자로
  2. UPPER : 문자열을 대문자로
  3. ASCII : 문자의 ASCII 값 반환
  4. CHR/CHAR : ASCII 값에 해당하는 문자 반환
  5. CONCAT : 문자열1, 2를 연결
  6. SUBSTR/SUBSTRING : 문자열 중 m 위치에서 n개의 문자 반환
  7. LENGTH/LEN : 문자열 길이를 숫자 값으로 반환
- CONCAT(‘RDBMS’,SQL) -> ‘RDBMS SQL- SUBSTR(SQL Expert’,5,3) -> ‘Exp’

10. 숫자형 함수

  1. SIGN(n) : 숫자가 양수면1 음수면-1 0이면 0 반환
  2. MOD : 숫자1을 숫자2로 나누어 나머지 반환
  3. CEIL/CEILING(n) : 크거나 같은 최소 정수 반환
  4. FLOOR(n) : 작거나 같은 최대 정수 리턴

11. 날짜형 함수

  1. SYSDATE/GETDATE() 현재날짜와 시각 출력
  2. EXTRACT/DATEPART 날짜에서 데이터 출력
  3. TO_NUMBER(TO_CHAR(d,‘YYYY’))/YEAR(d)

12. NULL 관련 함수

  1. NVL(식1,식2)/ISNULL(식1,식2) : 식1의 값이 NULL 이면 식2 출력
  2. NULLIF(식1,식2) : 식1이 식2와 같으면 NULL을 아니면 식1을 출력
  3. COALESCE(식1,식2) : 임의의 개수표현식에서 NULL이 아닌 최초의 표현식, 모두 NULL이면 NULL 반환

13. 집계 함수

13-1. 정의

  1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다.
  2. GROUP BY 절은 행들을 소그룹화 한다.
  3. SELECT, HAVING, ORDER BY 절에 사용 가능
    -ALL : Default 옵션
    -DISTINCT : 같은 값을 하나의 데이터로 간주 옵션

13-2. 종류

  • COUNT(*) : NULL 포함 행의 수
  • COUNT(표현식) : NULL 제외 행의 수
  • SUM, AVG : NULL 제외 합계, 평균 연산
  • STDDEV : 표준 편차
  • VARIAN : 분산
  • MAX, MIN : 최대값, 최소값

14. GROUP BY, HAVING 절의 특징

  1. GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용한다.
  2. 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행한다.
  3. GROUP BY 절에서는 ALIAS 사용 불가
  4. 집계 함수는 WHERE 절에 올 수 없다.
  5. HAVING 절에는 집계함수를 이용하여 조건 표시o
  6. HAVING 절은 일반적으로 GROUP BY 뒤에 위치

15. ORDER BY 특징

  1. SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정한 칼럼을 기준으로 정렬하여 출력하는데 사용한다.
  2. ORDER BY 절에 칼럼명 대신 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능하다.
  3. DEFAULT 값으로 오름차순(ASC)이 적용되며 DESC 옵션을 통해 내림차순으로 정렬이 가능하다.
  4. SQL 문장의 제일 마지막에 위치한다.
  5. SELECT 절에서 정의하지 않은 칼럼 사용 가능
  • Oracle에서는 NULL을 가장 큰 값으로 취급하며 SQL Server에서는 NULL을 가장 작은 값으로 취급한다.

16. SELECT 문장 실행 순서

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

0개의 댓글