티스토리 뷰
SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 정의하고, 조작하고, 제어하는 데 사용되는 표준 언어입니다. SQL은 데이터베이스의 구조를 설계하고, 데이터를 삽입, 조회, 수정, 삭제하며, 데이터베이스의 무결성과 보안을 관리하는 데 필요한 다양한 기능을 제공합니다.
### SQL의 주요 기능
1. **데이터 정의 언어 (DDL: Data Definition Language)**
- **CREATE**: 데이터베이스 객체(테이블, 인덱스, 뷰 등)를 생성합니다.
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
name VARCHAR(100),
hire_date DATE
);
```
- **ALTER**: 기존 객체의 구조를 수정합니다.
ALTER TABLE employees ADD department_id INT;
- **DROP**: 데이터베이스 객체를 삭제합니다.
DROP TABLE employees;
2. **데이터 조작 언어 (DML: Data Manipulation Language)**
- **SELECT**: 데이터를 조회합니다.
SELECT * FROM employees;
- **INSERT**: 데이터를 삽입합니다.
INSERT INTO employees (employee_id, name, hire_date)
VALUES (1, 'John Doe', '2024-07-28');
- **UPDATE**: 기존 데이터를 수정합니다.
UPDATE employees
SET name = 'Jane Doe'
WHERE employee_id = 1;
- **DELETE**: 데이터를 삭제합니다.
DELETE FROM employees
WHERE employee_id = 1;
3. **데이터 제어 언어 (DCL: Data Control Language)**
- **GRANT**: 사용자에게 권한을 부여합니다.
GRANT SELECT, INSERT ON employees TO user_name;
- **REVOKE**: 사용자로부터 권한을 회수합니다.
REVOKE SELECT ON employees FROM user_name;
4. **트랜잭션 제어 언어 (TCL: Transaction Control Language)**
- **COMMIT**: 트랜잭션의 변경 사항을 확정합니다.
COMMIT;
- **ROLLBACK**: 트랜잭션의 변경 사항을 취소합니다.
ROLLBACK;
- **SAVEPOINT**: 트랜잭션의 특정 지점을 저장합니다.
SAVEPOINT savepoint_name;
### SQL의 주요 구성 요소
1. **쿼리(Query)**: 데이터를 검색하는 명령입니다. 가장 일반적인 SQL 쿼리는 `SELECT`문입니다.
SELECT name, hire_date FROM employees WHERE hire_date > '2024-01-01';
2. **조건절(Condition)**: 쿼리에서 데이터를 필터링하는 데 사용됩니다. `WHERE` 절이 일반적입니다.
SELECT * FROM employees WHERE department_id = 10;
3. **조인(Join)**: 여러 테이블의 데이터를 결합하여 조회합니다. 다양한 조인 유형이 있습니다.
- **INNER JOIN**: 두 테이블에서 일치하는 데이터만 조회합니다.
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
- **LEFT JOIN**: 왼쪽 테이블의 모든 데이터를 포함하며, 오른쪽 테이블과 일치하지 않는 데이터는 NULL로 표시됩니다.
- **RIGHT JOIN**: 오른쪽 테이블의 모든 데이터를 포함하며, 왼쪽 테이블과 일치하지 않는 데이터는 NULL로 표시됩니다.
- **FULL JOIN**: 두 테이블의 모든 데이터를 포함합니다.
4. **정렬(Sorting)**: 결과를 정렬합니다. `ORDER BY` 절을 사용합니다.
SELECT * FROM employees ORDER BY hire_date DESC;
5. **집계 함수(Aggregate Functions)**: 데이터를 그룹화하거나 집계하는 데 사용됩니다.
- **COUNT**: 레코드 수를 계산합니다.
SELECT COUNT(*) FROM employees;
- **SUM**: 열의 합계를 계산합니다.
- **AVG**: 열의 평균을 계산합니다.
- **MAX**: 열의 최대값을 계산합니다.
- **MIN**: 열의 최소값을 계산합니다.
6. **서브쿼리(Subquery)**: 쿼리 내에서 또 다른 쿼리를 실행하여 결과를 반환합니다.
SELECT name FROM employees
WHERE department_id IN (
SELECT department_id FROM departments WHERE location = 'New York'
);
### SQL의 사용 사례
- **데이터 분석**: 데이터베이스에서 필요한 정보를 추출하여 분석합니다.
- **애플리케이션 개발**: 애플리케이션의 데이터 처리와 관리를 위해 SQL을 사용합니다.
- **보고서 생성**: 다양한 기준에 따라 데이터베이스에서 정보를 조회하여 보고서를 작성합니다.
- **데이터 관리**: 데이터베이스 구조의 설계, 수정, 데이터 입력, 업데이트, 삭제 등을 수행합니다.
SQL은 관계형 데이터베이스를 다루는 데 있어서 핵심적인 역할을 하며, 데이터베이스 관리자(DBA), 개발자, 데이터 분석가 등 다양한 직무에서 필수적인 기술입니다.
'WEB > DB' 카테고리의 다른 글
챗 GPT가 알려주는 데이터베이스 이관 (0) | 2024.07.28 |
---|---|
챗 GPT가 알려주는 Oracle과 MySQL차이점 (0) | 2024.07.28 |
챗GPT가 알려주는 DB개념 (0) | 2024.07.28 |
- Total
- Today
- Yesterday
- 자바스크립트break
- thymeleaf
- 연명의료결정제도 #사전연명의료의향서 #사전연명의료의향서등록기관 #광주사전연명의료의향서
- SQL명령어 #SQL
- 테스크탑무선랜카드 #무선랜카드 #아이피타이무선랜카드 #a3000mini #무선랜카드추천
- 썬크림 #닥터지썬크림 #내돈내산 #내돈내산썬크림 #썬크림추천 #spf50썬크림 #닥터지메디유브이울트라선
- 와이파이신호 #와이파이 #와이파이신호세게
- 정보처리기사 #정보처리기사요약 #정보처리기사요점정리
- 좋은책 #밥프록터 #부의원리
- 파비콘 #파비콘 사이트에 적용
- css미디어쿼리 #미디어쿼리 #mediaquery
- 무료폰트 #무료웹폰트 #한수원한돋움 #한수원한울림 #한울림체 #한돋움체
- 좋은책
- lg그램pro #lg그램 #노트북 #노트북추천 #lg노트북
- sw기술자평균임금 #2025년 sw기술자 평균임금
- 쇼팬하우어 #좋은책
- 자바스크립트countiue
- 와이파이증폭기추천 #와이파이설치
- jQuery #jQuery이미지슬라이드 #이미지슬라이드
- iptime와이파이증폭기 #와이파이증폭기설치
- 자바스크립트 #javascript #math
- jdk #jre
- ajax
- 증폭기 #아이피타임증폭기
- 자바스크립트정규표현식
- 파비콘사이즈
- 바지락칼국수 #월곡동칼국수 #칼국수맛집
- 광주분식 #광주분식맛집 #상추튀김 #상추튀김맛집 #광주상추튀김
- echart
- 와이파이약할때
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |