
⭐ SELECT 문
SELECT [ALL|DISTINCT] 속성이름
[FROM 테이블이름]
[WHERE 조건]
[GROUP BY 속성이름]
[HAVING 검색조건]
[ORDER BY 속성이름 [ASC|DESC]
✔ ALL/DISTINCT
- ALL : 테이블 튜플의 중복 허용 (기본 값 )
- DISTINCT: 테이블 튜플 중복 허용 X
Q. member 테이블에서 member_id가 중복되지 않은 사람들만 출력하라
SELECT DISTINCT member_id
FROM member;
✔ WHERE
: 조건을 만족하는 데이터만 검색
- 비교 연산자 : =, <, >, <=, >=
ex) PRICE < 20000 - 범위: BETWEEN
ex) PRICE BETWEEN 1000 AND 2000 - 집합 : IN, NOT IN
- 패턴: LIKE
ex) BOOKNAME LIKE '그%' - NULL: IS NULL, IS NOT NULL
- 복합조건: AND, OR, NOT
✔ LIKE
: 부분적으로 일치하는 데이터 검색
: 문자열 이용한 조건에만 사용 가능
- %: 0개 이상의 문자열과 일치
ex) '박%', '%이%', '%신' - [ ] : 1개의 문자와 일치
ex) '[0-5]%' : 0-5사이 숫자로 시작하는 문자열 - [^] : 1개의 문자와 불일치
ex) '[^0-5]%' : 0-5 사이 숫자로 시작하지 않는 문자열 - _ : 특정 위치의 1개의 문자와 일치
✔ ORDER
- ASC: 오름차순(기본)
- DESC: 내림차순
SELECT *
FROM MEMBER
ORDER BY age DESC, name ASC;
✔ 집계함수
: 특정 속성 값을 계산하기 위한 함수
* NULL 인 속성 값은 계산하지 않음
* WHERE절에는 사용 불가 ( HAVING절이나 SELECT 절에서만 사용 가능 )
- SUM: 합계
- AVG: 평균
- COUNT: 개수
- MAX: 최댓값
- MIN: 최솟값
✔GROUP BY / HAVING
: GROUP BY 키워드를 이용해 특성 속성값을 묶고, HAVING을 이용해 그룹에 대한 조건 작성
* WHERE은 그룹화하기전, HAVING은 그룹화 후 조건
⭐ 조건문
✔ SWITCH
SELECT NAME, AGE,
CASE
THEN AGE IS NULL
THEN '신원미정'
WHEN AGE < 20
THEN '미성년자'
ELSE '성인'
END AS '출입가능여부'
FROM CLUB
ORDER BY AGE;
🔥 오답노트
✔ 소숫점 처리
ROUND(number, decimal_places) /* 반올림 */
CEIL(number, decimal_places) /* 올림 */
FLOOR(number, decimal_places) /* 내림 */
- number: 숫자
- decimal_places: 자릿수 지정
✔ DATE_FORMAT
SELECT DATE_FORMAT("2021/01/24", "%Y-%m-%d");
⭐ JOIN
✔ INNDER JOIN
: 조인의 기본으로, JOIN만 작성하면 내부조인을 의미한다.
SELECT <열 목록>
FROM <첫 번째 테이블>
INNER JOIN <두 번째 테이블>
ON <조인 조건>
[WHERE 검색 조건]
#INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식합니다.

SELECT 속성
FROM 첫 번째 테이블
INNDER JOIN 두 번째 테이블
ON 조인 조건
[WHERE 검색 조건]
[GROUP BY]
[HAVING]
[ORDER BY];
✔ OUTER JOIN

✔ IFNULL
: 해당 컬럼의 값 중, NULL이 있으면 대체값을 입력한다.
SELECT IFNULL(COLUMN, 대체값)
✔ IF
: 조건이 맞을 경우 참 값을, 틀릴 경우 거짓 값을 입력한다.
SELECT IF(조건, 참값, 거짓값)
⭐ 날짜함수
✔ 특정 날짜와 시간 정보
DATE(expression)- 주어진 expression에 해당하는 날짜 정보 반환MONTH(date)- 주어진 date에서 월에 해당하는 숫자를 반환(0~12)DAY(date)- 주어진 date에서 일자에 해당하는 숫자를 반환(0~31)HOUR(date)- 주어진 date에서 시간에 해당하는 숫자를 반환(0~23)MINUTE(date)- 주어진 date에서 분에 해당하는 숫자를 반환(0~59)SECOND(date)- 주어진 date에서 초에 해당하는 숫자를 반환(0~59)WEEKDAY(date)- 주어진 date에서 요일에 해당하는 숫자를 반환(월요일=0, 일요일=6)LAST_DAY(date)- 주어진 date에서 해당 월의 마지막 날짜 정보 반환
문제추천
https://school.programmers.co.kr/learn/courses/30/lessons/59412
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
https://school.programmers.co.kr/learn/courses/30/lessons/131113
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
https://school.programmers.co.kr/learn/courses/30/lessons/131533
'[Database] 데이터베이스' 카테고리의 다른 글
| [SQL] Error Code: 1175 (3) | 2024.07.17 |
|---|---|
| [Database] 정규화 (0) | 2024.07.17 |