오늘은 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online” 의 파트 2의 데이터베이스 소개, SQL DDL을 듣고 정리해보았다. 참고로 이 포스팅은 공부용으로 강의 내용을 요약한 것으로 자세한 강의 내용은 위 링크를 참조 할 것.



아래는 공부 인증 사진.


2022-06-15-Python-Photo1

2022-06-15-Python-Photo2



01. 데이터베이스 소개

1. 데이터베이스 개념

  • 데이터베이스(database): 구조화 된 데이터의 집합(예: 엑셀)
    • 데이터베이스의 기능
      • 데이터 삽입
      • 데이터 조회
      • 데이터 수정
      • 데이터 삭제



2. 데이터베이스의 구성요소

  • 데이터베이스(database): 테이블(table)의 집합
  • 테이블(table): 행(row)의 집합
  • 행(row): 한 단위의 데이터 기록(record)
  • 열(column): 데이터의 항목(field)



3. DBMS(Database Management System)

  • 데이터를 관리해주는 시스템

  • 대표 예: MySQL, Oracle, SQLite(따로 설치 필요 없고 파이썬에 내장되어있기 때문에 이 DBMS로 실습 예정)

  • 클라이언트 ⇒ 서버 (SQL 문 전송)

  • 클라이언트 < 서버 (데이터 응답)



4. SQL이란?

  • SQL = Structured Query Language
  • 데이터베이스를 관리하기 위해 사용되는 언어



5. SQL의 종류

  • DDL(Data Definition Language): CREATE, ALTER, DROP 등
  • DML(Data Manipulation Language): SELECT, INSERT, DELETE 등



02. SQL DDL(Data Definition Language)

1. SQL CREATE

  • SQLite 데이터 타입
데이터 타입 설명
integer 정수
real 실수
text 문자열
null null 값(데이터 없음)
  • 테이블 생성 명령(쿼리: query)
CREATE TABLE 테이블명 (컬럼명1 데이터타입, 컬럼명2 데이터타입);

  • 게시판 테이블을 생성
CREATE TABLE post (id integer, title text, content text);

  • 제약조건 1: primary key

    • 기본 키라고도 표현
    CREATE TABLE 테이블명 (컬럼명1 데이터타입 primary key, 컬럼명2 데이터타입);
    CREATE TABLE post (id integer primary key, title text, content text);
    • 레코드를 구분짓는 값 ⇒ 유일

  • 제약조건 2: not null

    CREATE TABLE 테이블명 (컬럼명1 데이터타입 not null, 컬럼명2 데이터타입);
    CREATE TABLE post (id integer primary key, 
                       title text not null,
                       content text);

  • 제약조건 3: default

    CREATE TABLE 테이블명 (컬럼명1 데이터타입 default '제목없음', 컬럼명2 데이터타입);
    CREATE TABLE post (id integer primary key, 
                       title text not null default '제목없음',
                       content text not null default '내용없음');

  • 제약조건 4: unique
CREATE TABLE 테이블명 (컬럼명1 데이터타입 unique, 컬럼명2 데이터타입);
CREATE TABLE user (id integer primary key autoincrement,
                   nickname text unique



2. SQL CREATE 실습

  • 구글에 DB Browser for SQLite 을 검색해 다운로드 받은 뒤 실행했다.
  • New Database 버튼 클릭 > python_advanced > myvenv > > Chapter 5 생성 > SQL_DDL 파일 생성
  • Execute SQL(SQL 실행) 탭 > 아래 쿼리문을 작성
CREATE TABLE post(id INTEGER, title TEXT, content TEXT);

  • 실행 결과
Execution finished without errors.
Result: query executed successfully. Took 2ms
At line 1:
CREATE TABLE post(id INTEGER, title TEXT, content TEXT);
  • Database Structure(데이터베이스 구조) 탭에 들어가보면 Create로 생성한 내용을 확인할 수 있다.

  • 생성한 테이블을 삭제해보자
DROP TABLE post;

  • 실행 결과
Execution finished without errors.
Result: query executed successfully. Took 0ms
At line 1:
DROP TABLE post;

  • 제약 조건을 넣어보자.
CREATE TABLE post(id INTEGER PRIMARY KEY, 
title TEXT NOT NULL DEFAULT '제목없음',
content TEXT DEFAULT '내용없음');

  • 실행결과
Execution finished without errors.
Result: query executed successfully. Took 1ms
At line 1:
CREATE TABLE post(id INTEGER PRIMARY KEY, 
title TEXT NOT NULL DEFAULT '제목없음',
content TEXT DEFAULT '내용없음');

  • unique도 설정해보자.
CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT,
nickname TEXT UNIQUE);

  • 실행결과
Execution finished without errors.
Result: query executed successfully. Took 1ms
At line 1:
CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT,
nickname TEXT UNIQUE);

  • ALTER 명령어도 실습해보자.
ALTER TABLE post RENAME to board;
  • post 테이블 명을 board로 변경

  • ALTER 명령어로 column명도 변경해보자
ALTER TABLE post add COLUMN post_date;

  • 현재 post 테이블이 존재하지 않기 때문에 에러가 발생한다.
Execution finished with errors.
Result: no such table: post
At line 1:
ALTER TABLE post add

  • board로 바꾸어 다시 실행해보자.
ALTER TABLE board add COLUMN post_date TEXT;

  • 실행결과
Execution finished without errors.
Result: query executed successfully. Took 3ms
At line 1:
ALTER TABLE board add COLUMN post_date TEXT;

  • RENAME으로 컬럼명을 변경해보자
ALTER TABLE board RENAME COLUMN post_date TO reg_date;

  • 실행결과
Execution finished without errors.
Result: query executed successfully. Took 2ms
At line 1:
ALTER TABLE board RENAME COLUMN post_date TO reg_date;
  • UI로도 테이블을 생성할 수 있다. Table명 = user, Fields 탭의 Add 버튼을 눌러 id라는 필드를 추가한다(Type=INTEGER, PK = true, AI = true).



이번 포스팅에서는 강의의 파트 2의 데이터베이스 소개, SQL DDL을 알아보았다. 다음 포스팅에서는 SQL DML에 대해 알아보도록 하자.


본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.



#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #캐시백챌린지 #캐시백 #환급챌린지 #한번에끝내는파이썬웹개발초격차패키지Online