mysql 기초 수업은 데이터리안 강사님들의 라이브 강의, 인프런 인강을 통해 진행되었습니다.
- SQL 이론, 실습 참고하기 좋은 사이트: w3school (가입 없이 이용할 수 있습니다)
SQL Tryit Editor v1.6
WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, Opera, and Edge(79). If you use another browser you will still be able to use our Try SQL Editor, but a different ver
www.w3schools.com
SQL문법 리마인드, 새로 배운 내용 정리
<미리 보는 SQL문 구조>
SELECT 컬럼명1, SUM(컬럼명2) AS 바꿀 이름명 -- as는 생략이 가능하다
FROM 테이블명
WHERE 조건부여 -- WHERE를 쓰고 싶다면 여기에
GROUP BY 그룹핑할 컬럼명
HAVING 그룹바이 조건
ORDER BY (정렬기준 컬럼명) DESC -- 컬럼명 대신 "as로 설정한 이름"을 사용할 수 있다
LIMIT n -- n개만큼 select해올 수 있다
[ ( WHERE + 컬럼명 ) + 문법 ]
- IN ("A", "B", "C") : ()안의 값과 일치하는지 확인 -- or을 남발하는 걸 막아준다
- BETWEEN 3 AND 10 : ex) 3부터 10사이
- LIKE "%r%" | LIKE "B_____" : %와 _ 는와일드카드
- NOT LIKE : 특정 문자를 가지지 않는 검색
- IS NULL | IS NOT NULL : null값 또는 null값이 아닌 것 가져오기
- <>, != '조건' : 둘 다 같지 않다는 뜻으로 사용 가능
- 와일드카드
%: 글자수를 모를때 활용 (access에서는 *이었음)
_ : 글자수 지정 가능 (access에서는 ? 였음)
예시) '_a*' : 두번째 글자가 a인 모든 값 / 'L%E' l로 시작해서 e로 끝나는 모든 값
- 진짜 % 기호를 찾고 싶을땐 이스케이프코드 활용 : '30\%' 검색
[ 정렬할때 ]
오름차순: ORDER BY 컬럼명 (ASC) -- 생략한 경우는 asc라고 보면 됨.
내림차순: ORDER BY 컬럼명 DESC
여러 기준으로 정렬할때: ORDER BY 컬럼명1, 컬럼명2 DESC
[ 값을 몇 개만 가져올지 설정하기 ]
LIMIT 가져올 개수
- 주로 MAX, MIN과 함께 쓰며 가장 큰 값 TOP 3등 불러올때 활용한다.
SELECT와 함께 사용하는 문법
[가져올 때 +,-,*,/ 연산 가능]
select count() as total, count(sex) as sex_notnull, count() - count(sex) as sex_null
from penguins
[ 중복된 값을 가져오지 않을때 ]
SELECT DISTINCT 컬렴명
[문자열 자르는 SUBSTRING 함수]
LEFT('12345678', 4) -> 1234
RIGHT('12345678', 4) -> 5678
SUBSTR( 문자열, 시작위치, (길이) )
예시: SUBSTR( '12345678', 4, 2) -> 45
길이는 생략가능하다. 생략하면 시작위치부터 끝까지 가져온다.
[숫자 관련 함수]
CEIL(값): 올림
FLOOR(값): 내림
ROUND(값, 몇번째 자리까지 나타낼지) : 반올림
예) ROUND (23.12456, 4) -> 23.1246
[기술통계 함수]
엑셀과 유사하다
SUM, AVG, MAX, MIN, COUNT 등
[주의할 점]
COUNT(컬럼명)은 null값을 카운트하지 않는다
COUNT(*)은 다른 컬럼명에 데이터가 다 채워져 있으면 개수를 다 센다.
AVG함수를 사용했을때 공백값이 제거되어 의도했던 값이 나오지 않을 수 있으므로 주의
예시) student table
name | country | score |
Amy | USA | 90 |
Bobby | UK | 70 |
Cassandra | FRANCE | 80 |
Dana | KOREA | |
Emily | SPAIN |
SELECT COUNT(*) -> 5
SELECT COUNT(score) -> 3
SELECT AVG(score) => sum(score) / count(score) => 80점
만약 어떤 이유로 공백을 0점으로 보고 전체 평균을 내야 한다면 48점
[ 서브 쿼리 예시 ]
SELECT *
FROM station
WHERE lat > (
SELECT lat
FROM station
WHERE name = '서울북부지방법원')
mysql 기초 수업은 데이터리안 강사님들의 라이브 강의, 인프런 인강을 통해 진행되었습니다.
- SQL 이론, 실습 참고하기 좋은 사이트: w3school (가입 없이 이용할 수 있습니다)
SQL Tryit Editor v1.6
WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, Opera, and Edge(79). If you use another browser you will still be able to use our Try SQL Editor, but a different ver
www.w3schools.com
SQL문법 리마인드, 새로 배운 내용 정리
<미리 보는 SQL문 구조>
SELECT 컬럼명1, SUM(컬럼명2) AS 바꿀 이름명 -- as는 생략이 가능하다
FROM 테이블명
WHERE 조건부여 -- WHERE를 쓰고 싶다면 여기에
GROUP BY 그룹핑할 컬럼명
HAVING 그룹바이 조건
ORDER BY (정렬기준 컬럼명) DESC -- 컬럼명 대신 "as로 설정한 이름"을 사용할 수 있다
LIMIT n -- n개만큼 select해올 수 있다
[ ( WHERE + 컬럼명 ) + 문법 ]
- IN ("A", "B", "C") : ()안의 값과 일치하는지 확인 -- or을 남발하는 걸 막아준다
- BETWEEN 3 AND 10 : ex) 3부터 10사이
- LIKE "%r%" | LIKE "B_____" : %와 _ 는와일드카드
- NOT LIKE : 특정 문자를 가지지 않는 검색
- IS NULL | IS NOT NULL : null값 또는 null값이 아닌 것 가져오기
- <>, != '조건' : 둘 다 같지 않다는 뜻으로 사용 가능
- 와일드카드
%: 글자수를 모를때 활용 (access에서는 *이었음)
_ : 글자수 지정 가능 (access에서는 ? 였음)
예시) '_a*' : 두번째 글자가 a인 모든 값 / 'L%E' l로 시작해서 e로 끝나는 모든 값
- 진짜 % 기호를 찾고 싶을땐 이스케이프코드 활용 : '30\%' 검색
[ 정렬할때 ]
오름차순: ORDER BY 컬럼명 (ASC) -- 생략한 경우는 asc라고 보면 됨.
내림차순: ORDER BY 컬럼명 DESC
여러 기준으로 정렬할때: ORDER BY 컬럼명1, 컬럼명2 DESC
[ 값을 몇 개만 가져올지 설정하기 ]
LIMIT 가져올 개수
- 주로 MAX, MIN과 함께 쓰며 가장 큰 값 TOP 3등 불러올때 활용한다.
SELECT와 함께 사용하는 문법
[가져올 때 +,-,*,/ 연산 가능]
select count() as total, count(sex) as sex_notnull, count() - count(sex) as sex_null
from penguins
[ 중복된 값을 가져오지 않을때 ]
SELECT DISTINCT 컬렴명
[문자열 자르는 SUBSTRING 함수]
LEFT('12345678', 4) -> 1234
RIGHT('12345678', 4) -> 5678
SUBSTR( 문자열, 시작위치, (길이) )
예시: SUBSTR( '12345678', 4, 2) -> 45
길이는 생략가능하다. 생략하면 시작위치부터 끝까지 가져온다.
[숫자 관련 함수]
CEIL(값): 올림
FLOOR(값): 내림
ROUND(값, 몇번째 자리까지 나타낼지) : 반올림
예) ROUND (23.12456, 4) -> 23.1246
[기술통계 함수]
엑셀과 유사하다
SUM, AVG, MAX, MIN, COUNT 등
[주의할 점]
COUNT(컬럼명)은 null값을 카운트하지 않는다
COUNT(*)은 다른 컬럼명에 데이터가 다 채워져 있으면 개수를 다 센다.
AVG함수를 사용했을때 공백값이 제거되어 의도했던 값이 나오지 않을 수 있으므로 주의
예시) student table
name | country | score |
Amy | USA | 90 |
Bobby | UK | 70 |
Cassandra | FRANCE | 80 |
Dana | KOREA | |
Emily | SPAIN |
SELECT COUNT(*) -> 5
SELECT COUNT(score) -> 3
SELECT AVG(score) => sum(score) / count(score) => 80점
만약 어떤 이유로 공백을 0점으로 보고 전체 평균을 내야 한다면 48점
[ 서브 쿼리 예시 ]
SELECT *
FROM station
WHERE lat > (
SELECT lat
FROM station
WHERE name = '서울북부지방법원')