목차
1. SQL 기초
* 데이터베이스란?
- 여러 테이블을 포함하는 큰 틀.
* 테이블
- 데이터가 행(row)과 열(column)로 구성된 구조.
- 각 행은 하나의 데이터 레코드를 나타내며, 각 열은 데이터의 속성을 나타냄.
- 빨간 칸이 행(row), 파란 칸이 열(column)이다.
2. SQL 기본 명령어
* 데이터베이스 생성
CREATE DATABASE 데이터베이스명;
* 테이블 생성
CREATE TABLE 테이블이름 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
);
예시)
CREATE TABLE students (
id INT,
name VARCHAR(50),
age INT
);
- id : 정수형 데이터를 저장하는 열(INT).
- name : 최대 50자까지의 문자열을 저장할 수 있는 열 (VARCHAR(50)). → 50글자까지 저장 가능함.
- age: 정수형 데이터를 저장하는 열 (INT).
* 데이터 조회(SELECT)
- 데이터를 가져오는 기본 명령어.
- 테이블에서 데이터 조회 시 SELECT 사용.
- FROM 은 데이터를 가져올 테이블을 특정해주는 문법.
SELECT 컬럼1, 컬럼2, ...
FROM 테이블이름;
예시)
-- students 테이블에서 name과 age 열의 데이터를 조회합니다.
SELECT name, age
FROM students;
-- Payments 테이블의 데이터 조회하기
SELECT *
FROM payments
- * 는 모든 컬럼을 가져온다는 의미.
* WHERE 절
- 특정 조건에 맞는 데이터만 조회.
-- students 테이블에서 age 값이 20보다 큰 학생들의 name과 age를 조회합니다.
SELECT name, age
FROM students
WHERE age > 20;
* GROUP BY절
- 주로 집계함수(SUM(), COUNT() 등) 와 같이 쓰이며 카테고리별로 계산.
SELECT 카테고리 컬럼명, SUM(계산할 컬럼)
FROM 테이블명
GROUP BY 카테코리 컬럼명
SELECT cuisine_type,
SUM(price) sum_of_price
FROM food_orders
GROUP BY cuisine_type
* ORDER BY절
- 조회한 데이터를 정렬.
-- students 테이블에서 name과 age를 조회하되, age를 기준으로 내림차순(DESC)으로 정렬합니다.
-- 즉, 나이가 많은 학생부터 순서대로 정렬됩니다.
SELECT name, age
FROM students
ORDER BY age DESC;
- ORDER BY ASC : 오름차순
(ASC 생략 가능)
- ORDER BY DESC : 내림차순
- ORDER BY 절에 두 가지 이상의 컬럼을 이용가능. 쉼표(,)를 이용.
* LIMIT절
- 조회할 데이터의 개수를 제한.
-- students 테이블에서 name과 age를 조회하되, 최대 5개의 행만 조회합니다.
SELECT name, age
FROM students
LIMIT 5;
* 데이터 삽입(INSERT)
- 테이블에 새로운 데이터를 추가할 때는 INSERT INTO 명령어 사용.
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)
예시)
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 23);
* 데이터 수정(UPDATE)
- 기존 데이터를 수정할 때는 UPDATE 명령어 사용.
UPDATE 테이블이름 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;
예시)
-- students 테이블에서 id가 1인 학생의 age 값을 24로 수정
UPDATE students SET age = 24 WHERE id = 1;
* 데이터 삭제(DELETE)
- 테이블에서 데이터를 삭제할 때는 DELETE FROM 명령어 사용.
DELETE FROM 테이블이름 WHERE 조건;
예시)
-- students 테이블에서 id가 1인 행을 삭제
DELETE FROM students WHERE id = 1
3. 기본키와 외래키
* 기본 키(Primary Key)
- 테이블에서 각 행을 고유하게 식별하는 열(또는 열의 조합)임.
* 외래 키(Foreign Key)
- 다른 테이블의 기본 키를 참조하는 열로, 테이블 간의 관계를 나타냄.
예시)
CREATE TABLE orders (
order_id INT PRIMARY KEY,
student_id INT,
FOREIGN KEY (student_id) REFERENCES students(id)
);
- orders 라는 테이블 생성.
- order_id: 정수형 데이터를 저장하는 열로, 이 열이 기본 키(PRIMARY KEY)입니다. 즉, orders 테이블의 각 행을 고유하게 식별합니다.
- student_id: 정수형 데이터를 저장하는 열로, students 테이블의 id를 참조하는 외래 키(FOREIGN KEY)입니다. 이를 통해 orders 테이블의 각 주문이 어떤 학생과 관련이 있는지를 나타낼 수 있습니다.
4. 집계 함수(Aggregate Functions)
* COUNT()
- 행의 개수를 셈.
SELECT COUNT(*) FROM students;
* SUM()
- 숫자 값의 합 계산.
SELECT SUM(age) FROM students;
* AVG()
- 숫자 값의 평균 계산.
SELECT AVG(age) FROM students;
* MAX()
- 최댓값을 찾음.
SELECT MAX(age) FROM students;
* MIN()
- 최솟값을 찾음.
SELECT MIN(age) FROM students;
'스파르타 내일배움캠프 > TIL(Today I learned)' 카테고리의 다른 글
25.02.14 사전캠프 TIL - SQL JOIN문 (0) | 2025.02.14 |
---|---|
25.02.14 사전캠프 TIL - SQL 조건문 (1) | 2025.02.14 |
25.02.12 사전캠프 TIL - Java의 실행과정 (1) | 2025.02.12 |
25.02.11 사전캠프 TIL - Java (1) | 2025.02.11 |
25.02.10 사전캠프 TIL - 단어 맞추기 게임 (2) | 2025.02.10 |