내일배움캠프(Spring 7기)/내일배움캠프

SQL 기초

가지코딩 2025. 3. 24. 14:25

☑️ SQL 기초

  1. 데이터베이스(Database)와 테이블(Table)
  2. SQL 기본 명령어
  3. 기본 키와 외래 키
  4. 집계 함수 (Aggregate Function)
  5. SQL 조건문

1. 데이터베이스(Database)와 테이블(Table)

  • 데이터베이스(Database): 여러 테이블을 포함하는 큰 틀이다.
  • 테이블(Table): 데이터가 행(row)과 열(column)로 구성된 구조로 저장된 곳이다. 각 행은 하나의 데이터 레코드를 나타내며, 각 열은 데이터의 속성을 나타낸다.

2. SQL 기본 명령어

SQL에서는 데이터베이스와 테이블을 생성하고, 데이터를 조회, 삽입, 수정, 삭제하는 등의 작업을 수행할 수 있다.

 

데이터베이스 생성

CREATE DATABASE 데이터베이스이름;

 

테이블 생성

CREATE TABLE 테이블이름 (
    컬럼1 데이터타입,
    컬럼2 데이터타입,
    ...
);
-- 예시: id(INT), name(VAR(50)), age(INT) 컬럼을 가진 student 테이블 생성
CREATE TABLE students (
    id INT,
    name VARCHAR(50),
    age INT
);

 

데이터 조회 (SELECT)

SELECT 컬럼1, 컬럼2, ... FROM 테이블이름;
-- 예시: students 테이블에서 name과 age 열의 데이터를 조회
SELECT name, age FROM students;

 

  • WHERE 절: 특정 조건에 맞는 데이터만 조회
-- 예시: students 테이블에서 age 값이 20보다 큰 학생들의 name과 age를 조회
SELECT name, age FROM students WHERE age > 20;
  • ORDER BY 절: 조회한 데이터를 정렬
-- 예시: students 테이블에서 name과 age를 조회하되, age를 기준으로 내림차순(DESC)으로 정렬
SELECT name, age FROM students ORDER BY age DESC;
  • LIMIT 절: 조회할 데이터의 개수를 제한
-- 예시: students 테이블에서 name과 age를 조회하되, 최대 5개의 행만 조회
SELECT name, age FROM students LIMIT 5;

 

 

데이터 삽입 (INSERT)

INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...);
-- 예시: students 테이블에 id는 1, name은 'Alice', age는 23인 행 추가
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 23);

 

데이터 수정 (UPDATE)

UPDATE 테이블이름 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;
-- 예시: students 테이블에서 id가 1인 학생의 age 값을 24로 수정
UPDATE students SET age = 24 WHERE id = 1;

 

데이터 삭제 (DELETE)

DELETE FROM 테이블이름 WHERE 조건;
-- 예시: students 테이블에서 id가 1인 행을 삭제
DELETE FROM students WHERE id = 1;

3. 기본 키와 외래 키

  • 기본 키(Primary Key): 테이블에서 각 행을 고유하게 식별하는 열(또는 열의 조합)
  • 외래 키(Foregin Key): 다른 테이블의 기본 키를 참조하는 열로, 테이블 간의 관계를 나타낸다.
-- 예시: 기본키(order_id), 외래키(student_id)
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    student_id INT,
    FOREIGN KEY (student_id) REFERENCES students(id)
);

4. 집계 함수 (Aggregate Function)

  • 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;

5. SQL 조건문

  • AND: 두 조건이 모두 참일 때 사용한다.
SELECT * FROM students WHERE age > 20 AND name = 'Alice';

 

  • OR: 두 조건 중 하나만 참이면 사용한다.
SELECT * FROM students WHERE age > 20 OR name = 'Bob';

 

  • NOT: 조건이 거짓일 떄 사용한다.
SELECT * FROM students WHERE NOT age > 20;