SQL강의
- JOIN 활용으로 두개의 테이블 연결해서 사용하기.
-- LEFT JOIN
select 조회 할 컬럼
from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명
-- INNER JOIN
select 조회 할 컬럼
from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
JOIN의 기본구조
SQL퀘스트
- datediff와 timestampdiff의 차이.
- timestampdiff를 이용하면 원하는 단위의 날짜차이를 구할수 있다.
#1. **`doctors`** 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!
SELECT name
FROM doctors
WHERE major = '성형외과'
;
#2. **`doctors`** 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!
SELECT major,
count(1) AS '전공별의사수'
FROM doctors
GROUP BY 1
;
#3. **`doctors`** 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!
SELECT count(1)
FROM payments p
WHERE datediff(current_date,hire_date)/365 >=10
;
SELECT count(1)
FROM payments p
WHERE timestampdiff(year,current_date,hire_date) >=10
;
#4. **`doctors`** 테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!
SELECT name,
datediff(current_date,hire_date) AS '근무기간'
FROM doctors
;
#1. **`patients`** 테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요!
SELECT gender,
count(1)
FROM patients
group by 1
;
#2. **`patients`** 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요!
SELECT count(1)
FROM patients
WHERE timestampdiff(year,current_date,birth_date) >= 40
;
#3. **`patients`** 테이블에서 마지막 방문 날짜(last_visit_date)가 1년 이상 된 환자들을 선택하는 쿼리를 작성해주세요!
SELECT *
FROM patients
WHERE timestampdiff(year,current_date,last_visit_date) >= 1
;
#4. **`patients`** 테이블에서 생년월일이 1980년대인 환자들의 수를 계산하는 쿼리를 작성해주세요!
SELECT count(1)
FROM patients
WHERE year(birth_date) between 1980 and 1989
;
프로그래머스 문제풀이
SQL 5개, 파이썬5개
#1번
str = input()
if 1 <= len(str) <= 1000000: #글자수제한
print(str)
#2번
a, b = map(int, input().strip().split(' '))
print('a =',a)
print('b =',b)
a, b = map(int, input().strip().split(' '))
print('a =',a)
print('b = '+str(b))
#3번
str, n = input().strip().split(' ')
n = int(n)
if 1 <= len(str) <= 10 and 1 <= n <= 5 :
print(str*n)
#4번
str = input()
if 1 <= len(str) <= 20 :
print(str.swapcase())
#5번
print("!@#$%^&*(\\'\"<>?:;")
- 공백이 어떻게 출력되는지 유의할것.
- \\\와 \\는 같은역할
- '과'''은 같은역할
- '''은 줄바꿈에도 사용된다.
'TIL' 카테고리의 다른 글
| [TIL] 241114 (4) | 2024.11.14 |
|---|---|
| [TIL] 241112 (2) | 2024.11.12 |
| [TIL] 241110 (1) | 2024.11.10 |
| [TIL] 241109 (1) | 2024.11.09 |
| [TIL] 241108 (2) | 2024.11.08 |