1. SELECT 문: 데이터 조회
SELECT 문은 데이터베이스에서 데이터를 조회하는 데 사용되는 가장 기본적이고 중요한 명령어입니다. 다양한 조건과 옵션을 통해 필요한 데이터를 효율적으로 추출할 수 있습니다. SELECT 문은 데이터 분석, 보고서 생성 및 시스템 통합에 매우 유용합니다.
기본 구문
SELECT 열1, 열2, ...
FROM 테이블명;
- 열(Columns): 조회할 열들을 지정합니다.
- 테이블(Table): 데이터를 가져올 테이블의 이름을 지정합니다.
SELECT 문 활용 팁
- 데이터 필터링과 정렬을 조합하여 원하는 데이터를 정확히 추출할 수 있습니다.
- 집계 함수와 함께 사용하면 요약 정보를 제공할 수 있습니다.
실습 예제
특정 열 조회:
SELECT name, age FROM employees;
- 결과: 직원 이름과 나이를 조회합니다.
모든 열 조회:
SELECT * FROM employees;
- 결과: 직원 테이블의 모든 데이터를 가져옵니다.
조건을 사용한 필터링:
SELECT name, age FROM employees WHERE age > 30;
- 결과: 나이가 30세 이상인 직원만 출력됩니다.
정렬:
SELECT name, age FROM employees ORDER BY age DESC;
- 결과: 나이에 따라 내림차순으로 직원 정보를 정렬합니다.
그룹화 및 집계:
SELECT department_id, AVG(salary) AS average_salary FROM employees GROUP BY department_id;
- 결과: 각 부서별 평균 급여를 계산합니다.
복잡한 조건 활용:
SELECT name, department_id, salary FROM employees WHERE salary > 50000 AND department_id IN (1, 3, 5);
- 결과: 급여가 50000 이상이고, 부서 ID가 1, 3, 5 중 하나인 직원 데이터를 가져옵니다.
서브쿼리 활용:
SELECT name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
- 결과: 평균 급여보다 높은 급여를 받는 직원의 이름을 조회합니다.
2. INSERT 문: 데이터 추가
INSERT 문은 테이블에 새로운 데이터를 추가할 때 사용됩니다. 단일 행 또는 다중 행 삽입이 가능하며, 이를 통해 초기 데이터 입력 및 지속적인 데이터 업데이트를 수행할 수 있습니다.
기본 구문
INSERT INTO 테이블명 (열1, 열2, ...)
VALUES (값1, 값2, ...);
- 테이블명: 데이터를 추가할 테이블 이름입니다.
- 열1, 열2, ...: 데이터를 입력할 열 이름입니다.
- 값1, 값2, ...: 삽입할 값입니다.
INSERT 문 활용 팁
- 대량 데이터를 처리할 경우, 여러 행 삽입 기능을 활용하세요.
- 기본값 설정을 통해 불필요한 값 입력을 줄일 수 있습니다.
실습 예제
단일 행 삽입:
INSERT INTO students (student_id, name, age) VALUES (1, '홍길동', 20);
- 결과: ID가 1인 학생 데이터를 추가합니다.
다중 행 삽입:
INSERT INTO students (student_id, name, age) VALUES (2, '김철수', 22), (3, '박영희', 21);
- 결과: 두 명의 학생 데이터를 동시에 추가합니다.
기본값 사용:
INSERT INTO students (student_id, name) VALUES (4, '최민수');
- 결과: 기본값이 설정된 열은 자동으로 채워집니다.
대량 데이터 처리:
LOAD DATA INFILE 'students.csv' INTO TABLE students FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (student_id, name, age);
- 결과: CSV 파일을 사용해 대량 데이터를 테이블에 삽입합니다.
다른 테이블에서 데이터 삽입:
INSERT INTO archive_students (student_id, name, age) SELECT student_id, name, age FROM students WHERE graduation_year = 2023;
- 결과: 졸업 연도가 2023인 학생 데이터를 다른 테이블로 복사합니다.
3. UPDATE 문: 데이터 수정
UPDATE 문은 기존 데이터의 내용을 수정할 때 사용됩니다. 잘못된 조건 없이 실행하면 모든 데이터가 수정될 수 있으므로 항상 WHERE 절을 사용하여 특정 조건을 지정해야 합니다.
기본 구문
UPDATE 테이블명
SET 열1 = 새로운값1, 열2 = 새로운값2, ...
WHERE 조건;
- 테이블명: 데이터를 수정할 테이블 이름입니다.
- 열1, 열2: 수정할 열 이름입니다.
- 새로운값1, 새로운값2: 설정할 새 값입니다.
- 조건: 수정할 데이터를 지정하는 기준입니다.
UPDATE 문 활용 팁
- 트랜잭션을 사용하여 수정 작업을 안정적으로 수행하세요.
- 복잡한 조건을 사용해 특정 데이터를 정확히 선택하세요.
실습 예제
특정 행 수정:
UPDATE employees SET salary = salary * 1.10 WHERE employee_id = 5;
- 결과: ID가 5인 직원의 급여를 10% 인상합니다.
여러 열 동시에 수정:
UPDATE employees SET email = 'newemail@example.com', phone_number = '010-1234-5678' WHERE employee_id = 3;
- 결과: ID가 3인 직원의 이메일과 전화번호를 수정합니다.
조건 없이 수정(주의):
UPDATE employees SET salary = salary + 5000;
- 결과: 모든 직원의 급여가 증가합니다. WHERE 절 없이 실행하지 않도록 주의해야 합니다.
조건부 업데이트:
UPDATE employees SET salary = salary * 1.05 WHERE department_id IN (1, 2) AND hire_date < '2020-01-01';
- 결과: 부서 ID가 1 또는 2이고, 2020년 이전에 입사한 직원의 급여를 5% 인상합니다.
트랜잭션 활용:
BEGIN TRANSACTION; UPDATE employees SET salary = salary * 1.05 WHERE department_id = 2; COMMIT;
- 결과: 부서 ID가 2인 직원의 급여를 5% 인상합니다. 작업 중 문제가 발생하면 ROLLBACK을 사용할 수 있습니다.
조건에 따라 다른 값 설정:
UPDATE employees SET performance_rating = CASE WHEN sales > 100000 THEN 'A' WHEN sales BETWEEN 50000 AND 100000 THEN 'B' ELSE 'C' END WHERE department_id = 3;
- 결과: 부서 ID가 3인 직원의 판매 실적에 따라 성과 등급을 설정합니다.
4. DELETE 문: 데이터 삭제
DELETE 문은 특정 조건에 맞는 데이터를 삭제할 때 사용됩니다. DELETE 문은 테이블 구조는 유지하고 데이터만 삭제합니다.
기본 구문
DELETE FROM 테이블명
WHERE 조건;
- 테이블명: 데이터를 삭제할 테이블 이름입니다.
- 조건: 삭제할 데이터를 지정하는 기준입니다.
DELETE 문 활용 팁
- 항상 WHERE 절을 포함하여 특정 데이터를 삭제하세요.
- 중요한 데이터 삭제 전에 백업을 수행하세요.
실습 예제
단일 행 삭제:
DELETE FROM employees WHERE employee_id = 3;
- 결과: ID가 3인 직원을 삭제합니다.
다수의 행 삭제:
DELETE FROM employees WHERE department_id = 5;
- 결과: 부서 ID가 5인 직원 모두를 삭제합니다.
조건 없이 모든 데이터 삭제(주의):
DELETE FROM employees;
- 결과: 모든 직원 데이터를 삭제합니다. WHERE 절 없이 실행하지 않도록 주의해야 합니다.
트랜잭션 활용:
BEGIN TRANSACTION; DELETE FROM employees WHERE department_id = 5; COMMIT;
- 결과: 부서 ID가 5인 직원을 삭제합니다. 작업 중 문제가 발생하면 ROLLBACK을 사용할 수 있습니다.
연관 데이터 삭제:
DELETE FROM orders WHERE customer_id NOT IN (SELECT customer_id FROM customers);
- 결과: 고객 테이블에 존재하지 않는 고객 ID를 가진 주문 데이터를 삭제합니다.
결론
데이터 조작 언어(DML)는 데이터베이스에서 데이터를 효과적으로 관리하고 분석하는 데 필수적인 도구입니다. 각 명령어는 데이터의 조회, 추가, 수정 및 삭제를 통해 비즈니스 요구 사항을 충족시키는 데 활용됩니다. SELECT, INSERT, UPDATE, DELETE 문을 학습하고 실습하면서 다양한 시나리오에서 이들을 적절히 사용하는 방법을 익히는 것이 중요합니다.
실습 Tip:
- 작은 데이터셋으로 시작하여 쿼리 결과를 확인하세요.
- 실수로 데이터가 삭제되는 것을 방지하기 위해 항상 백업을 유지하세요.
- WHERE 절을 정확히 작성하고, 트랜잭션을 사용하여 작업의 안전성을 높이세요.
추가 학습 리소스:
- SQL 튜토리얼 사이트에서 다양한 쿼리를 연습해보세요.
- 복잡한 데이터베이스를 다룰 때 ORM(Object-Relational Mapping) 도구와의 연동을 학습하세요.
- 데이터베이스 관리 자동화 도구를 활용하여 생산성을 높이세요.
'데이타베이스 > SQL' 카테고리의 다른 글
SQL 함수 활용 가이드 (0) | 2025.01.26 |
---|---|
트랜잭션 제어 언어 (TCL): 데이터 무결성과 안정성을 위한 필수 도구 (0) | 2025.01.25 |
데이터 제어 언어 (DCL): 권한 관리의 기본 (1) | 2025.01.25 |
데이터 정의 언어 (DDL): CREATE, ALTER, DROP (0) | 2025.01.25 |
SQL의 기본 개념과 실생활 응용: 관계형 데이터베이스 완벽 가이드 (0) | 2025.01.25 |