no image
[DB] M:N (ManyToManyField)
목차 정의 arguments methods 1. ManyToManyField ManyToManyField(to, **options) 다대다 (M:N, many-to-many) 관계 설정 시 사용하는 모델 필드 하나의 필수 위치 인자 (M:N 관계로 설정할 모델 클래스)가 필요 모델 필드의 RelatedManager를 사용하여 관련 개체를 추가, 제거 또는 만들 수 있음 add() remove() create() clear() etc.. 데이터베이스의 표현 Django는 다대다 관계를 나타내는 중개 테이블을 만듦 테이블 이름은 ManyToManyField 이름과 이를 포함하는 모델의 테이블 이름을 조합하여 생성됨 'db_table' arguments를 사용하여 중개 테이블의 이름을 변경할 수도 있음 2. ..
2022.10.13
no image
[DB] N:1 realationship
관계형 데이터베이스에서의 외래 키 속성을 사용해 모델 간 N:1 관계를 설정해보자. 목차 Intro RDB에서의 관계 Foreign key 1. INTRO RDB(관계형 데이터베이스) 복습 데이터를 테이블, 행, 열 등으로 나누어 구조화하는 방식 RDB의 모든 테이블에는 행에서 고유하게 식별 가능한 기본 키라는 속성이 있고, 외래 키를 사용하여 각 행에서 서로 다른 테이블 간의 관계를 만드는데 사용할 수 있음 ※ 참고 - 관계(Relationship) 테이블 간의 상호작용을 기반으로 설정되는 여러 테이블 간의 논리적인 연결 테이블 간 관계 예시 다음과 같이 어떠한 서비스의 데이터베이스에 고객 테이블과 주문 테이블이 존재 고객 테이블에는 고객에 관한 데이터가, 주문 테이블에는 주문에 관한 거래 정보가 포함..
2022.10.06
no image
[DB] DML3 - Grouping, Changing data
앞선 글들에서는 조회 및 필터링을 이용한 중복 제거, 조건 설정 등 쿼리를 제어하는 방법에 대해 알아보았다. 이번 글에서는 특정 그룹으로 묶어주는 Grouping과 데이터를 삽입, 수정, 삭제하는 법에 대해 알아보자 목차 Grouping data Insert Update Delete 1. GROUP BY clause SELECT column_1, aggregate_function(column_2) FROM table_name GROUP BY column_1, column_2; Make a set of summary rows from a set of rows 특정 그룹으로 묶인 결과를 생성 선택된 컬럼 값을 기준으로 데이터(행)들의 공통 값을 묶어서 결과로 나타냄 SELECT 문에서 선택적으로 사용 가능한..
2022.10.05
no image
[DB] DML2 - Filtering data
앞에서는 조회와 정렬에 대해서 볼 수 있었다. 이번엔 데이터를 필터링하여 중복 제거, 조건 설정 등 쿼리를 제어해보자. Clause SELECT DISTINCT WHERE LIMIT Operator LIKE IN BETWEEN 목차 SELECT DISTINCT WHERE clause LIKE Operator IN Operator BETWEEN Operator LIMIT clause 1. SELECT DISTINCT clause SELECT DISTINCT select_list FROM table_name; "Remove duplicate rows in the result" 조회 결과에서 중복된 행을 제거 DISTINCT 절은 SELECT에서 선택적으로 사용할 수 있는 절 문법 규칙 DISTINCT 절은 ..
2022.10.05
no image
[DB] DML1 - simple query, Sorting rows
DML (Data Manipulation Language)로서 데이터를 조작하는 데 사용되는 언어이다. (CRUD) 목차 사전 준비 Simple query Sorting rows 1. 사전 준비 우선 데이터 더미들을 .csv로 저장 후 해당 csv 파일 데이터를 import 해서 사용해주어야 한다. sqlite3 기본 사용법 1. 시작하기 2. 데이터베이스 파일 열기 3. 종료하기 CSV 파일을 SQLite 테이블로 가져오기 1. DML.sql 파일 생성 (새로운 파일 생성) 2. 테이블 생성하기 3. 데이터베이스 파일 열기 4. 모드(.mode)를 csv로 설정 5.. import 6. import 된 데이터 확인하기 sqlite3 tool에서도 SQL 문을 사용할 수 있지만, 편의와 명령어 기록을 위..
2022.10.05
no image
[DB] DDL2 - ALTER, DROP TABLE
데이터베이스에 새 테이블을 만들기 위한 CREATE에 대해서 알아보았다. 이번엔 수정과, 삭제를 위한 ALTER, DROP TABLE을 알아보자. 목차 ALTER TABLE DROP TABLE 1. ALTER TABLE "Modify the structure of an existing table" 기존 테이블의 구조를 수정(변경) SQLite의 ALTER TABLE 문을 사용하면 기존 테이블을 아래와 같이 변경 가능 Rename a table Rename a column ADD a new column to a table Delete a column https://www.sqlite.org/lang_altertable.html ALTER TABLE RENAME "Rename a table" 앞서 작성했던 ..
2022.10.05
no image
[DB] DDL1 - create table
SQLite3를 설치한 후 vscode에서 실습을 하며 DDL을 이해하며 알아가보자. 목차 사전 준비 CREATE TABLE SQLite Data Types Constraints 1. 사전 준비 SQLite 설치 - https://www.sqlite.org/download.html 접속하여 C 드라이브 - sqlite 폴더 생성 후 위 사진에서의 파일 2개 압축 풀기 시스템 환경 변수 -> 시스템 변수의 PATH -> 1번에서 생성한 폴더 경로 작성 winpty sqlite3를 통해 실행 가능 Vscode SQLite 확장프로그램 설치 확인 이후 데이터베이스 mydb.squlite3 파일 생성 DDL.sql 파일 생성 vscode 실행 후 DDL.sql 화면에서 마우스 우측 버튼 클릭 -> Use Dat..
2022.10.04
no image
[DB] SQL
앞에 글에서 DBMS의 데이터를 관리하기 위한 언어라고 볼 수 있었다. 간단하게만 알아보자! 목차 SQL? SQL Commands SQL Syntax 1. SQL이란 "Structured Query Language" RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 RDBMS에서 데이터베이스 스키마를 생성 및 수정할 수 있으며, 테이블에서의 자료 검색 및 관리도 할 수 있음 데이터베이스 객체에 대한 처리를 관리하거나 접근 권한을 설정하여 허가된 사용자만 RDBMS를 관리할 수 있도록 할 수 있음 많은 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있음 즉, SQL은 데이터베이스와 상호작용하는 방법 2. SQL Commands 특성에 따라 아래 세 가지 그룹으로 분류 DDL..
2022.10.04
no image
[DB] 데이터 베이스?
앞에서 Django를 배우면서 Model을 만들어주면 생기는 Data들을 볼 수 있었다. 그런 data들이 저장되는 곳이 db.sqlite3와 같이 곳이 있었는데 이걸 기반으로 데이터 베이스에 대해 알아보자. 목차 Intro 정의 및 RDB 1. Intro 지금은 데이터의 시대 세상에는 수많은 데이터들이 존재한다. 인터넷만 떠올려봐도 셀 수 없이 많은 데이터가 지금 이 순간에도 우리가 사용하는 웹 서비스나 애플리케이션 등을 통해 생성 수정 삭제 되고 있다. 과거와 달리 이러한 데이터 규모는 점점 더 빠른 속도로 증가하고 있고, 이 데이터를 다루는 기술 또한 점점 중요해지고 있다. 데이터 베이스의 등장 이러한 서비스 혹은 애플리케이션들이 데이터들을 저장하는 곳 데이터베이스 파일을 이용한 데이터 관리 우리는..
2022.10.04