본문 바로가기
TIL

[TIL] 241111

by 좌우지간에 2024. 11. 11.

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