안녕하세요 펭귄 교수입니다.
이번 시간에는 데이터베이스와 파이썬 편입니다.
코딩 강의에 들어가기에 앞서 이번 강의를 통해 데이터베이스(Database)에 관해서 기본 개념을 잡고 가고자 합니다.
최대한 비전공자 수준으로 이야기하고자 해서 쉽게 풀어서 설명드리겠습니다.
자세한 정규화, 스키마 등의 개념은 CS 개념을 이야기 할 때 하도록 하고,
이번 강의에서는 이후 파이썬 코딩을 할 때 알면 좋은 정도로만 구성하였습니다.
1. 데이터베이스
간단하게 말하자면, 여러 사람들이 사용할 수 있게 데이터들을 모아놓은 데이터들의 집합입니다.
성적 데이터베이스
이름 | 국어 | 수학 | 영어 |
김철수 | 80 | 90 | 80 |
이영희 | 70 | 100 | 90 |
박정우 | 50 | 100 | 100 |
위와 같은 성적 테이블도 하나의 데이터베이스입니다.
1-1. 데이터베이스 종류
데이터베이스의 종류는 다음으로 분류가 가능합니다.
- 관계형
- Key-Value 형
- 객체형
- 문서형
- 컬럼 패밀리형
- 벡터형
주류라고 뽑히는 데이터베이스는 관계형 데이터베이스 이며,
흔히 SQL (Structed Query Language) 라고 불리는 데이터베이스 형식입니다.
그와 반대로 요즘 사용량이 늘고 있는 데이터베이스는 문서형, NoSQL이라고 불리는 형식입니다.
대표적으로 MongoDB가 있습니다.
MongoDB, MySQL, SQLite, Oracle SQL 등 많은 데이터베이스 용어를 들어보신 적이 있으실 겁니다.
그러나 이것은 데이터베이스가 아닌, 데이터베이스를 관리해주는 시스템으로, DBMS라 불리는 것들입니다.
2. DBMS (DataBase Management System)
데이터베이스를 관리해주는 시스템, 프로그램입니다.
MySQL, MongoDB, SQLite 등이 DBMS의 속해있는 프로그램들입니다.
현재 Oracle DBMS의 사용량이 1위이며, 그 다음으로 MySQL, Microsoft SQL Server 가 뒤를 잇고 있습니다.
저희는 이 중에서 MySQL, MongoDB를 사용해서 파이썬과 연동을 할 예정입니다.
그러기 위해서 기본적인 SQL문에 대해 알아보고자 합니다.
MongoDB는 파이썬 내장 함수로 진행할 예정이기에 따로 문법을 알아보진 않겠습니다.
3. SQL 문법
SQL 문법은 세 가지로 나뉩니다.
DDL (Data Definition Language) | CREATE(생성), ALTER(변경), DROP(삭제) |
DML (Data Manipulation Language) | SELECT(검색), INSERT(삽입), DELETE(삭제), UPDATE(변경) |
DCL (Data Control Language) | COMMIT(커밋), ROLLBACK(롤백), GRANT(권한 부여), REVOKE(권한 취소) |
여기서 DROP과 DELETE, ALTER와 UPDATE의 차이는 테이블이나 컬럼이냐의 대한 차이가 있습니다
DROP과 ALTER는 테이블을 삭제, 변경을 하고, DELETE와 UPDATE는 컬럼 (데이터)를 삭제, 변경합니다.
해당 문법에 관한 자세한 설명은 추후 데이터베이스 관련 CS 포스팅에서 진행하도록 하고,
최대한 파이썬 코드에 응용 가능한 방향으로 소개드리도록 하겠습니다.
3-1. SELECT
SQL 문법에서 가장 많이 사용되는 문법입니다.
기본적인 문법은 다음과 같습니다.
SELECT * FROM MYTABLE;
/* 테이블로 부터 모든 데이터를 가져옵니다. */
만약 여기서 조건을 주고 싶으면 WHERE 문법을 사용하면 됩니다.
위 성적 테이블에서 국어 점수가 70점 이상인 학생들의 이름들을 가져오려고 할 때 다음과 같이 작성할 수 있습니다.
SELECT 이름 FROM 성적 WHERE 국어>=70;
BETWEEN을 사용하여 특정 점수 이상, 이하로도 가져올 수 있습니다.
SELECT 이름 FROM 성적 WHERE 국어 BETWEEN 70 AND 90;
3-2. INSERT
INSERT 문은 데이터를 삽입합니다.
문법은 다음과 같습니다.
INSERT INTO 성적 (이름, 국어, 수학, 영어) VALUE ("최진수", 80, 90, 70);
여기서 이름은 문자열이기 때문에 쌍따옴표 "" 로 감싸주어야 하고, 점수들은 정수형이기 때문에 감싸주지 않아도 됩니다.
3-3. DELETE
DELETE 문은 데이터를 삭제합니다.
문법은 다음과 같습니다.
DELETE FROM 성적 WHERE 이름="최진수";
3-4. UPDATE
UPDATE 문은 데이터를 변경합니다.
문법은 다음과 같습니다.
UPDATE 성적 SET 국어=80 WHERE 이름="이영희";
3-5. 자료형
SQL 문에도 자료형이 존재합니다.
해당 자료형은 테이블을 만들 때 선언하게 됩니다.
CREATE문을 같이 소개하면서 자료형에 대해 이야기해보겠습니다.
CREATE TABLE posts
( post_id NUMBER NOT NULL,
post_title VARCHAR2(20) NOT NULL,
post_content VARCHAR2(200) NULL,
made_date DATE NULL,
update_date DATE NULL,
PRIMARY KEY (post_id) );
이 CREATE 는 포스팅을 저장하는 posts 테이블 입니다.
NUMBER는 정수형, VARCHAR2는 문자열, DATE는 날짜형입니다.
문자열은 최대 문자열의 길이를 정해두어야 합니다.
PRIMARY KEY를 설정해서 중복을 막을 수 있습니다.
NULL, NOT NULL 설정을 해서 해당 열이 공백이 가능한 지, 불가능한 지를 설정 할 수 있습니다.
아래 글을 통해 더 많은 자료형을 보실 수 있습니다.
마무리
이렇게 간단하게 데이터베이스에 대한 개념, DBMS, SQL 문법에 관해 겉핡기 식으로 맛보았습니다.
다음 시간에는 MySQL을 설치하고 파이썬에서 이용해보는 시간을 갖도록 하겠습니다.
다른 글 더보기
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬 코딩 강의] 웹과 파이썬 (Selenium 편) (1) | 2024.10.07 |
---|---|
[파이썬 코딩 강의] 웹과 파이썬 (Beautiful Soup 편) (1) | 2024.10.03 |
[파이썬 코딩 강의] 웹과 파이썬 (requests 편) (0) | 2024.09.28 |
[파이썬 코딩 강의] 객체 지향 언어 (1) | 2024.09.26 |
[파이썬 코딩 강의] 클래스와 메서드 (0) | 2024.09.21 |