인트로
강의 커리큘럼

강의 개요
- RDBMS (relational database management system)
- 데이터베이스
- 한곳에 저장된 정보들을 원하는 어떤 곳에서든 사용할 수 있는 것
- 특정 소프트웨어나 프로그램에 종속되지 않고 독립된 정보의 집합 or 저장소
- DBMS: DB + 정보를 집어넣고 원하는걸 찾아 꺼내는 등의 기능을 넣은 것
- SQL: 데이터베이스는 사용자가 정보들을 입력하고 조회하고 수정, 삭제하는 등 데이터를 관리할 수 있도록 제공하는 방식 중 mysql을 비롯한 다수의 데이터 베이스들이 사용하는 방식
- mongoDB: 정보들을 각각 파일, 문서로 저장하는 방식을 사용한다.
- 장점: 데이터의 입력도 자유롭고 읽는 속도도 빠르다.
- 단점: 이 데이터들을 소프트웨어들이 안정적으로 사용하려면 각 정보들마다 일정한 형태를 가져야 하는데 mongodb와 같이 제약이 없는 방식은 메뉴마다 어떤 항목이 빠져있거나 각 파일마다 컬럼명이 다른 문제 등 데이터 형식이 다를 수 있다.
MySQL
- 표, 테이블형식이다.
- 정보가 어떻게 입력될 수 있는지를 한정할 수 있다.
- 정보마다 정해진 양식이 있어서 여러 사람들이 데이터베이스를 공유해도 데이터 형태가 달라서 생기는 문제를 방지할 수 있다.
SQL
- 프로그래밍 언어라고 부르기엔 용도가 한정돼 있어서 애매하다.
- C나 자바, 파이썬처럼 다양한 활요이 가능한 '범용 프로그래밍 언어'보다는 HTML처럼 특정 사용처에서 쓰이는 '도메인 특화 언어'에 가깝다.
RDBMS
- 관계형 데이터베이스
- SQL DB
- join 기능을 제공한다.
- mysql, oracle, ms sql, postgresql 등이 있다.
- mysql: 작은 규모 or 개인 용도
- oracle: 규모가 큰 기업
- sql을 사용하여 데이터를 관리한다.
NRDBMS
- 비 관계형 데이터베이스
- NoSQL DB
- mongodb, cassandra, dinamodb, riak, redis 등
1. 테이블의 모든 내용 보기
SELECT * FROM Customers;
-- 이와 같이 주석을 달 수 있습니다.

2. 원하는 column(열)만 골라서 보기
SELECT CustomerName FROM Customers;

SELECT CustomerName, ContactName, Country
FROM Customers;

💡 테이블의 컬럼이 아닌 값도 선택할 수 있다.
SELECT
CustomerName, 1, 'Hello', NULL
FROM Customers;

3. 원하는 조건의 row(행)만 걸러서 보기
WHERE 구문 뒤에 조건을 붙여 원하는 데이터만 가져올 수 있다.
SELECT * FROM Orders
WHERE EmployeeID = 3;

SELECT * FROM OrderDetails
WHERE Quantity < 5;

4. 원하는 순서로 데이터 가져오기
ORDER BY 구문을 사용해서 특정 컬럼을 기준으로 데이터를 정렬할 수 있다.
- ASC: 오름차순 (기본)
- DESC: 내림차순
SELECT * FROM Customers
ORDER BY ContactName;

SELECT * FROM OrderDetails
ORDER BY ProductID ASC, Quantity DESC;

5. 원하는 만큼만 데이터 가져오기
LIMIT {가져올 갯수} 또는 LIMIT {건너뛸 갯수}, {가져올 갯수} 를 사용하여, 원하는 위치에서 원하는 만큼만 데이터를 가져올 수 있다.
SELECT * FROM Customers
LIMIT 10;

SELECT * FROM Customers
LIMIT 0, 10;

SELECT * FROM Customers
LIMIT 30, 10;

6. 원하는 별명(alias)으로 데이터 가져오기
AS를 사용해서 컬럼명을 변경할 수 있다.
SELECT
CustomerId AS ID,
CustomerName AS NAME,
Address AS ADDR
FROM Customers;

SELECT
CustomerId AS '아이디',
CustomerName AS '고객명',
Address AS '주소'
FROM Customers;

🎯 모두 활용해보기
SELECT
CustomerID AS '아이디',
CustomerName AS '고객명',
City AS '도시',
Country AS '국가'
FROM Customers
WHERE
City = 'London' OR Country = 'Mexico'
ORDER BY CustomerName
LIMIT 0, 5;

[강의링크] https://youtu.be/dgpBXNa9vJc
[교재링크] https://www.yalco.kr/lectures/sql