[SQL 2주차]Point to check(date형, between, left, INSTR, IFNULL(), USING)

jay bong·2024년 4월 26일

SQL

목록 보기
9/9
post-thumbnail

2024.04.22(월)

WHERE절 논리연산자 사용 주의점

논리연산자를 사용할 때는 (괄호)를 잘 사용해야 한다.

WHERE를 사용할 때, 조건 여러가지를 중첩해서 사용하려고 하면 AND,OR을 사용하게 된다. 그러나 조건들을 잘 묶어주지 않으면 SQL에서는 WHERE 이후에 논리연산자가 나오게 되면 논리연산자 앞에서 조건을 마무리 한다.

where 직업 = '아나운서' or '승무원' #아나운서인 경우만 확인
where 직업 = ('아나운서' or '승무원')  # 아나운서 or 승무원 확인
where 조건1 and 직업 = '아나운서' or '승무원' # 조건 1과 아나운서만 확인.
where (조건1 and (직업 = '아나운서' or '승무원')) # 이렇게 묶어주는 버릇을 들여라.

다양한 시간 표현

시간을 포현하는 방식은 다양하다, 날짜형으로 표현하기도 하고, 문자형으로 날짜를 표현하기도 한다. 또한 년도,월,일,시간등...어디까지 표현할 것인지도 사용자의 마음이다. 따라서 각각의 상황에 맞춰 함수를 사용해야 한다.

함수설명/형식
DATE()시간 정보가 없는 날짜 / 'YYYY-MM-DD'
TIME()날짜 정보가 없는 시간 /'HH:MM:SS'
DATETIME()날짜 및 시간 정보 / 'YYYY-MM-DD HH:MM:SS'
TIMESTAMP()범위가 있는 날짜 및 시간정 정보 / '1970-01-01 00:00:01' UTC에서 '2038-01-19 03:14:07' UTC까지

또한 다양한 형식으로 바꿔주기 위해서
date_format(date칼럼,'원하는 형식')

2024-04-01(월)-18:45:14

구분기호역할구분기호역할-
%Y2024%y24
%MApril%bapr
%m04%c4
%d01%e1
%WMonday%aMon요일
%I06%H18
%i45%S14분/초
%Thh:mm:SS%rhh:mm:ss AM,PM

오라클에서는 TO_CHAR를 사용한다. 참고정도로 알아두자.

구분기호역할구분기호역할
CC세기YYYY/YYY/YY/Y년도
YEAR문자 년도BC or ADBC/AD
Q분기MM두 자리 월
MONTHMON1
DAY요일 이름DY요일 약어

이외에도 다양한 것들을 표현하는 문자들이 있지만, 사용하면서 알아보고, 필요할 때 찾자.

2024.04.23(화)

집계함수& distinct

distinct를 사용할 때 집계함수를 사용할 때는 집계함수 뒤에 괄호 안에 distinct를 넣어서 사용해야 한다.

select 칼럼, count(distinct 칼럼)
			# count distinct 칼럼 XXX
from 테이블

between

between 숫자1 and 숫자2

  • 숫자 1이상 숫자2 이하

left

left 함수는 문자열을 받아서 왼쪽부터 원하는 길이 만큼 자르는 함수다.
오른쪽 부터는 right, 원하는 부분은 substring이 있다.

left(문자열,길이)
right(문자열,길이)
substr(문자열,시작위치,길이)

INSTR

찾고싶은 문자열이 일치하면 입력한 순서의 인덱스를 출력하고, 찾지 못했다면 0 출력
INSTR('문자열','찾고싶은 문자열',시작위치,순서)

2024.04.24(수)

IFNULL()

IFNULL 함수는 해당 칼럼 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 한다.

기본 구조

SELECT IFNULL(Column, "Null일 경우 대체 값") FROM 테이블명;

2024.04.25(목)

이미 예약어가 존재하는 칼럼명을 설정하고 싶다면 백틱(`:1 왼쪽에 있는)을 사용하여 지정한다.

2024.04.26(금)

USING

join을 간단하게 방법으로 USING절을 사용할 수 있다. USING절은 테이블1과 테이블2에 있는 key들을 묶어줄 수 있다.
using문법

SELECT 칼럼1, 칼럼2
FROM 테이블1 as a INNER JOIN 테이블2 as b
      USING (key칼럼1, key칼럼2)    
profile
Fly High

0개의 댓글