본문 바로가기
카테고리 없음

SQL 기본 문법

by daily_coming 2024. 9. 10.
반응형

 

SQL(Structured Query Language)은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하고 조작하기 위한 표준 언어입니다. SQL을 사용하여 데이터를 정의, 조회, 삽입, 수정, 삭제할 수 있습니다. 아래에서는 SQL의 주요 명령어들을 설명합니다.

 

 

 

 

1. 데이터 정의 언어 (DDL)

DDL은 데이터베이스의 구조를 정의하는 데 사용됩니다. 테이블을 생성, 수정, 삭제하는 명령어를 포함합니다.

CREATE TABLE

CREATE TABLE 명령어는 새로운 테이블을 생성하는 데 사용됩니다.


CREATE TABLE Students (
    student_id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    major VARCHAR(100)
);
    

ALTER TABLE

ALTER TABLE 명령어는 기존 테이블의 구조를 수정할 때 사용됩니다. 예를 들어, 새로운 컬럼을 추가하거나 기존 컬럼을 변경할 수 있습니다.


-- 테이블에 새로운 컬럼 추가
ALTER TABLE Students
ADD email VARCHAR(100);

-- 기존 컬럼의 자료형 변경
ALTER TABLE Students
MODIFY COLUMN age SMALLINT;
    

DROP TABLE

DROP TABLE 명령어는 테이블을 삭제하는 데 사용됩니다. 이 명령어를 실행하면 해당 테이블과 모든 데이터가 삭제됩니다.


DROP TABLE Students;
    

 

 

 

 

2. 데이터 조작 언어 (DML)

DML은 데이터베이스에서 데이터를 삽입, 조회, 수정, 삭제하는 데 사용됩니다.

INSERT INTO

INSERT INTO 명령어는 테이블에 새로운 데이터를 삽입하는 데 사용됩니다.


INSERT INTO Students (student_id, name, age, major)
VALUES (1, '김철수', 22, '컴퓨터공학');
    

SELECT

SELECT 명령어는 테이블에서 데이터를 조회할 때 사용됩니다. 가장 많이 사용되는 SQL 명령어 중 하나입니다.


-- 모든 컬럼 조회
SELECT * FROM Students;

-- 특정 컬럼 조회
SELECT name, major FROM Students;
    

WHERE 조건절

WHERE 조건절은 특정 조건을 만족하는 데이터만 조회할 때 사용됩니다.


-- 나이가 21 이상인 학생 조회
SELECT * FROM Students
WHERE age >= 21;

-- 전공이 '컴퓨터공학'인 학생 조회
SELECT * FROM Students
WHERE major = '컴퓨터공학';
    

UPDATE

UPDATE 명령어는 테이블에 있는 기존 데이터를 수정하는 데 사용됩니다.


-- 학생의 전공을 변경
UPDATE Students
SET major = '전기전자공학'
WHERE student_id = 1;
    

DELETE

DELETE 명령어는 테이블에서 데이터를 삭제하는 데 사용됩니다.


-- 특정 학생의 데이터를 삭제
DELETE FROM Students
WHERE student_id = 1;
    

 

 

 

 

3. 조건 및 논리 연산자

SQL에서는 데이터를 조건에 따라 필터링할 때 다양한 연산자를 사용할 수 있습니다.

AND, OR

ANDOR 연산자는 여러 조건을 조합할 때 사용됩니다.


-- 나이가 20 이상이고 전공이 '컴퓨터공학'인 학생 조회
SELECT * FROM Students
WHERE age >= 20 AND major = '컴퓨터공학';

-- 나이가 20 이상이거나 전공이 '전자공학'인 학생 조회
SELECT * FROM Students
WHERE age >= 20 OR major = '전자공학';
    

IN

IN 연산자는 여러 값 중 하나와 일치하는 데이터를 조회할 때 사용됩니다.


-- 전공이 '컴퓨터공학' 또는 '전자공학'인 학생 조회
SELECT * FROM Students
WHERE major IN ('컴퓨터공학', '전자공학');
    

BETWEEN

BETWEEN 연산자는 특정 범위 내에 있는 데이터를 조회할 때 사용됩니다.


-- 나이가 20에서 25 사이인 학생 조회
SELECT * FROM Students
WHERE age BETWEEN 20 AND 25;
    

LIKE

LIKE 연산자는 특정 패턴과 일치하는 데이터를 조회할 때 사용됩니다. 와일드카드 문자 %는 0개 이상의 문자를 의미합니다.


-- 이름이 '김'으로 시작하는 학생 조회
SELECT * FROM Students
WHERE name LIKE '김%';

-- 이름에 '철수'가 포함된 학생 조회
SELECT * FROM Students
WHERE name LIKE '%철수%';
    

 

 

 

 

 

4. 데이터 정렬

ORDER BY 절은 조회된 데이터를 정렬하는 데 사용됩니다. 기본값은 오름차순(ASC), 내림차순은 DESC를 사용합니다.


-- 나이 순으로 오름차순 정렬
SELECT * FROM Students
ORDER BY age ASC;

-- 이름 순으로 내림차순 정렬
SELECT * FROM Students
ORDER BY name DESC;
    

 

 

 

 

 

5. 집계 함수

SQL에서는 데이터를 요약할 때 사용할 수 있는 다양한 집계 함수가 있습니다. COUNT, SUM, AVG, MAX, MIN 등이 있습니다.

COUNT

COUNT 함수는 특정 조건을 만족하는 데이터의 개수를 셉니다.


-- 총 학생 수 조회
SELECT COUNT(*) FROM Students;
    

SUM

SUM 함수는 특정 컬럼의 합계를 구합니다.


-- 학생들의 총 나이 합계
SELECT SUM(age) FROM Students;
    

AVG

AVG 함수는 특정 컬럼의 평균 값을 계산합니다.


-- 학생들의 평균 나이 계산
SELECT AVG(age) FROM Students;
    

MAX, MIN

MAX 함수는 최대값을, MIN 함수는 최소값을 반환합니다.


-- 가장 나이가 많은 학생 조회
SELECT MAX(age) FROM Students;

-- 가장 나이가 적은 학생 조회
SELECT MIN(age) FROM Students;
    

 

 

 

 

 

 

6. 그룹화 (GROUP BY)

GROUP BY 절은 데이터를 그룹으로 묶어서 요약할 때 사용됩니다. GROUP BY와 함께 집계 함수를 자주 사용합니다.


-- 전공별로 학생 수를 그룹화하여 계산
SELECT major, COUNT(*) FROM Students
GROUP BY major;

-- 전공별 평균 나이 계산
SELECT major, AVG(age) FROM Students
GROUP BY major;
    

 

 

 

 

 

7. 테이블 간의 조인 (JOIN)

JOIN은 여러 테이블에서 데이터를 조합하여 조회할 때 사용됩니다. 대표적으로 INNER JOIN, LEFT JOIN, RIGHT JOIN 등이 있습니다.

INNER JOIN

INNER JOIN은 두 테이블에서 공통된 값을 기준으로 데이터를 결합합니다.


SELECT Students.name, Enrollments.course
FROM Students
INNER JOIN Enrollments ON Students.student_id = Enrollments.student_id;
    

LEFT JOIN

LEFT JOIN은 왼쪽 테이블의 모든 데이터를 포함하며, 오른쪽 테이블의 일치하는 데이터만 결합합니다.


SELECT Students.name, Enrollments.course
FROM Students
LEFT JOIN Enrollments ON Students.student_id = Enrollments.student_id;
    

 

 

 

 

 

결론

SQL은 데이터베이스를 관리하고 조작하는 데 매우 강력한 언어입니다. 위에서 설명한 문법은 SQL의 기본적인 기능을 다루며, 이를 바탕으로 복잡한 데이터베이스 쿼리를 작성할 수 있습니다. SQL의 다양한 기능을 이해하고 활용하면 데이터베이스 관리 및 데이터 분석 작업을 더욱 효율적으로 수행할 수 있습니다.

반응형