1. 데이터 베이스 : 여러 테이블을 포함하는 큰 틀
2. 테이블 : 데이터가 행/열로 구성된 구조
- 행 : 데이터 레코드
- 열 : 데이터 속성
customers 라는 테이블.
그 안에 'customer_id', 'name', 'email', 'gender' 라는 데이터 속성을 볼 수 있다.
1. SELECT
데이터를 받아오는 기본 명령어. 데이터를 조회하는 모든 Query 에 사용한다.
2. FROM
데이터를 받아올 테이블을 특정한다.
SELECT * FROM customers;
3. CREATE DATABASE
데이터 베이스을 생성한다.
CREATE DATABASE myDataBase;
4. CREATE TABLE
데이터베이스 안에 들어갈 테이블을 생성한다.
CREATE TABLE (
id INT,
name VARCHAR(50), // VARCHAR(50) : 최대 50자까지 저장 가능한 문자열 타입
//C에서의 char/string 과 유사하게 생각할 수 있을 것 같다.
age INT
);
이 때, id, name age 와 같은 데이터들을 '컬럼(Column)' 이라고 부른다.
테이블을 생성하고, 이 테이블을 데이터 베이스 안에 어떻게 포함시키나? 하는 의문이 있었다.
개념적으로, 테이블은 데이터 베이스 안에 만들어지고 그 만들어진 모든 것을 '데이터 테이블' 라고 부르는 것.
컴파일 프로그램에서 자체적으로 설정하거나, 혹은 키워드를 통해 사용할 데이터 베이스를 먼저 선정하고, 그 안에서 테이블을 만드는 방식이다.
키워드의 경우,
CREATE DATABASE myDataBase;
USE myDataBase;
CREATE TABLE myTable (
id INT,
age INT,
...
);
의 과정으로 사용할 수 있다.
SELECT name, age FROM myTable;
myTable 테이블 안에서 name, age 열을 조회한다.
여기서 조건/정렬 등 옵션을 더 추가할 수 있다.
1. WHERE
SELECT name FROM myTable WHERE age > 20;
myTable 테이블에서 age > 20 인 경우만 해당 name 을 출력한다.
2. ORDER BY
SELECT name FROM myTable ORDER BY age DESC;
myTable 테이블에서 name 데이터를 age 의 내림차순 (DESC) 으로 정렬한다
- 반대의 경우인 오름차순은 'ASC' 로 사용한다.
3. LIMIT
SELECT name FROM myTable LIMIT 5;
myTable 테이블에서 name 데이터를 5개만 제한하여 출력한다.
이때 출력되는 데이터는 낮은 행부터 출력된다.
INSERT INTO myTable (id, name, age) VALUES (1, "Alice", 23);
myTable 테이블에 값이 (1, "Alice", 23) 인 데이터를 추가한다.
컬럼 순서는 myTable 의 데이터 속성 순서에 맞게 추가해야 하며 키워드는 INSERT INTO ~ VALUES 를 사용한다.
추가되는 데이터는 가장 마지막 행에 추가된다.
UPDATE myTable SET age = 25 WHERE id = 1;
myTable 테이블에서 id 가 1 인 데이터를 탐색, 해당 데이터의 age 값을 25 로 변경한다.
키워드는 UPDATE 를 사용한다.
DELETE FROM myTable WHERE id = 1;
myTable 테이블에서 id 가 1인 데이터를 삭제한다.
키워드는 DELETE 를 사용한다.
여러 행의 값을 계산하여 하나의 결과를 반환하는 함수
1. COUNT
SELECT COUNT(*) FROM students;
행(테이블에 입력된 데이터 레코드의 갯수)의 갯수를 출력.
2. SUM
SELECT SUM(age) FROM students;
students 테이블에서 SUM 의 매개변수 (age) 의 총 합 값을 출력
3. AVG
SELECT AVG(age) FROM students;
students 테이블에서 AVG 의 매개변수 (age) 의 평균 값을 출력
4. MAX / MIN
SELECT MAX(age) FROM students;
SELECT MIN(age) FROM students;
students 테이블에서 매개변수 (age) 의 최대 값/최소 값을 출력
// name 이 Alice 이면서 age 가 20 초과인 경우만 출력
SELECT * FROM students WHERE age > 20 AND name = 'Alice';
// name 이 Bob 이거나 age 가 20 초과인 경우 모두 출력
// 이 코드에 AND 경우에 해당돼도 출력된다.
SELECT * FROM students WHERE age > 20 OR name = 'Bob';
// age 가 20 초과이지 않은 경우만 출력
SELECT * FROM students WHERE NOT age > 20;
// 같지 않다 ( != ) 의 개념
// gender 가 male 이 아닌 경우 출력
SELECT * FROM customers WHERE gender <> 'male';
// ~와 ~ 사이의 개념
// age 가 21 과 23 의 사이인 경우 출력
SELECT * FROM customers WHERE age BETWEEN 21 AND 23;
// 특정 경우만 출력
// age 가 21, 25, 27 인 경우만 출력
SELECT * FROM customers WHERE age IN (21, 25, 27);
// name 이 김 으로 시작하는 경우만 출력
SELECT * FROM students WHERE name Like '김%'
// %을 어떻게 쓰냐에 따라 출력 대상을 바꿀 수 있다
SELECT * FROM students WHERE name Like '%김%' : name 에 김 이 도중에 들어가는 경우만 출력
SELECT * FROM students WHERE name Like '%김' : name 에 김 이 마지막으로 끝나는 경우만 출력
// food_orders 테이블에서 restaurant 속성의 이름을 "음식점" 으로 바꿔서 출력
// 별명 의 개념으로 이해할 수 있다
SELECT restaurant AS "음식점" FROM food_orders
// AS 를 제외하고도 사용 가능하다
SELECT restaurant "음식점" FROM food_orders
// "" 를 제외하고도 사용 가능하지만, 이는 영어 철자로만 이루어진 경우에 가능하다
SELECT restaurant 음식점 FROM food_orders // X
SELECT restaurant food-coner FROM food_orders // X
SELECT restaurant foodConer FROM food_orders // O
#6. 문자 데이터 가공 실습 (2) | 2024.10.18 |
---|---|
#5. 문자 데이터 가공 - 형태 변화 (1) | 2024.10.18 |
#4. 문제 풀이 - 주문 금액 조회 (0) | 2024.10.18 |
#3. 그룹 연산, 정렬, 구조 정리 (0) | 2024.10.11 |
#2. 에러(Error)에 대응하는 자세, 문제 풀이 (0) | 2024.10.11 |