SQL 기초 명령어 정리

dong5854·2022년 3월 27일
0

sql

목록 보기
1/7

SQL을 항상 띄엄띄엄 공부하다보니 명령어들을 자꾸 까먹고 다시 처음부터 SQL을 공부하게 되는 악순환에 빠져 명령어들을 정리해두려 한다. 나중에 기록이 충분히 쌓이면 이 글을 다시 한번 정리하는 것을 목표로 한다.


1. 부등호, 등호 (=,>=,<=,>,<,!=,<>)

우리가 보통 아는 부등호 등호화 의미가 같다. <>는 != 와 같이 '같지 않다'라는 의미를 갖는다.

# =는 같다는 의미
SELECT * FROM main_database.member WHERE age = 25;

# != 와 <>는 같지 않다는 의미
SELECT * FROM main_database.member WHERE age != 25;
SELECT * FROM main_database.member WHERE age <> 25;

2. BETWEEN a and b

연속된 범위의 값을 나타낸다.(a와 b의 값을 포함한다.)

# 아래와 같이 작성하면 나이가 25 이상 30 이하인 데이터를 조회
SELECT * FROM main_database.member WHERE age BETWEEN 25 and 30;

3. NOT

부정의 의미로 사용된다.

# 아래와 같이 작성하면 나이가 25 이상 30 이하가 아닌 데이터를 조회
SELECT * FROM main_database.member WHERE age NOT BETWEEN 25 and 30;

4. IN

BETWEEN a and b와는 다르게 연속 된 범위가 아닌 해당 값만을 추린다.

# 아래와 같이 작성하면 나이가 딱 20살 또는 딱 30살인 데이터들만 조회
SELECT * FROM main_database.member WHERE age IN (20,30);

5. LIKE

패턴 매칭을 위해 사용된다.

# %는 아무 문자열을 의미한다.

#아래와 같이 작성하면 address가 서울이라고 시작되는 데이터를 조회한다.
SELECT * FROM main_database.member WHERE address LIKE '서울%';

#아래와 같이 작성하면 address에 '일산'라는 단어가 포함되는 데이터를 조회한다.
SELECT * FROM main_database.member WHERE address LIKE '%일산%';

# _는 아무 문자 하나를 의미
SELECT * FROM main_database.member WHERE address LIKE 'd___@%';

# 만약 검색하고 싶은 문자에 %,_이 있다면 역슬래쉬로 이스케이핑 해준다.
SELECT * FROM main_database.member WHERE address LIKE '%\%%';

6. CAST, CONVERT

CAST(컬럼명 as 데이터 타입)
CONVERT(컬럼명, 데이터 타입)

원하는 데이터 타입으로 바꿔준다.

SELECT CAST('2' AS SIGNED)
SELECT convert('2', SIGNED)

7. LIMIT

반환하는 행의 갯수를 제한, 2가지 방식이 있다.

# LIMIT 반환갯수
# 5개의 행만을 반환
SELECT * FROM main_database.member LIMIT 5;

#LIMIT 시작점, 반환갯수
#10번째 행부터 5개의 행을 반환, 10번째인데 9인 이유는 0부터 시작이기 때문
SELECT * FROM main_database.member LIMIT 9,5;

8. BINARY

BINARY 연산자는 뒤에 오는 문자열을 BINARY 문자열로 바꿔준다. 대소문자를 구분할 때 유용하게 사용된다.

# 아래는 1(true)를 반환
SELECT 'a' = 'A';

# 아래는 (false)를 반환
SELECT BINARY 'a' = 'A';
  1. COALESCE
  2. DISTINCT
  3. SUBSTRING
  4. LIMIT

SQL은 다양한 함수를 지원한다.

9. IFNULL, COALESECE

null의 처리를 위해 사용되는 명령어들

IFNULL(컬럼명, "Null일 경우 대체 값"),
COALESCE(컬럼명1, 컬럼명2, 컬럼명3, 컬럼명4): 컬럼명1,2,3,4 순서대로 NULL이 아닌 첫번째 값 출력

# height가 NULL 인 경우 "해당값 없음"으로 표시
SELECT IFNULL(height, "해당값 없음") as height FROM main_database.member;

# height가 NULL인 경우 weight * 2.3으로 대체하고 그마저 없을 경우 "해당값 없음"으로 표시
SELECT COALESCE(height, weight*2.3,"해당값 없음") as height FROM main_database.member;

10. DISTINCT

중복된 값을 제거


# 반환값은 m(남성), f(여성) 2가지만 존재
SELECT DISTINCT(gender) FROM main_database.member;

11. SUBSTRING

문자열을 추출


#SUBSTRING(문자열, 시작지점)
SELECT SUBSTRING("dong5854", 2)
> ong5854

#SUBSTRING(문자열, 시작지점, 길이)
SELECT SUBSTRING("dong5854", 3, 2)
> ng

12. IF

IF(조건식, "True일 경우", "False일 경우")

SELECT IF(height IS NOT NULL, height, "해당 값 없음") FROM main_database.member;
profile
https://github.com/dong5854?tab=repositories

0개의 댓글