sql 30

[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] LEFT, MID, RIGHT, 문자열 부분 가져오기

문자열 부분 가져오기 (LEFT, MID, RIGHT) 문자열에 일부분을 가져오는 함수는 3가지가 존재합니다. LEFT : 문자에 왼쪽을 기준으로 일정 갯수를 가져오는 함수 LEFT(문자, 가져올 개수) MID, SUBSTR, SUBSTRING : 문자에 지정한 시작 위치를 기준으로 일정 갯수를 가져오는 함수 MID(문자, 시작 위치, 가져올 개수) RIGHT : 문자에 오른쪽을 기준으로 일정 갯수를 가져오는 함수 RIGHT(문자, 가져올 개수)

카테고리 없음 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