231118 TIL #246 SQLD #6 SQL 기본 및 활용

김춘복·2023년 11월 17일
0

TIL : Today I Learned

목록 보기
246/571

Today I Learned

오늘은 SQLD 시험을 보고 왔다. 조금만 준비 기간이 더 있었으면 완벽히 합격했을 텐데 면접 준비하느라 기출을 많이 못 본게 약간 아쉽다. 그래도 준비 해간 만큼은 풀어서 다행이다.


관계형 DB

DB

데이터를 일정한 형태로 저장해놓은 것. DBMS를 이용해 효율적인 데이터 관리와 손상 복구 가능

  • 종류
    계층형 DB : 트리형태의 자료구조에 데이터 저장. 1:N 관계 표현
    네트워크형 DB : 오너와 멤버 형태로 데이터 저장. M:N 관계 표현
    관계형 DB : 릴레이션에 데이터 저장. 집합 연산과 관계 가능

관계형 DB(RDB)

정규화를 통해 이상현상 및 중복 데이터 제거
동시성 관리와 병행제어를 통해 데이터 동시 조작 가능

  • 집합 연산
    합집합(Union), 차집합(Difference), 교집합(Intersection), 곱집합(Cartesian Product):

  • 관계 연산
    선택연산(Selection), 투영연산(Projection), 결합연산(Join), 나누기연산(Division)


SQL

Structured Query Language. RDB에서 사용하는 언어.
데이터 조회 및 신규 데이터 입력/수정/삭제 가능

데이터 타입

  • CHAR(L) : 고정길이 문자열. 길이가 L 이하일 때 차이는 공백으로 채워짐
  • VARCHAR2(L), VARCHAR(L) : 가변길이 문자열. 변수 최대값이 L
  • NUMBER(L,D) : 숫자형. L이 전체 자리 수, D가 소수점 자리 수
  • DATE, DATETIME : 날짜형. 데이터 크기 지정 필요 x

WHERE절

SELECT 컬럼명 FROM 테이블명 WHERE 조건절;

연산자

  • 비교연산자
    =, >, >=, <, <=

  • 부정비교연산자
    !=, ^=, <>

  • SQL 연산자
    BETWEEN A AND B : A와 B 사잇값
    IN (리스트) : 리스트 내의 값
    LIKE ‘문자열’ : 문자열의 형태와 일치하는 값
    IS NULL : NULL은 등호로 판단 불가 어떤 상황에서도
    NOT BETWEEN A AND B, NOT IN (리스트), IS NOT NULL

  • 와일드카드
    %(퍼센트)는 0개 이상의 문자
    _(언더바)는 1개의 단일 문자

  • 논리 연산자
    AND, OR, NOT

  • 우선순위 : 부정 > 비교 > 논리

  1. ( ) 괄호
  2. NOT
  3. 비교 및 SQL 연산자
  4. AND
  5. OR

부분 범위 처리

ROWNUM : Oracle에서 사용. SQL 처리결과 집합의 각 행에 임시로 부여되는 번호
조건절 내에서 행의 개수를 제한함
TOP : SQL Server에서 사용. 출력행 제한 함수. TOP (N)으로 N개 행 출력. 개수 대신 비율로 제한 가능.
ORDER BY절이 없으면 ROWNUM과 TOP의 기능은 같다.


함수

단일행 함수

SELECT절, WHERE절, ORDER BY절에 사용 가능. 각 행에 개별적으로 적용
여러 인자를 입력해도 결과를 단 하나만 출력

  • 문자형 함수
    LOWER, UPPER, LENGTH
    CONCAT : 문자열 결합
    SUBSTR : 문자열 부분 추출
    LTRIM, RTRIM, TRIM : 왼쪽 공백 제거, 오른쪽 공백 제거, 양쪽 공백 제거
    ASCII : 아스키 코드값 출력

  • 숫자형 함수
    ABS, SIGN : 절대값, 부호 (1, 0, -1 중 출력)
    MOD : 나머지, 연산자 ’%’로 대체 가능함
    ROUND, CEIL, FLOOR : 반올림, 올림, 버림 (‘함수(E,N)’으로 소수점 이후 N번째 자리까지 출력)
    TRUNC : 숫자형 부분 추출

  • 날짜형 함수
    SYSDATE : 현재 시각 출력 (년, 월, 일, 시, 분, 초)
    EXTRACT : 날짜형 부분 추출 SQL>> SELECT EXTRACT(부분 FROM SYSDATE) FROM DUAL;
    ±숫자, ±숫자/24 : 일자 연산, 시간 연산
    NEXT_DAY : 지정된 요일 첫 날짜 출력

  • 변환형 함수
    TO_NUMBER, TO_CHAR, TO_DATE (Oracle): 문자열을 숫자로, 숫자나 날짜를 문자열로, 문자열을 날짜로
    CAST, CONVERT (SQL Server)

  • NULL 관련 함수
    NVL(칼럼,값) : NULL 값 변환
    NVL2(칼럼,값,값) : NULL이면 앞의 값 아니면 뒤의 값 출력
    NULLIF(값,값) : 같으면 NULL 다르면 첫 값 출력
    COALESCE(값,값,…) : NULL이 아닌 첫 값 출력
    ISNULL(칼럼,값) : NULL이면 값으로 대치 아니면 칼럼 값 출력

profile
Backend Dev / Data Engineer

0개의 댓글