⚡️ API 개발 with Flask - 7

codeamor·2020년 7월 7일
0

API Development

목록 보기
7/9

✔️ SQL

: SQL(Structured Query Language)은 MySQL 같은 관계형 데이터베이스에서 데이터를 읽거나 생성 및 수정하기 위해 사용하는 언어이다.

  • CRUD라고 하여, 데이터를 Create(생성), Read(읽기), Update(수정), Delete(삭제)하는 기능을 제공하는 관계형 데이터 베이스 시스템 전용 언어이다.
    • 즉, 관계형 데이터베이스 시스템에서 데이터를 읽어 들이거나 새로운 데이터를 생성하거나 할 때 SQL을 사용하여 처리하게 된다.

니콜라스 曰: CRUD 만 제대로 알고 있어도 취업 가능하다.

SQL에는 여러 구문이 있으나 기본적으로 SELECT, INSERT, UPDATE, DELETE, 그리고 JOIN은 필수적으로 이해해야 한다.


SELECT

: 관계형 데이터베이스 시스템에서 데이터를 읽어 들일 때 사용하는 SQL 구문이다.

아래는 SELECT 구문의 기본적인 문법이다.

SELECT
    column1,
    column2,
    column3,
    column4,
FROM tabe_name

users라는 테이블에서 id, name, age, gender 라는 칼럼 값을 읽고 싶다면 다음과 같이 SELECT 구문을 사용하면 된다.

SELECT
    id,
    name,
    age,
    gender,
FROM users

SELECT 구문은 WHERE 구문과 같이 사용하여 검색이나 필터의 기능 또한 구현할 수 있다.
users라는 테이블에서 이름이 Paul 인 사용자의 id, name, age, gender라는 칼럼 값을 읽고 싶다면 아래와 같이 구현한다.

SELECT
    id,
    name,
    age,
    gender
FROM users
WHERE name = "Paul"

INSERT

: 관계형 데이터베이스 시스템에서 데이터를 생성할 때 사용한다.

기본적인 문법은 다음과 같다.

INSERT INTO table_name (
    column1,
    column2,
    column3
) VALUES (
    column1_value,
    column2_value,
    column3_value
)

만일 users 테이블에서 아래의 값을 생성해야 한다고 가정해 보자.

{
    "id"     : 1,
    "name"   : "Paul",
    "age"    : 35,
    "gender" : "남자",

위의 데이터를 users 테이블에 생성하기 위해서는 다음과 같은 INSERT 구문을 사용할 수 있다.

INSERT INTO users (
    id,
    name,
    age,
    gender
) VALUES (
    1,
    "Paul",
    35,
    "남자"
)

만일 하나 이상의 데이터를 생성하고 싶다면 다음과 같이 INSERT 구문을 사용하면 된다.

INSERT INTO users (
    id,
    name,
    age,
    gender
) VALUES (
    1,
    "Paul",
    35,
    "남자"
), (
    2,
    "David"
    28,
    "남자"
), (
    3,
    "Jacob",
    33,
    "남자"
)

UPDATE

: 관계형 데이터베이스 시스템에서 데이터를 수정할 때 사용한다.

기본 문법은 다음과 같다.

UPDATE table_name SET column1 = value1 WHERE column2 = value2

앞서 봤듯이 UPDATE 구문은 주로 WHERE 구문과 같이 사용된다.

  • WHERE 구문을 같이 사용하지 않으면 해당 테이블의 모든 로우 값이 수정된다.
  • 모든 로우 값을 수정하고 싶다면 WHERE 구문 없이 사용하면 된다.

만약 users 테이블에 이름이 "David" 인 사용자의 나이를 25세로 수정해야 한다면
다음과 같이 UPDATE 구문을 사용하면 된다.

UPDATE users SET age = 25 WHERE name = "David"


DELETE

: 관계형 데이터베이스 시스템에서 데이터를 삭제할 때 사용한다.

기본 문법은 다음과 같다.

DELETE FROM table_name WHERE column = value

UPDATE 구문과 마찬가지로 DELETE 구문도 주로 WHERE 구문과 같이 사용된다.
테이블에서 모든 로우를 지워야 하는 경우는 자주 있지 않으므로 DELETE 구문은 대부분 WHERE 구문과 같이 사용된다.

users 테이블에서 나이가 20세 이하인 사용자들을 삭제해야 한다고 하면 다음과 같이 사용할 수 있다.

DELETE FROM users WHERE age < 20


JOIN

: 관계형 데이터베이스 시스템에서 데이터를 연결할 때 사용한다.

  • 관계형 데이터베이스에서는 원하는 정보를 전부 얻기 위해서 하나 이상의 테이블에서 값을 읽어 들여야 할 필요가 자주 있는데, 그럴 때 JOIN 구문을 사용해서 테이블들을 연결하여 값들을 읽어 들인다.

JOIN 구문의 기본적인 문법은 다음과 같다.

SELECT
    table1.column1,
    table2.column2
FROM table1
JOIN table2 ON table1.id = table2.table1.id

사용자의 이름을 users 테이블에서 읽어 들이고, 해당 사용자의 주소를 users_address라는 테이블에서 읽어 들인다면 다음과 같이 사용할 수 있다.

SELECT
    users.name,
    user_address.address
FROM users
JOIN user_address ON users.id = user_address.user_id

0개의 댓글