- 관계 대수 연산자
1) 집합연산자
2) 순수관계 연산자: 셀렉트(WHERE), 프로젝트(SELECT), 조인
3) 확장된 관계 연산자: 외부조인 / 그룹연산/ 통계연산 / 작명연산
- SQL DML(Data Manipulation Language)
1) 검색: SELECT문
2) 갱신: INSERT문/ DELETE문/ UPDATE문
1. SELECT문
-> SELECT - (FROM) - WHERE 구조
-> SELECT절: 관계대수의 프로젝트 연산자
-> FROM절은 표준SQL, Oracle에서 생략불가 (MySQL, SQL server은 가능)
(1) SELECT문 실행순서
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
- SELECT문 종류: 단일값 쿼리-scala query / 다중값 쿼리- column query/ 다중행 쿼리-table query
- SELECT문의 DISTINCT: 중복된 투플은 제거한다.
-> SELECT문의 ALL(디폴트 값): 중복 모두 나타낸다.
- COLUMN ALIAS(컬럼 별칭)에 공백이 들어가면 ''(따옴표)를 쓴다.
- 컬럼 별칭은 WHERE, GROUP BY절에서는 사용불가 (표준 SQL)
-> GROUP BY절에서는 컬럼 별칭을 사용 가능하고 WHERE절에서는 사용불가 (MySQL)
- WITH절을 이용한 임시 테이블 생성
-> 두 질의문을 연결
-> WITH절에 포함된 질의문 결과에 메모리에 임시테이블로 저장
-> 메인 질의문이 임시 테이블을 일반 테이블 처럼 사용가능
-> 메인 질의문 실행 완료되면 임시 테이블은 삭제된다.
-> 관계 대수의 작명(Rename) 연산자
- 새로운 컬럼 생성
1) 산술 표현식( +,- , * , /, %, MOD )을 사용한 컬럼 생성
2) 문자열 연결해서 -> CONCAT(string1, string2, .... )
3) CASE 표현식 (IF- THEN-ELSE 논리와 유사)
-> 중첩된 CASE 표현식도 가능하다.
(2) SELECT문의 WHERE절
- 투플 조건식을 이용하여 테이블에서 조건에 맞는 투플만 선택
- 관계 대수의 select연산자
-> 연산자(비교 연산자, SQL 연산자, 논리 연산자)
-> 비교 연산자: >, <, <>(같지 않다)
-> 논리 연산자: () -> NOT -> AND -> OR 순서대로
-> (NOT) IN (list) 멤버십 연산자: 컬럼 값/ 컬럼값의 리스트가 다중 값 / 다중 행 리스트에 존재하는지 검사 (1 / 0 리턴)
-> (NOT) LIKE 연산자: 패턴매치 연산자(문자열 내에 패턴과 일치하는 부분 문자열이 있는지 검사, 1 / 0리턴,
/ Wild character: %(0개 문자 이상의 임의의 문자열) , _(1개의 단일문자)
-> (NOT) BETWEEN a AND b 연산자
-> IS (NOT) NULL연산자: ASCII 코드 0(NULL) , 아스키코드 32: 공백문자 ' ', 아스키코드 48: 숫자 '0'
NULL과의 비교는 항상 False
ex) state = null (X) / stais IS NULL (O)
본 게시글은 프로그래머스의 "학교 밖에서 듣는 전공 필수SQL/DB Essentials" 강의 내용을 토대로 업로드 했습니다.
https://programmers.co.kr/learn/courses/13484
'컴퓨터 과학 > [프로그래머스] SQL DB Essentials' 카테고리의 다른 글
Chapter 06 DML : 내장 함수와 갱신문 (0) | 2022.03.08 |
---|---|
Chapter 05 DML : 단일 테이블 검색문 (Part 2) (0) | 2022.03.06 |
[2주차] 강의노트 DDL & DML (0) | 2022.03.05 |
Chapter 03 스키마와 테이블 정의를 위한 명령문 (0) | 2022.02.28 |
[1주차] 강의노트 RDB & ERD (0) | 2022.02.26 |