1. 데이터베이스(Database)와 테이블(Table)
•
데이터베이스(Database): 여러 테이블을 포함하는 큰 틀입니다.
•
테이블(Table): 데이터가 행(row)과 열(column)로 구성된 구조로 저장되는 곳입니다. 각 행은 하나의 데이터 레코드를 나타내며, 각 열은 데이터의 속성을 나타냅니다.
2. SQL 기본 명령어
SQL에서는 데이터베이스와 테이블을 생성하고, 데이터를 조회, 삽입, 수정, 삭제하는 등의 작업을 수행할 수 있습니다.
2.1. 데이터베이스 생성
데이터베이스를 새로 생성할 때는 CREATE DATABASE 명령어를 사용합니다.
CREATE DATABASE 데이터베이스이름;
SQL
복사
2.2. 테이블 생성
테이블을 생성할 때는 CREATE TABLE 명령어를 사용합니다.
CREATE TABLE 테이블이름 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
);
SQL
복사
예시:
CREATE TABLE students (
id INT,
name VARCHAR(50),
age INT
);
SQL
복사
해석 : students 라는 이름의 테이블을 생성합니다. 이 테이블에는 세 개의 열이 있습니다:
•
id: 정수형 데이터를 저장하는 열 (INT).
•
name: 최대 50자까지의 문자열을 저장할 수 있는 열 (VARCHAR(50)).
•
age: 정수형 데이터를 저장하는 열 (INT).
2.3. 데이터 조회 (SELECT)
테이블에서 데이터를 조회할 때는 SELECT 명령어를 사용합니다.
SELECT 컬럼1, 컬럼2, ... FROM 테이블이름;
SQL
복사
예시:
SELECT name, age FROM students;
//students 테이블에서 name과 age 열의 데이터를 조회합니다.
SQL
복사
•
WHERE 절: 특정 조건에 맞는 데이터만 조회합니다.
SELECT name, age FROM students WHERE age > 20;
//students 테이블에서 age 값이 20보다 큰 학생들의 name과 age를 조회합니다.
SQL
복사
•
ORDER BY 절: 조회한 데이터를 정렬합니다.
SELECT name, age FROM students ORDER BY age DESC;
//students 테이블에서 name과 age를 조회하되, age를 기준으로 내림차순(DESC)으로 정렬합니다. 즉, 나이가 많은 학생부터 순서대로 정렬됩니다.
SQL
복사
•
LIMIT 절: 조회할 데이터의 개수를 제한합니다.
SELECT name, age FROM students LIMIT 5;
//students 테이블에서 name과 age를 조회하되, 최대 5개의 행만 조회합니다.
SQL
복사
2.4. 데이터 삽입 (INSERT)
테이블에 새로운 데이터를 추가할 때는 INSERT INTO 명령어를 사용합니다.
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)
SQL
복사
//예시
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 23);
SQL
복사
2.5. 데이터 수정 (UPDATE)
기존 데이터를 수정할 때는 UPDATE 명령어를 사용합니다.
UPDATE 테이블이름 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;
SQL
복사
//예시
UPDATE students SET age = 24 WHERE id = 1;
//students 테이블에서 id가 1인 학생의 age 값을 24로 수정
SQL
복사
2.6. 데이터 삭제 (DELETE)
테이블에서 데이터를 삭제할 때는 DELETE FROM 명령어를 사용합니다.
DELETE FROM 테이블이름 WHERE 조건;
SQL
복사
예시:
DELETE FROM students WHERE id = 1
//students 테이블에서 id가 1인 행을 삭제
SQL
복사
3. 기본 키와 외래 키
•
기본 키(Primary Key): 테이블에서 각 행을 고유하게 식별하는 열(또는 열의 조합)입니다.
•
외래 키(Foreign Key): 다른 테이블의 기본 키를 참조하는 열로, 테이블 간의 관계를 나타냅니다.
예시:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
student_id INT,
FOREIGN KEY (student_id) REFERENCES students(id)
);
SQL
복사
해석 : orders 라는 이름의 테이블을 생성합니다. 이 테이블에는 두 개의 열이 있습니다:
•
order_id: 정수형 데이터를 저장하는 열로, 이 열이 기본 키(PRIMARY KEY)입니다. 즉, orders 테이블의 각 행을 고유하게 식별합니다.
•
student_id: 정수형 데이터를 저장하는 열로, students 테이블의 id를 참조하는 외래 키(FOREIGN KEY)입니다. 이를 통해 orders 테이블의 각 주문이 어떤 학생과 관련이 있는지를 나타낼 수 있습니다.
4. 집계 함수(Aggregate Functions)
집계 함수는 여러 행의 값을 계산하여 하나의 결과를 반환하는 함수입니다.
•
COUNT(): 행의 개수를 셉니다.
SELECT COUNT(*) FROM students;
SQL
복사
•
SUM(): 숫자 값의 합을 계산합니다.
SELECT SUM(age) FROM students;
SQL
복사
•
AVG(): 숫자 값의 평균을 계산합니다.
SELECT AVG(age) FROM students;
SQL
복사
•
MAX(): 최대 값을 찾습니다.
SELECT MAX(age) FROM students;
SQL
복사
•
MIN(): 최소 값을 찾습니다.
SELECT MIN(age) FROM students;
SQL
복사
5. SQL 조건문
•
AND: 두 조건이 모두 참일 때 사용합니다.
SELECT * FROM students WHERE age > 20 AND name = 'Alice';
SQL
복사
•
OR: 두 조건 중 하나만 참이면 사용합니다.
SELECT * FROM students WHERE age > 20 OR name = 'Bob';
SQL
복사
•
NOT: 조건이 거짓일 때 사용합니다.
SELECT * FROM students WHERE NOT age > 20;
SQL
복사