- SELECT
- 찾을 컬럼
- SELECT ANIMAL_TYPE AS ANIMAL
- ANIMAL_TYPE이라는 컬럼을 출력할땐 ANIMAL이라고 출력하기
- FROM
- 탐색할 테이블
- ORDER BY 컬럼
- ASC : 오름차순(디폴트값)
- DESC : 내림차순
- ex) ORDER BY NAME, DATETIME DESC
- 기준이 여러개면 ORDER BY 뒤에 우선순위대로 넣으면 됨!
- NAME 오름차순으로 먼저 정렬 후 이름이 같은 경우
- DATETIME 내림차순 기준으로 정렬한다는 뜻!
- WHERE
- 특정 조건 찾기
- ex) INTAKE_CONDITION = 'Sick' -> INTAKE_CONDITION이 'Sick'인 동물 찾기! '' 꼭 필요!
- LIMIT
- 위에서부터 몇 개 뽑을지 정하기
- ex) LIMIT 3
- COUNT
- 개수 세기
- NULL의 경우
- COUNT(*) -> NULL까지 셈!
- COUNT(컬럼명) -> NULL빼고 셈!
- AVG
- 평균 내기
- MAX
- 최댓값 구하기
- MIN
- 최솟값 구하기
- DISTINCT
- 중복 제거
- ex) SELECT COUNT(DISTINCT NAME) -> 중복제거된 NAME 개수세기
- NULL
- IS NOT NULL
- IS NULL
- GROUP BY
- 그룹짓기
- HAVING
- GROUP BY 절에 의해서 생긴 각 그룹에 대해 조건을 적용할 때 사용
-
SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >= 2 # NAME별로 이름을 세봤을 때 그 개수가 2 이상인 경우! ORDER BY NAME
- BETWEEN
- WHERE절에 쓰이고 이상, 이하의 범위를 가짐
- YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
- 각종 시간관련 추출
- IFNULL
-
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, # MYSQL은 IFNULL이란 함수를 사용한다 # NAME이란 컬럼에 NULL이 있을 경우 그 값을 'No name'으로 바꿔줘란 뜻이다 # 그리고 그 컬럼의 이름은 NAME이라 만들고 저장해줘 SEX_UPON_INTAKE FROM ANIMAL_INS
-
- 서브쿼리
-
SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS WHERE ANIMAL_ID NOT IN ( SELECT ANIMAL_ID FROM ANIMAL_INS ) # 테이블이 ANIMAL_OUTS / ANIMAL_INS 두 개임! # 괄호를 통해 서브쿼리를 생성한다. # ANIMAL_INS 테이블에서 ANIMAL_ID를 가져온후 # 위에 FROM ~ WHERE NOT IN을 통해 # ANIMAL_OUTS 테이블의 ANIMAL_ID랑 비교하여 # ANIMAL_OUTS에는 있지만 ANIMAL_INS에는 없는 ANIMAL_ID를 찾아낸다!
-
- JOIN
-
SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I # ANIMAL_INS를 기준으로 조인을 실행할거임! 그리고 다 쓰기 귀찮으니깐 ANIMAL_INS를 I라고 명명 # ANIMAL_INS가 기준이다는 것은 ANIMAL_INS의 행은 다 살아있다는 것! # -> 만약 데이터가 INS에는 없고 OUTS에는 있는 경우여도 NULL로 ANIMAL_INS의 행을 살려줌 LEFT JOIN ANIMAL_OUTS O ON O.ANIMAL_ID = I.ANIMAL_ID # 대상이 되는 테이블 -> ANIMAL_OUTS, 이름은 O로 정함 # 외래키인 ID를 서로 비교하여 같은 친구들을 찾아서 JOIN! WHERE O.DATETIME < I.DATETIME # I의 날짜가 O의 날짜보다 뒤인 경우를 찾아서~! # 위에 SELECT문으로 I의 데이터들을 추출 ORDER BY I.DATETIME
-
- LIKE
- WHERE 절 뒤에 따라옴
- 나이키% : 나이키로 시작하는
- %나이키 : 나이키로 끝나는
- %나이키% : 나이키가 들어가는
- 나이키_ : 나이키 뒤에 무조건 한 글자오는 친구 찾기
- _나이키 : 나이키 앞에 무조건 한 글자 오는 친구 찾기
- %R%R% : R이 2개 있는건 다 가져오기!
- SBRBR 이것도 되고
- RR 도 되고
- NBXGRRBC도 된다!
- CASE WHEN ~ THEN ~ ELSE
- 특정 case 찾아서 재설정하고 프린트할 때 사용
-
SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE 'Ne%' OR SEX_UPON_INTAKE LIKE 'Sp%' # SELECT 안에 들어가 있는 것 이므로 들여쓰기 주의! # SEX_UPON_INTAKE가 Ne로 시작하거나 Sp로 시작하면! THEN 'O' # O라고 설정하고 ELSE 'X' END AS 중성화 # 아니면 X라고 설장하고 그 컬럼이름은 중성화라고 짓는다! FROM ANIMAL_INS
- DATE_FORMAT
- 주어진 시간 내 맘대로 바꾸기
- DATE_FORMAT(컬럼, '%Y-%m-%d')
- 막 영문자 치다보면 뭐라도 나올듯!
-
구분기호 역할 구분기호 역할 %Y 4자리 년도 %m 숫자 월 (두 자리) %y 2자리 년도 %c 숫자 월(한자리는 한자리) %M 긴 월(영문 %d 일자 (두자리) %b 짧은 월(영문) %e 일자 (한자리는 한자리) %W 긴 요일 이름(영문) %l 시간 (12시간) %a 짧은 요일 이름(영문) %H 시간(24시간) %i 분 %r hh:mm:ss AM, PM %T hh:mm:SS %S 초
- CEILING
- 올림
- ROUND
- 반올림
- FLOOR
- 내림
- UPPER
- 대문자로
- LOWER
- 소문자로
- RANK
- 1 2 3 4 5 5 5 5 8
- DENSE RANK
- 1 2 3 4 5 5 5 5 6
- ROW NUMBER
- 1 2 3 4 5 6 7 8
- LTRIM, RTRIM, TRIM
- 왼쪽, 오른쪽, 양쪽 공백제거
- SUBSTRING
- 문자열에서 원하는 문자열 추출
- SUBSTRING('TISTORY', '2', '3') -> 'IST'
- REPLACE
- 문자열 치환
- REPLACE('문자열', '치환할 문자열', '대체할 문자열')
- REPLACE('ABCDE', 'A', '1') -> '1BCDE'
'자격증 공부📖 > SQLD' 카테고리의 다른 글
[프로그래머스] SQL 코딩테스트 연습 / STRING, DATE (0) | 2021.07.03 |
---|---|
[프로그래머스] SQL 코딩테스트 연습 / JOIN (0) | 2021.07.03 |
[프로그래머스] SQL 코딩테스트 연습 / IS NULL (0) | 2021.07.03 |
[프로그래머스] SQL 코딩테스트 연습 / GROUP BY (0) | 2021.07.03 |
[프로그래머스] SQL 코딩테스트 연습 / SUM, MAX, MIN / 중복 제거하기 (0) | 2021.07.03 |