SQL 9

QuerySet 실습 정리

Movie 테이블에 데이터 추가하기 Movie 테이블의 모든 데이터를 출력하기 각 영화의 감독 name 조회 및 출력하기 각 영화의 감독 name과 장르명 조회 및 출력하기 최신 개봉한 영화순으로 출력하기 가장 먼저 개봉한 영화 출력하기 현재 상영 중인 영화들을 개봉일 순으로 조회 및 출력하기 영화 감독이 봉준호 인 영화들을 개봉일 순으로 조회 및 출력하기 봉준호 감독 영화 중 두 번째로 개봉한 영화 조회 및 출력하기 봉준호 감독 영화 중 장르가 드라마인 영화들을 개봉일 순으로 조회하기 봉준호 감독의 영화가 아닌 영화들을 개봉일 순으로 조회하기

SQL 2022.08.25

[이론] ORM, Object-Relational-Mapping

객체 속성과 메서드를 가지고 있다. 속성은 값, 메서드는 함수를 실행시키는 것 값과 함수 클래스와 인스턴스 클래스가 사람이면, 인스턴스는 아이유, 유재석과 같은 의미이다. 틀과 사례 ORM; Object-Relational-Mapping 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형의 시스템 간의 데이터를 변환하는 프로그래밍 기술 SQLAIchemy, peewee, Dajango ORM 파이썬으로 데이터베이스를 조작하는 것이다. 객체로 DB를 조작한다." Genre.objects.all() == SELECT * FROM Genre; 두 문장은 같은 의미를 가지고 있다. 즉, 객체를 리스트로 담아서 보여주는 것이다. 모델 설계 및 반영 1. 클래스를 생성하여 원하는 DB의 구조를 만든다. cla..

SQL 2022.08.24

[이론] 데이터베이스 모델링, ERD

데이터베이스 모델링 개념적 데이터 모델링 데이터의 요구사항 분석 과정 핵심 개체 (Entity) 사이의 관계를 찾아내고 표현한다. 논리적 데이터 모델링 데이터베이스 설계 프로세스의 과정 정보의 논리적인 구조와 규칙, 관계를 설정한다. 물리적 데이터 모델링 논리적 데이터 모델을 바탕으로 실제 구상 ERD; Entity Relation Diagram 엔터티 Entity 업무가 관여하는 정보 엔터티의 특징 엔터티는 반드시 속성을 가져야 한다. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. 유일한 식별자에 의해 식별이 가능해야 한다. 영속적으로 존재하는 (두 개 이상의) 인스턴스의 집합이어야 한다. 속성 Attribute 엔티티가 가지는 성격, 데이터 타입과 크기 및 제약사항을 지정한다. 속성..

SQL 2022.08.23

[이론] JOIN

JOIN 관계형 데이터베이스의 큰 장점이자 핵심적인 기능이다. 일반적으로 데이터베이스에는 하나의 테이블에 많은 데이터를 저장하는 것이 아니라 여러 테이블로 나눠 저장한다. 그러므로 여러 테이블을 결합하여 출력하여 Join을 활용한다. 기본키(PK) 나 외래키(FK) 값의 관계에 의해 결합한다. 외래키는 다른 테이블의 기본키를 참조한 키이다. 두 개의 테이블을 결과로 나타내고자 하는 것이다. Join을 사용하는 이유 데이터를 수정할 시 용이하다. 어느 한 커뮤니티의 질문 테이블에서 '홍길동'의 role을 수정한다고 가정해보자. 'student'를 '학생'으로 수정하기 위해서 하나의 테이블에서 연속적으로 수정이 이뤄져야 한다. 즉, 해당되는 데이터를 일일이 다 바꿔줘야 한다. 만약 이 데이터가 4개가 아닌 ..

SQL 2022.08.22

[이론] CASE, SubQuery

CASE 특정 상황에서 데이터를 변환하여 활용할 수 있다. ELSE를 생략하는 경우 NULL값이 지정된다. 조건문과 같은 역할을 한다. CASE WHEN 조건식 THEN 식 WHEN 조건식 THEN 식 ELSE 식 END 예문 gender가 1일때 남자를, 2일때 여자를 출력해보자. SELECT id, CASE WHEN gender = 1 THEN '남자' WHEN gender = 2 THEN '여자' END AS 성별 FROM healthcare LIMIT 5; -- id 성별 -- -- ----- -- 1 남자 -- 2 여자 -- 3 여자 -- 4 남자 -- 5 여자 CASE는 찾고자하는 컬럼 뒤, SELECT절에 조건을 달아 찾도록 한다. 나이에 따라 청소년(18), 청년(30), 중장년(~64)로..

SQL 2022.08.19

[이론] Aggregate Function 집계 함수, GROUP BY

기본 함수와 연산 문자열 함수 SUBSTR(문자열, start, length) 문자열 자르기 시작 인덱스는 1, 마지막 인덱스는 -1 TRIM(문자열), LTRIN, RTRIM 문자열 공백 제거 LENGTH(문자열) 문자열 길이 SELECT LENGTH(first_name), firtst_name FROM users LIMIT 5; ↳ 문자열 길이를 반환한다. REPLACE(문자열, 패턴, 변경값) 패턴에 일치하는 부분을 변경한다. SELECT firtst_name REPLACE(phone, '-', '') FROM users LIMIT 5; ↳ 전화번호의 '-'를 모두 없도록 한다. UPPER(문자열), LOWER 대소문자 변경 || 문자열 합치기 (concatenation) SELECT last_na..

SQL 2022.08.18

[이론] Database, SQL

Database 데이터베이스는 체계화된 데이터의 모임이다. 여러 사람이 공유 및 관리하는 정보의 집합이다. 자료의 모음으로 검색과 갱신의 효휼화를 위해 고도로 구조화한 것이다. 자료 항목의 중복을 없애고 구조화하여 저장해놓은 자료의 집합체이다. 장점 중복 최소화 무결성 (정확한 정보를 보장) 일관성 독립성 (물리적/논리적) 표준화 보안유지 관계형 데이터베이스 RDB; Relation Database 서로 관련된 데이터를 저장하고 접근할 수 있는 데이터베이스 유형이다. 키와 값들의 간단한 관계를 표 형태로 정리한 데이터베이스이다. 스키마 Schema 데이터베이스에서 자료의 구조, 표현방법, 관계의 명세를 기술한 것이다. 아래의 이미지와 같이 id, name 등 해당 key의 이름과 데이터 타입을 정하여 명..

SQL 2022.08.16