SQL and Django ORM
참고문서
Making queries | Django documentation | Django
QuerySet API reference | Django documentation | Django
Aggregation | Django documentation | Django
기본 준비 사항
django app
django_extensions
설치users
app 생성csv 파일에 맞춰
models.py
작성 및 migrate
db.sqlite3
활용 및 데이터 반영sqlite3
실행csv 파일 data 로드
확인
sqlite3에서 스키마 확인
문제
아래의 문제들을 sql문과 대응되는 orm을 작성 하세요.
Table 생성
django
SQL
sql.sqlite3에 동일하게 테이블 생성
기본 CRUD 로직
모든 user 레코드 조회
user 레코드 생성
하나의 레코드를 빼고 작성 후
NOT NULL
constraint 오류를 orm과 sql에서 모두 확인 해보세요.
해당 user 레코드 조회
get
은 query 결과가 반드시 하나여야 한다. (이외에는 모두 return error!)
SELECT * FROM users_user WHERE id = 100;
해당 user 레코드 수정
해당 user 레코드 삭제
조건에 따른 쿼리문
전체 인원 수
나이가 30인 사람의 이름
나이가 30살 이상인 사람의 인원 수
대소관계 __gte : >=
__gt : >
__lte : <=
__lt : <
나이가 30이면서 성이 김씨인 사람의 인원 수
거주 지역이 강원도이면서 성이 황씨인 사람의 이름
정렬 및 LIMIT, OFFSET
나이가 많은 사람 10명
잔액이 적은 사람 10명 (오름차순)
성, 이름 내림차순 순으로 5번째 있는 사람
표현식
표현식을 위해서는 aggregate 를 알아야한다.
전체 평균 나이
김씨의 평균 나이
계좌 잔액 중 가장 높은 값
계좌 잔액 총액
Group by
annotate는 개별 item에 추가 필드를 구성한다. 추후 1:N 관계에서 활용된다.
지역별 인원 수
Last updated