본문 바로가기
카테고리 없음

[SQLD]230302 sqld

by stubborngastropod 2023. 3. 2.
728x90

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

 

728x90

댓글