-
Relational DatabasesComputer Science/Basic Programming with Python 2021. 12. 7. 21:37
SQL
Relational Databases은 데이터를 row, column형태의 tables에 저장하는 형태이다. 여러개의 테이블이 있고, 그 테이블간 연결성이 존재할 때, 강점을 나타낸다. 그 테이블에서 데이타를 이용할 수 있게끔 만들어진 언어들중, 가장 많이 쓰는것이 바로 SQL이다. SQL은, Structured Query Language,로 테이블 또는 데이터를 만들고(Create), data를 꺼내어 쓰고(Retrieve), 데이터를 변형하고(Update) 데이터를 지울 수(Delete) 있도록 해준다. 이것을 CRUD라고 한다.
Roles
보통 큰 프로젝트를 보면 역활이 2개 이상으로 나누어진다. 프로젝트가 커져서 데이터 분석의 니즈가 커지면, Data 전문가가 필요해지지만 프로젝트 생성에는 아래 두 역할이 반드시 필요하다. (Developer또한 Front와 Backend로 나누어질수 있다) 보통은 두 역할의 사람 모두 Data Model을 만드는데 참여한다.
- Application Developer - 어플리케이션의 logic을 만들고 어플리케이션의 생김새와 느낌을 담당한다. 어플리케이션에서 생성되는 문제도 모니터링한다.
- Database Administrator - database를 모니터링하고 알맞게 설정해서 프로덕션에서 프로그램이 돌아갈 수 있도록 한다.
Database Model
Database model 또는 database schema는 데이터베이스의 structure 또는 format이라고 볼 수 있다.
위 예시를 보면, 어떤 어플리케이션을 만들기 위해, database의 스키마를 생성했다. 이는 이 프로젝트의 model이다.
Example
SQL을 간략하게 이용해보자. 아래와 같은 쿼리를 이용해서 간단한 User 테이블을 생성할 수 있다.
CREATE TABLE Users( name VARCHAR(128), email VARCHAR(128) )
이후, 아래와 같은 쿼리를 이용해서 데이터를 테이블에 넣을 수 있다.
INSERT INTO Users (name, email) VALUES ('g47', 'g47@gmail.com')
또한 방금 넣었던 데이터를 삭제할 수 있다.
DELETE FROM Users WHERE email = 'g47@gmail.com'
어떤 데이터가 들어있는지 아래와 같은 쿼리로 알아낼수도 있다.
SELECT * FROM Users
Users 테이블에 있는 모든 Columns과 Rows를 모두 반환하는 쿼리이다. 만약 특정 유저만 보고싶다면,
SELECT * FROM Users WHERE email = 'pikachu@gmail.com'
위와같이 WHERE을 이용해서 필터링 할 수 있다.
ORDER BY를 이용해서 정렬을 할수도 있고, 다른 다양한 함수를 이용해서 원하는 형태로 추출할수도 있다.
더 많은 자료는 W3School (또는 다른 SQL리소스)을 참고하면 좋다.
'Computer Science > Basic Programming with Python' 카테고리의 다른 글
Object Oriented (0) 2021.12.07 Python Library (0) 2021.11.20 Python Useful Functions (0) 2021.11.20 Lambda (0) 2021.11.20 Nested Function (0) 2021.11.19