TIL 21.06.17

Jaemin Jung·2021년 6월 17일
0

Today I Learned

목록 보기
41/62
post-thumbnail

오늘한일

오늘은 데이터베이스를 다룰 수 있는 도구인 SQL 문법을 배웠다.
SQL 문법은 영어 그 자체의 문법과 비슷해서 쉬워보였으나,
여러가지 특성 메소드를 조합할때 길을 자주 잃게되었다.
다행히 페어분께서 잘하시기로 소문나신분이라 내가 길을 잃을때마다
멱살잡고 끌고와주셔서 잘 따라갈 수 있었지만,
앞으로가 또 걱정이다.

Achievement goals

  • 3 Tier Architecture 를 이해한다.
  • 영속성의 개념을 이해하고, 데이터베이스의 필요성을 인지한다.
  • 데이터베이스 종류를 이해한다.
  • 관계형 데이터베이스와 NoSQL의 차이를 이해한다.
  • 관계형 데이터베이스 및 NoSQL이 어떤 경우에 적합한지 이해한다.

Learn SQL

  • SQL 주요 문법을 이해할 수 있다.
  • 조회시 다양한 조건을 걸어 원하는 정보만 조회할 수 있다.

3 Tier Architecture

2 Tier Archiectuer에서 데이터베이스가 추가된
클라이언트 -> 서버 -> 데이터베이스의 형태로
클라이언트에서 데이터를 요청하고 요청은 서버를 거쳐 데이터 베이스에서 해당 데이터를 가져온다.
여기서 데이터베이스는 리소스를 저장 하는 공간으로,
In-memory의 File I/O의 한계를 보완하기 위해 만들어졌다.
(끄면 데이터가 사라지거나, 모든 데이터를 받아와야해서 필터링이 필요)
데이터 베이스의 데이터는 엑셀과 비슷하게 행과 열을 가지고 있으며,
행과 열을 가진 엑셀에서 시트와 비슷한 테이블의 개념이 있다.

SQL

Structured Query Language의 약자로 직역하면 구조화된 Query 언어 라고 한다.
SQL은 데이터베이스용 프로그래밍 언어이며, 데이터베이스에 구조화된 Query를 보내
원하는 데이터만을 뽑아올 수 있다.
여기서 Query는 저장되어 있는 데이터를 필터링 하기위한 질문(조건)이라고 보면 된다.

사용조건

SQL은 데이터가 구조화된 테이블을 사용하는 데이터베이스에서 활용 가능하다.
테이블을 사용하지않고 다른형태로 데이터가 고정되어 있지 않은 데이터베이스를 NoSQL이라고 한다.

명령어

  • 데이터 베이스 & 테이블 세팅
CREATE DATABASE 데이터베이스_이름; //데이터베이스 생성
...
USE 데이터베이스_이름; //데이터베이스 사용
...
CREATE TABLE user ( //테이블 생성
  id int PRIMARY KEY AUTO_INCREMENT,
  name varchar(255),
  email varchar(255)
);
  • Query 명령어
    아주 기본적으로 SELECT, FROM, WHERE에 대해서만 다루겠다.
    앞서 SQL은 인간의 언어인 영어와 매우 흡사해서 이해하기에는 쉽다.

SELECT는 단어의 뜻처럼 선택한다는 뜻이고 특정한 특성들을 지정한다.
FROM은 테이블과 관련이 있으며 결과를 도출해낼 데이터베이스 테이블을 명시한다.
WHERE 선택적으로 사용하며, 필터 역할을 하는 Query문이다.

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_1 = "특정 값"

각각 고유ID, 이름, 이메일, 나이를 가진 행과 열이 있는 students라는 테이블에서
나이가 21살을 넘는 학생들의 이메일만 가져와보자

예제 출처 : https://www.youtube.com/watch?v=z9chRlD1tec
SELECT email // email열을 지정
FROM students // student 테이블에서
WHERE age > 21 // age열에서 값이 21보다 높은것

이외에도 열 삽입, 삭제, 통계등 다양한 Query문이 있다.
w3schools에서 좀더 다양한 Query문을 알 수 있다.

SQL vs NoSQL은 좀더 이해하고 주말에..

참고사이트

https://www.youtube.com/watch?v=z9chRlD1tec
https://medium.com/jongah-tech-blog/til-e320e60bb32b
https://velog.io/@hyeseong-dev/MySQLMySQL-%EC%82%AD%EC%A0%9Cfeat.-ubuntu

profile
내가 보려고 쓰는 블로그

0개의 댓글