SQL 기본
관계형 데이터베이스 개요
데이터베이스(DB)
데이터를 저장하는 공간
관계형 데이터베이스(RDB)
관계형 데이터 모델에 기초를 둔 데이터베이스
모든 데이터를 2차원 테이블 형태로 표현한 뒤 각 테이블 간의 관계를 정의
RDBMS는 RDB를 관리감독하기 위한 시스템(Oracle, SQL Server, MySQL, MariaDB, PostgreSQL)
테이블
데이터를 2차원 테이블 형태로 표현
컬럼: 세로 열, 속성
로우: 가로 행, 개체
SQL(Structured Query Language)
데이터베이스에서 데이터를 다루기 위해 사용하는 언어
SELECT문
SELECT
저장되어 있는 데이터를 조회하고자 할 때 사용
SELECT 컬럼1, 컬럼2 FROM 테이블 WHERE 컬럼1 = ‘아무개’;
테이블이나 컬럼명에 별도의 별칭(Alias) 설정 가능
여러 개의 테이블을 JOIN하거나 서브쿼리가 있을 때 컬럼명 앞에 테이블명을 같이 명시해야 하는 경우 짧게 줄여쓰기 위해 사용
산술 연산자
사칙연산의 기능, NUMBER, DATE 유형의 데이터와 사용
(, ) : 1순위
*, /: 2순위
+, -: 3순위
합성 연산자
문자와 문자를 연결
SELECT 'S'||'Q'||'L'||'D' AS SQLD
FROM DUAL;
함수
문자 함수
- CHR(ASCII 코드)
ASCII 코드를 인수로 입력했을 때 매핑되는 문자가 무엇인지를 알려주는 함수
SELECT CHR(65) FROM DUAL;
- LOWER, UPPER
문자열을 소문자/대문자로 변환해주는 함수
SELECT LOWER('JENNIE') FROM DUAL;
SELECT UPPER('jennie') FROM DUAL;
- LTRIM, RTRIM
왼쪽/오른쪽 공백 혹은 지정된 문자 제거
SELECT LTRIM(' JENNIE') FROM DUAL;
SELECT RTRIM('블랙핑크', '핑크') FROM DUAL;
- TRIM
양쪽 공백 혹은 특정 문자 제거(LTRIM, RTRIM과 달리 특정 문자는 한 글자만 지정)
SELECT TRIM(' JENNIE ') FROM DUAL;
SELECT TRIM(LEADING '블' FROM '블랙핑크') FROM DUAL;
SELECT TRIM(TRAILING '크' FROM '블랙핑크') FROM DUAL;
- SUBSTR
문자열의 원하는 부분만 잘라서 반환, 길이 명시하지 않을 시 문자열의 시작점부터 끝까지
SELECT SUBSTR('블랙핑크제니', 3, 2) FROM DUAL;
- LENGTH
문자열의 길이 반환
SELECT LENGTH('JENNIE') FROM DUAL;
- REPLACE
변경 전 문자열을 찾아 변경 후 문자열로 바꿔줌, 변경 후 문자열 명시하지 않을시 제거
SELECT REPLACE('블랙핑크제니', '제니', '지수') FROM DUAL;
SELECT REPLACE('블랙핑크제니', '블랙') FROM DUAL;
숫자 함수
- ABS
수의 절대값 반환
- SIGN
수의 부호 반환
- ROUND
지정된 소수점 자릿수까지 반올림하여 반환, 기본값은 0
SELECT ROUND(163.76, 1) FROM DUAL;
SELECT ROUND(163.76, -2) FROM DUAL;
- TRUNC, CEIL
지정된 소수점까지 버림, 올림하여 반환, 기본값은 0
- FLOOR
소수점 이하의 수를 버림한 정수를 반환
- MOD
수1을 수2로 나눈 나머지를 반환
SELECT MOD(15, 7) FROM DUAL;
SELECT MOD(-15, -4) FROM DUAL;
날짜 함수
- SYSDATE
현재의 연, 월, 일, 시, 분, 초 반환
- EXTRACT
날짜 데이터에서 특정 단위만을 출력해서 반환
SELECT EXTRACT(YEAR FROM SYSDATE) AS YEAR,
EXTRACT(MONTH FROM SYSDATE) AS MONTH,
EXTRACT(DAY FROM SYSDATE) AS DAY
FROM DUAL;
- ADD_MONTHS
날짜 데이터에서 특정 개월 수를 더한 날짜 반환, 기준 날짜 일자가 존재하지 않을 시 해당 월 마지막 일자가 반환됨
SELECT ADD_MONTHS(TO_DATE('2021-12-31', 'YYYY-MM-DD'), -1) AS PREV_MONTH
FROM DUAL;
변환 함수
명시적 형변환: 변환 함수를 사용해 데이터 유형 변환을 명시적으로 나타냄
암시적 형변환: 데이터베이스가 내부적으로 알아서 데이터 유형을 변환
- 명시적 형변환에 쓰이는 함수
TO_NUMBER(문자열), TO_CHAR(수or날짜), TO_DATE(문자열, 포맷)
SELECT TO_NUMBER('1234') FROM DUAL;
SELECT TO_CHAR(1234) FROM DUAL;
SELECT TO_DATE('20210602', 'YYYYMMDD') FROM DUAL;
NULL 관련 함수
- NVL
인수1의 값이 NULL일 경우 인수2를 반환, NULL이 아닐 경우 인수1을 반환
SELECT MEMBER_NO,
NVL(REVIEW_SCORE, 0) AS REVIEW_SCORE
FROM REVIEW;
- NULLIF
인수1과 인수2가 같으면 NULL을 반환하고 같지 않으면 인수1을 반환
SELECT MEMBER_NO,
NULLIF(REVIEW_SCORE, 0) AS REVIEW_SCORE,
REVIEW
FROM REVIEW
WHERE PRODUCT_ID = '100001';
- COALESCE
NULL이 아닌 최초의 인수를 반환
SELECT NAME,
COALESCE(PHONE, EMAIL, FAX) AS CONTACT
FROM MEMBERINFO;
CASE
조건문과 같은 역할
SELECT SUBWAY_LINE,
CASE WHEN SUBWAY_LINE = '1' THEN 'BLUE'
WHEN SUBWAY_LINE = '2' THEN 'GREEN'
WHEN SUBWAY_LINE = '3' THEN 'ORANGE'
ELSE 'GRAY'
END AS LIEN_COLOR
FROM SUBWAY_INFO;
참고자료: 2022 유선배 SQL개발자(SQLD) 과외노트
http://www.yes24.com/Product/Goods/115027455
2023 유선배 SQL개발자(SQLD) 과외노트 - YES24
SQL Server 분야 베스트 1위!핵심만 쏙쏙 담은 알찬 수험서! SD에듀가 가장 효율적·효과적인 합격의 길을 제안합니다.유튜브 선생님에게 배우는 유·선·배, 『유선배 SQL개발자 과외노트』와 함께 20
www.yes24.com
댓글