IT 34

[SQL JOIN] RIGHT JOIN 사용법

📌 SQL Right Join Right Join 은 table2 의 모든 레코드를 반환하고, table1 에서 해당되는 레코드를 반환한다. 왼쪽에 매치되는 결과가 없을 경우 null 이다. 문법 SELECT column_name FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column.name 예제 # 프로그래머스 없어진 기록 찾기 SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS AS I RIGHT JOIN ANIMAL_OUTS AS O ON O.ANIMAL_ID = I.ANIMAL_ID WHERE I.ANIMAL_ID IS NULL

IT/sql 2022.03.23

[SQL JOIN] LEFT JOIN 사용법

📌 SQL Left Join Left Join 은 table1 의 모든 레코드를 반환하고, table2 에서 해당되는 레코드를 반환한다. 오른쪽에 매치되는 결과가 없을 경우 null 이다. 문법 SELECT column_name FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column.name 예제 # 프로그래머스 오랜 기간 보호한 동물(1) SELECT I.NAME, I.DATETIME FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE O.ANIMAL_ID IS NULL ORDER BY I.DATETIME LIMIT 3

IT/sql 2022.03.23

[SQL Date] DATE_ADD, DATE_SUB 시간 더하기, 빼기

시간 더하기, 빼기 (DATE_ADD, DATE_SUB) 특정 시간을 기준으로 기간을 더하거나 빼야하는 경우 사용한다. INTERVAL 뒤의 단위의 종류에는 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 가 있다. DATE_ADD(기준 날짜, INTERVAL 숫자 단위) DATE_SUB(기준 날짜, INTERVAL 숫자 단위) DATE\_ADD(NOW(), INTERVAL 1 YEAR) DATE\_ADD(NOW(), INTERVAL 1 MONTH) DATE\_ADD(NOW(), INTERVAL 1 DAY) DATE\_ADD(NOW(), INTERVAL 1 HOUR) DATE\_ADD(NOW(), INTERVAL 1 MINUTE)

IT/sql 2022.03.22

[SQL String] TRIM, LTRIM, RTRIM, 공백 및 문자 제거

📌 SQL String 문자열 공백 또는 문자 제거 (TRIM, LTRIM, RTRIM) TRIM : 문자열에 공백 또는 문자 제거 TRIM(문자열) * LEADING : 좌측 공백 혹은 문자 제거 ```sql TRIM(LEADING FROM 문자열) TRIM(LEADING 제거할 문자 FROM 문자열) ``` * TRAILING : 우측 공백 혹은 문자 제거 ```sql TRIM(TRAILING FROM 문자열) TRIM(TRAILING 제거할 문자 FROM 문자열) ``` * BOTH : 좌우 공백 혹은 문자 제거(기본) ```sql TRIM(문자열) TRIM(BOTH 제거할 문자 FROM 문자열) ``` LTRIM : 문자열에 좌측 공백 제거 LTRIM(문자열) RTRIM : 문자열에 우측 공백 제..

IT/sql 2022.03.22

[SQL 연산자] IS NULL, IS NOT NULL 사용법, 없는 필드 찾기

📌 SQL IS NULL 연산자 NULL 값은 value 가 없는 필드를 말한다. IS NULL, IS NOT NULL 연산자는 WHERE 절 안에서 쓰인다. 새 레코드를 추가하거나 업데이트를 할 때, 지정을 해주지 않으면 NULL 값이 자동으로 들어갈 수 있다. IS NULL : 사이에 있는 값이 하나라도 있는 경우(OR) IS NOT NULL : 사이에 있는 값이 모두 없는 경우(AND) # 프로그래머스 이름이 없는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL # 프로그래머스 이름이 있는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL SQL IFNULL 함수 - NULL ..

IT/sql 2022.03.22

[SQL 연산자] IN 사용법, 다양한 값 선택

📌 SQL IN 연산자 IN 연산자는 WHERE 절 안에서 쓰이는데, 열에서 다양한 값들을 선택할 때 사용한다. 여러개의 OR 조건을 연속으로 사용하는 것과 같은 효과를 가진다. IN : 안에 있는 값이 하나라도 있는 경우(OR) NOT IN : 안에 있는 값이 모두 없는 경우(AND) # 루시와 엘라 찾기 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')

IT/sql 2022.03.22

[SQL 연산자] BETWEEN 사용법, 주어진 범위 선택

📌 SQL BETWEEN 연산자 BETWEEN 연산자는 WHERE 절 안에서 쓰이는데, 주어진 range 에 대해서 값을 선택할 수 있도록 해준다. 중요한 점은 inclucive 하다는 점이다. 예를들어, BETWEEN 1 AND 10 이면 1과 10이 포함된다. [1, 10] BETWEEN : 사이에 있는 값이 하나라도 있는 경우(OR) NOT BETWEEN : 사이에 있는 값이 모두 없는 경우(AND) 적용 타입 숫자 텍스트 : 알파벳 순서 # L-S 사이의 이름을 가진 동물들 찾기 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME BETWEEN 'L' AND 'S'

IT/sql 2022.03.22

[SQL 패턴연산자] LIKE 사용법, 특정 패턴 찾기

📌 SQL LIKE 연산자 LIKE 연산자는 WHERE 절 안에서 쓰이는데, 열에서 어떤 특정한 패턴에 부합하는 부분을 찾으려 할 때 사용한다. LIKE 연산자는 아래의 와일드 카드를 사용한다. % : 0, 1 혹은 하나이상의 char _ : 한개의 char [charlist] : 안의 알파벳 중 한개의 알파벳(or) 셋 다 함께 사용될 수 있다. LIKE '값%', LIKE '%값', LIKE '%값%' LIKE '값_', LIKE '_값', LIKE '_값_' LIKE '[a-e]%', LIKE '%[bsp]_' # 이름에 el 이 들어가는 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%el%' AND ANIMAL_TYPE = 'dog..

IT/sql 2022.03.21

[SQL 집계함수] MIN, MAX, COUNT, AVG, SUM 사용법

집계함수 5가지를 살펴본다. 📌 MIN, MAX MIN # 프로그래머스 최솟값 구하기 SELECT MIN(DATETIME) from ANIMAL_INS MAX # 프로그래머스 최댓값 구하기 SELECT MAX(DATETIME) FROM ANIMAL_INS 📌 COUNT, AVG, SUM COUNT COUNT 함수는 주의할 점이 있다. COUNT(*) 일 떄, NULL 값을 포함한다는 점이다. COUNT(칼럼) 같이 칼럼명을 정확히 명시하는 경우 NULL 값을 포함하지 않는다. 전체 행 개수 가져오기(NULL 값 포함 O)# 프로그래머스 동물 수 구하기 SELECT COUNT(*) FROM ANIMAL_INS # NULL 값 포함 칼럼 데이터 가져오기(NULL 값 포함 X)SELECT COUNT(ANIMA..

IT/sql 2022.03.21

[SQL 정렬] SELECT ORDER BY 사용법, 오름차순, 내림차순, 역순

📌 SQL ORDER BY ORDER BY 절은 특정한 칼럼을 기준으로 테이블을 정렬시킬 때 사용한다. 기본적으로 오름차순(ASC) 정렬을 한다. 내림차순 정렬을 원한다면 DESC 키워드를 사용한다. 여러기준으로 정렬할 때는 나열을 통해 해결한다. 역순 정렬 # 프로그래머스 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC 여러 칼럼으로 정렬 # 프로그래머스 여러기준으로 정렬하기 SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME ASC, DATETIME DESC

IT/sql 2022.03.21

[SQL 그룹화/조건] SELECT GROUP BY, HAVING 사용법

📌 SQL GROUP BY, HAVING GROUP BY 절은 데이터를 원하는 그룹으로 나누고자 할 때 사용한다. 나누고자 하는 그룹을 SELECT 절과 ORDER BY 절 사이에 추가하면 된다. HAVING 절은 그룹화한 결과에 조건을 걸고자 할 때 사용한다. HAVING 절은 집계함수를 이용한 조건비교를 할 때 사용한다. WHERE 절에서는 집계함수를 이용할 수 없다는 점이 차이점이다. GROUP BY # 프로그래머스 고양이와 개는 몇마리 있을까 SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE # ANIMAL_TYPE 으로 그룹화를 한 후, # ANIMAL_TYPE 과 집계함수(COUNT)를 사용하여 # 해당 AN..

IT/sql 2022.03.21

[SQL 조건문] SELECT WHERE 사용법

📌 SQL WHERE WHERE 절은 레코드를 필터할 때 사용한다. 테이블로부터 레코드를 필터한 후 SELECT 를 한다는 점 잊지 말자. 아래는 Text Field 를 조회한 WHERE 예제이다. Numeric Fields 는 따옴표를 붙이지 않는다.(예시 ID = 1) # 프로그래머스 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = "Sick" # 프로그래머스 어린 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != "Aged" WHERE WHERE 문에 사용될 수 있는 연산자 연산자 설명 =, != 같다, 다르다 >, =,

IT/sql 2022.03.21

[SQL 별칭/별명] SELECT AS(alias) 사용법

📌 SQL AS(Aliases) Alias 를 사용해서 테이블이나 열에 임시로 별명을 붙일 수 있다. JOIN 시 테이블 이름을 간단하게 줄일 때 자주 사용된다. AS 를 사용하여 원하는 Alias 를 설정할 수 있다. 열에 대한 Alias결과 ID 이름 ... ... SELECT ANIMAL_ID AS ID, NAME AS '이름' FROM ANIMAL_INS 테이블에 대한 Alias테이블을 각각 I, O 로 별명을 붙여주면 테이블 참조가 쉬워진다. # 프로그래머스 없어진 기록 찾기 SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS AS I RIGHT OUTER JOIN ANIMAL_OUTS AS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.ANIMA..

IT/sql 2022.03.21

[SQL 중복 제거] SELECT DISTINCT 사용법

📌 SQL DISTINCT SELECT DISTINCT 문은 중복된 레코드를 제거하고 유일한 값에 대해서만 결과를 출력하려면 사용한다. 칼럼 범주 조회 # 프로그래머스 예제에서 ANIMAL_TYPE 만을 뽑기 SELECT DISTINCT ANIMAL_TYPE FROM ANIMAL_INS; # 결과는 CAT, DOG # 프로그래머스 예제에서 ANIMAL_TYPE 만을 뽑기 SELECT DISTINCT(ANIMAL_TYPE) FROM ANIMAL_INS; # 결과는 CAT, DOG 조건 처리 후 칼럼 범주 조회 여기서 WHERE 로 조건에 맞게 테이블이 필터된 후, SELECT 연산을 처리 한다. # 프로그래머스 예제에서 ANIMAL_TYPE 만을 뽑기 SELECT DISTINCT ANIMAL_TYPE FR..

IT/sql 2022.03.21

[SQL] SQL 완벽정리

목차 SQL SELECT 관련 키워드(DISTINCT, ORDER BY, GROUB BY, LIMIT) 정리 SQL DISTINCT SQL CASE SQL AS(Aliases) SQL WHERE SQL GROUP BY, HAVING SQL ORDER BY SQL LIMIT SQL 집계함수(COUNT, AVG, MAX, MIN, SUM) 정리 MIN, MAX COUNT, AVG, SUM SQL 연산자(Operator) 정리 SQL 논리연산자(AND, OR, NOT 연산자) SQL LIKE 연산자 SQL IN 연산자 SQL BETWEEN 연산자 SQL IS NULL 연산자 SQL Type(String, Date) 정리 SQL String SQL Date SQL Number SQL JOIN 정리 SQL Lef..

IT/sql 2022.03.21