SQL 기초 공부

Modesty·2025년 1월 31일

SQL기초

목록 보기
3/3

SQL 기초

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

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

2. SQL 기본 명령어

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

2.1. 데이터베이스 생성

데이터베이스를 새로 생성할 때는 CREATE DATABASE 명령어를 사용합니다.

CREATE DATABASE 데이터베이스이름;

2.2. 테이블 생성

테이블을 생성할 때는 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).

2.3. 데이터 조회 (SELECT)

  • 테이블에서 데이터를 조회할 때는 SELECT 명령어를 사용합니다.
SELECT 컬럼1, 컬럼2, ... FROM 테이블이름;
예시:
SELECT name, age FROM students; 
-- students 테이블에서 name과 age 열의 데이터를 조회합니다.
  • WHERE 절: 특정 조건에 맞는 데이터만 조회합니다.
SELECT name, age FROM students WHERE age > 20;
-- students 테이블에서 age 값이 20보다 큰 학생들의 name과 age를 조회합니다.
  • ORDER BY 절: 조회한 데이터를 정렬합니다.
SELECT name, age FROM students ORDER BY age DESC;
-- students 테이블에서 name과 age를 조회하되, age를 기준으로 내림차순(DESC)으로 정렬합니다. 
-- 즉, 나이가 많은 학생부터 순서대로 정렬됩니다.
  • LIMIT 절: 조회할 데이터의 개수를 제한합니다.
SELECT name, age FROM students LIMIT 5;
-- students 테이블에서 name과 age를 조회하되, 최대 5개의 행만 조회합니다.

2.4. 데이터 삽입 (INSERT)

  • 테이블에 새로운 데이터를 추가할 때는 INSERT INTO 명령어를 사용합니다.
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (1,2, ...)
-- 예시
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 23);

2.5. 데이터 수정 (UPDATE)

  • 기존 데이터를 수정할 때는 UPDATE 명령어를 사용합니다.
UPDATE 테이블이름 SET 컬럼1 =1, 컬럼2 =2 WHERE 조건;
예시
UPDATE students SET age = 24 WHERE id = 1;
-- students 테이블에서 id가 1인 학생의 age 값을 24로 수정

2.6. 데이터 삭제 (DELETE)

  • 테이블에서 데이터를 삭제할 때는 DELETE FROM 명령어를 사용합니다.
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;

5. SQL 조건문

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기초

profile
마음 다잡기

0개의 댓글