SQL 복습하기
SQL을 사용하기 위해서는 디비버라는 어플리케이션 사용이 유용하다.
1 주차
● 데이터와 컬럼
![](https://blog.kakaocdn.net/dn/nO1fP/btsEV6HDGFt/B1sMktH1y4C4QAOQJPIjn0/img.png)
데이터를 나누는 방법으로 테이블이라는 커다란 칸 안에 칼럼으로 분류를 해주고 있다.
● 실행해보기
![](https://blog.kakaocdn.net/dn/qCplD/btsEY9pAqiF/eLts2NenbKz3UKFZkTxvi0/img.png)
테이블 안에 전체 칼럼 가져오기
현제 연결 되어 있는 서버의 데이터에는 아래와 같은 테이블이 있다.
![](https://blog.kakaocdn.net/dn/bL7Es9/btsEVGPWIqn/qdGO53PW3r68kiMIhovBtK/img.png)
● 필요한 항목(칼럼)만 가져오는 법
![](https://blog.kakaocdn.net/dn/bRDTEH/btsE0s3aoML/Hcgb4kjoHzmVPmTJGjCwQK/img.png)
별명 지정 방법 : 컬럼 옆쪽에 별명을 적어줍니다. (아래 두 가지 방법 모두 가능합니다)
구분
|
영문, 언더바
|
특수문자, 한글
|
방법
|
별명만 적음
|
“별명” 으로, 큰 따옴표 안에 적어줌
|
예시
|
ord_no
|
“ord no” ”주문번호”
|
예시 )
![](https://blog.kakaocdn.net/dn/vzVGP/btsEWw69XAn/s1Kow0D4IUsPQQMVenYu81/img.png)
'' 와 ""의 차이 없이 사용은 가능하다.
![](https://blog.kakaocdn.net/dn/HBCBa/btsEZAmVxlh/ky27OlsBmBGFDp7hWThO70/img.png)
● 조건에 맞는 데이터만 필요할 때, SQL로 필터링하기 ( WHERE )
가져온 칼럼 중에서 필요한 데이터만 필터링하고 싶을 때 사용 할 수 있다.
예시로 손님의 나이 중에 21살인 사람만 목록을 가져오고 싶다면?
![](https://blog.kakaocdn.net/dn/b3XiOK/btsE0jrJdP2/c8JkkMHQ3uPkPWMVhUsl11/img.png)
숫자가 아니 성별/문자도 가능하다.
![](https://blog.kakaocdn.net/dn/dRnQ7C/btsEViV0ByW/6Xk5CyVdoaWcpU3HcCkmyK/img.png)
WHERE의 구조
● WHERE + (비교연산, BETWEEN, IN, LIKE)
![](https://blog.kakaocdn.net/dn/BFOar/btsEWyDYnlP/1M0m544wkIWhcHc5PQo3D1/img.png)
WHERE을 포함한 비교문을 사용할 때 나타내는 연산표시
![](https://blog.kakaocdn.net/dn/PcE6T/btsEZzauZmm/48KNnga2MoMDKdnWynGrj0/img.png)
● BETWEEN : 일정 범위에 필요한 값을 가져오기
![](https://blog.kakaocdn.net/dn/D0UDb/btsEYQcJ0PP/7urt0MHUDvW7Uh8j7pU0D1/img.png)
10살부터 20살까지 모든 사람들을 가져오기
● IN : 칼럼의 값 중에서 내가 원하는 값만 가져오기
![](https://blog.kakaocdn.net/dn/bnHaPQ/btsEZTUfcTC/Ghdpg92PIEwXYIlSJCYRp1/img.png)
21,25,27살인 사람들만 가져온 기기
![](https://blog.kakaocdn.net/dn/bawuXD/btsE0il3g6h/oEb0zbxDhFvBsIl2pNhMH1/img.png)
● LIKE : 완전히 같은 값은 아니지만 비슷한 값을 가져오기 위해
![](https://blog.kakaocdn.net/dn/bXH7WT/btsEZpePJzb/d0EZkOsYUXepeum4qtQ3k1/img.png)
김으로 시작하는 모든 글자를 가져올 수 있다.
● 여러 가지 조건으로 검색하기
![](https://blog.kakaocdn.net/dn/cG2ieo/btsEY8Ee24Z/jqUN79yVRG7ZyRx5ssXqM1/img.png)
조건을 합치기 위해서는 'AND'를 사용하여 조건문을 합쳐준다.
![](https://blog.kakaocdn.net/dn/XL03Q/btsEYOss1qy/XtksbYifE8l5YFJi0vJ6GK/img.png)
조건물을 합쳐줄 때 사용하는 연산 종류
![](https://blog.kakaocdn.net/dn/bgwnY0/btsEYVyejIm/AmjOT6RE2oDBn4rIxDvm41/img.png)
나이가 21살이거나 성별이 남자인 사람들 전부
![](https://blog.kakaocdn.net/dn/b1I6oZ/btsEXo8TORf/1shBPNadPhLNkFKyjr6RR1/img.png)
성별이 남자가 아닌 전부
![](https://blog.kakaocdn.net/dn/oYlH0/btsEZz9uJVI/ncLDJ8K7YBDK8QoHtjaLIK/img.png)
한국음식점이며 가격이 30000원 이상인 가게
● 에러메시지
![](https://blog.kakaocdn.net/dn/c6SBI6/btsEZb103fE/EtxNuuLKCpuv92lVnnS55K/img.png)
![](https://blog.kakaocdn.net/dn/FQaRX/btsEZP5nHxD/BqRJ7q8kmsDvUvVD2ko3ck/img.png)
FROM payments로 입
![](https://blog.kakaocdn.net/dn/dPsqIV/btsE0i0Ejeq/fjeIi9QcqLvK1f0ptspOmk/img.png)
SELECT pay_type로 입력
![](https://blog.kakaocdn.net/dn/CZdy8/btsEYQDOQG7/n1IdeaASZeYUCf5ziiNNJk/img.png)
WHERE cuisine_type = 'korean'로 입력
◎ 숙제 풀이 ◎
![](https://blog.kakaocdn.net/dn/BkNXt/btsE0svkRHB/QYglAY10KnNNWbAPmyy9HK/img.png)
![](https://blog.kakaocdn.net/dn/bZWkfy/btsEVNId4ks/L9GYYnTQn0gmmbt1wCCfgK/img.png)
음식점 시간과 타입에 맞추어 필터링하기
2 주차
데이터 조회와 엑셀 함수 적용을 한 번에 끝내기
(SUM, AVG, COUNT, MIN, MAX)
![](https://blog.kakaocdn.net/dn/GIJsB/btsEXogMecF/evLtUiE7i92bViiIFOyyI1/img.png)
as 말고 한 칸 띄우고 ""로 사용해도 된다.
![](https://blog.kakaocdn.net/dn/zjXaP/btsEZSVkLjL/6FP5ZObUnKVCWm5RJbQXxK/img.png)
( SUM, AVG ) 합과 평균
![](https://blog.kakaocdn.net/dn/HBH6n/btsEYAuvRXE/k7XKIO0BogfMLIhMhUVDjK/img.png)
칼럼의 전체 값을 합산 및 평균을 계산하여 준다.
( COUNT ) 숫자 세기
![](https://blog.kakaocdn.net/dn/nh9Ma/btsEYW41IGN/1SBuaTTJlktrCfbU1FRg1k/img.png)
첫 번째 COUNT는 모든 값을 카운팅 한 것이며
두 번째 카운트는 중복값을 제외하고 카운트를 한 것이다.
![](https://blog.kakaocdn.net/dn/cYuPjj/btsEVMP8Dh1/6eifHBkLGWNpK97dkBwQf0/img.png)
결제 수단은 현금과 카드 이므로 2가지이다.
( MIN, MAX ) 최솟값 최댓값 구하기
![](https://blog.kakaocdn.net/dn/bHgYbx/btsEXn9X6B7/EPrnDQkvSmnm1oD5lrahJ1/img.png)
가격 중에서 최대 최소 값 표기
![](https://blog.kakaocdn.net/dn/kBJF5/btsEZbgD0l1/rsaMJwk8ZRawKOIF0lBSxK/img.png)
주문 개수의 최대 최소
WHERE 절로 원하는 데이터를 뽑고, 계산해 보기
![](https://blog.kakaocdn.net/dn/b94XYq/btsEYMn2fvl/I1N4Lkd5CESD5rrobjmIwk/img.png)
30000원 이상 주문한 개수는
100개이다.
![](https://blog.kakaocdn.net/dn/y27aB/btsEWjtoBlR/j6njtuoPXdhy5VJjYdmku0/img.png)
한국음식의 평균 가격
범주별 연산을 한 번에 끝내기 (GROUP BY)
![](https://blog.kakaocdn.net/dn/PKOi8/btsEYVZixXk/DYmwMMUyYgFptlZEkYgx8K/img.png)
가게별 총수입
![](https://blog.kakaocdn.net/dn/J6dDl/btsEYYaGhg1/Nc0Gaqake7OAyLSKCI28Gk/img.png)
가게 별로 30000원 이상 주문한 횟수
![](https://blog.kakaocdn.net/dn/1WC2t/btsEZRa2KML/ZdhkyyOeEoR7C42iiFd76K/img.png)
음식점 별로 가장 큰 금액
date 값을 가져오는데 ''을 붙여서 가져올 수도 있다.
![](https://blog.kakaocdn.net/dn/b8DG6X/btsEYKqfrDB/tWMuzbnBbVDelWUB7qyPTK/img.png)
결재 방식의 가장 최근 일자를 가져오기
Query 결과를 정렬하여 업무에 바로 사용하기 (ORDER BY)
![](https://blog.kakaocdn.net/dn/ED5aQ/btsEYM9hK1o/m1BypxE7EsVA4kMu4FJ79k/img.png)
sum(price)의 값이 작은 값부터 큰 값 순으로 오름차 순으로 정렬
![](https://blog.kakaocdn.net/dn/cdNCN9/btsE0rJWWlv/ABSzrgyEAWzVzdR0HShSA0/img.png)
DESC를 끝에 붙이면 반대로 내림차순으로 정렬이 된다.
![](https://blog.kakaocdn.net/dn/chbSXL/btsEWawyqCz/YA7fkIzYS4upWwDTWtMllk/img.png)
음식점 별로 가장 큰 금액 조회 후 내림차 순으로 정렬
![](https://blog.kakaocdn.net/dn/bKgKRq/btsEWfqXOlm/V5kVqBY0pBcUfnfxBhpap1/img.png)
이름으로 묶고 이름 순으로 내림차순 정렬
![](https://blog.kakaocdn.net/dn/CQAxM/btsEYLo8KR7/fOG9yHBWHuK5bXKl5Kooo0/img.png)
콤마를 찍어서 두 가지로 정렬해 줄 수 있으며 왼쪽순으로 먼저 정렬을 해준다.
◎ 숙제 ◎
![](https://blog.kakaocdn.net/dn/dckApN/btsE0jkWO2M/KHL9ofoK17ykATXD2vrqNk/img.png)
음식점이름과 최소가격 최대가격을 구하고 최소 가격 내림차 순으로 정렬
3 주차
업무 필요한 문자 포맷이 다를 때, SQL로 가공하기 (REPLACE, SUBSTRING, CONCAT)
REPLACE
![](https://blog.kakaocdn.net/dn/cvJOSi/btsEZaPzdi8/LbodZeAwtkD8woXMJNWjFk/img.png)
Blue를 찾아서 Pink로 바꾸기
![](https://blog.kakaocdn.net/dn/T2SL4/btsE0gPhEjO/y5nb7jcmkUCNjcVyOoo4Y0/img.png)
문곡리라는 글자를 찾아서 문 가리로 변경을 해주는 것
SUBSTRING(SUBSTR)
![](https://blog.kakaocdn.net/dn/SVWZH/btsEXo8TORT/jnHKjjeet7ymgsoAWrbCl1/img.png)
서울특별시 % 의 주소 내용들 중에 앞에서
두 번째 글자까지만 입력할 수 있도록
CONCAT
![](https://blog.kakaocdn.net/dn/cuTrLT/btsEXuBdH0J/mirqXxWrhw03LEosKB6fAk/img.png)
글자내용을 넣고 싶은 대로 합치거나 더할 수 있다.
문자 데이터를 바꾸고, GROUP BY 사용하기
![](https://blog.kakaocdn.net/dn/bCeVbi/btsEZn2kuPH/6eXqdlO6lVy3amfSNjqhY1/img.png)
서울 지역만 필터링해서 각음식점 별로 나눈 다음 평균금액을 설정한다.
![](https://blog.kakaocdn.net/dn/blXbMs/btsEWhoQKe3/gCpwWDgLMJ9hy5FNuKRVXk/img.png)
고객의 평균 연령을 구하고 이메일 도매인에 해당하는 고객수를 카운팅 한다
FORMAT : 내가 원하는 숫자만 표시 가능하다.
예시) ##0.0000 : 소수점 4째 자리까지.
# = 숫자가 있으면 표기
0 = 숫자가 있던 없던 표기
![](https://blog.kakaocdn.net/dn/BmL0G/btsE0jZyoy3/KKCiHA8nV2vjcTNC8kKUoK/img.png)
소숫점 반올림
![](https://blog.kakaocdn.net/dn/qUWlG/btsEXq6GEpa/xKKyaV4xNlH3Hn0cpWLTZK/img.png)
가게 정보를 concat 합쳐서 맞추고 count로 동일한 값을 카운트
'AI 코딩 교육 TIL' 카테고리의 다른 글
2024-02-08 AI 코딩 TIL (0) | 2024.02.16 |
---|---|
2024-02-07 AI 코딩 TIL (0) | 2024.02.16 |
2024-02-01 AI 코딩 TIL (0) | 2024.02.16 |
2024-01-31 AI 코딩 TIL (1) | 2024.02.16 |
2024-01-30 AI 코딩 TIL (0) | 2024.02.16 |