1. 데이터베이스(Database)와 테이블(Table)
데이터베이스(Database): 여러 테이블을 포함하는 큰 틀입니다.
테이블(Table): 데이터가 행(row)과 열(column)로 구성된 구조로 저장되는 곳입니다. 각 행은 하나의 데이터 레코드를 나타내며, 각 열은 데이터의 속성을 나타냅니다.
2. SQL 기본 명령어
SQL에서는 데이터베이스와 테이블을 생성하고, 데이터를 조회, 삽입, 수정, 삭제하는 등의 작업을 수행할 수 있습니다.
데이터베이스를 새로 생성할 때는 CREATE DATABASE 명령어를 사용합니다.
CREATE DATABASE 데이터베이스이름;
테이블을 생성할 때는 CREATE TABLE 명령어를 사용합니다.
CREATE TABLE 테이블이름 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
);
예시:
CREATE TABLE students (
id INT,
name VARCHAR(50),
age INT
);
students라는 이름의 테이블을 생성합니다.
이 테이블에는 세 개의 열이 있습니다:
id: 정수형 데이터를 저장하는 열 (INT).
name: 최대 50자까지의 문자열을 저장할 수 있는 열 (VARCHAR(50)).
age: 정수형 데이터를 저장하는 열 (INT).
SELECT 컬럼1, 컬럼2, ... FROM 테이블이름;
예시:
SELECT name, age FROM students;
-- students 테이블에서 name과 age 열의 데이터를 조회합니다.
SELECT name, age FROM students WHERE age > 20;
-- students 테이블에서 age 값이 20보다 큰 학생들의 name과 age를 조회합니다.
SELECT name, age FROM students ORDER BY age DESC;
-- students 테이블에서 name과 age를 조회하되, age를 기준으로 내림차순(DESC)으로 정렬합니다.
-- 즉, 나이가 많은 학생부터 순서대로 정렬됩니다.
SELECT name, age FROM students LIMIT 5;
-- students 테이블에서 name과 age를 조회하되, 최대 5개의 행만 조회합니다.
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)
-- 예시
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 23);
UPDATE 테이블이름 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;
예시
UPDATE students SET age = 24 WHERE id = 1;
-- students 테이블에서 id가 1인 학생의 age 값을 24로 수정
DELETE FROM 테이블이름 WHERE 조건;
예시:
DELETE FROM students WHERE id = 1
-- students 테이블에서 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)
집계 함수는 여러 행의 값을 계산하여 하나의 결과를 반환하는 함수입니다.
1. COUNT(): 행의 개수를 셉니다.
SELECT COUNT(*) FROM students;
2. SUM(): 숫자 값의 합을 계산합니다.
SELECT SUM(age) FROM students;
3. AVG(): 숫자 값의 평균을 계산합니다.
SELECT AVG(age) FROM students;
4. MAX(): 최대 값을 찾습니다.
SELECT MAX(age) FROM students;
5. MIN(): 최소 값을 찾습니다.
SELECT MIN(age) FROM students;
1. AND: 두 조건이 모두 참일 때 사용합니다.
SELECT * FROM students WHERE age > 20 AND name = 'Alice';
2. OR: 두 조건 중 하나만 참이면 사용합니다.
SELECT * FROM students WHERE age > 20 OR name = 'Bob';
3. NOT: 조건이 거짓일 때 사용합니다.
SELECT * FROM students WHERE NOT age > 20;
출처 : 내일배움캠프_SQL기초