SQL

허선준·2024년 9월 27일

본캠프

목록 보기
19/25

SQL(Structured Query Language)은 데이터베이스에서 데이터를 관리하고 조작하는 데 사용되는 표준 언어입니다. 주로 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 정의하고 조회하며, 삽입, 업데이트, 삭제 작업을 수행하는 데 사용됩니다. SQL은 데이터베이스의 구조(테이블, 열, 행)를 정의하는 것뿐만 아니라 데이터를 효과적으로 처리하고 관리하는 기능도 제공합니다.

SQL의 주요 기능 및 명령어

1. 데이터 정의(DDL - Data Definition Language)
데이터베이스와 그 구조(테이블, 인덱스, 스키마 등)를 정의하거나 수정하는 데 사용되는 명령어입니다.

  • CREATE: 새로운 데이터베이스 객체(테이블, 스키마 등)를 생성합니다
CREATE TABLE Users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  email VARCHAR(100)
);
  • ALTER: 기존의 테이블이나 객체의 구조를 변경합니다
ALTER TABLE Users ADD COLUMN age INT;
  • DROP: 데이터베이스 객체를 삭제합니다
DROP TABLE Users;

2. 데이터 조작(DML - Data Manipulation Language)
테이블 내 데이터를 조회하거나 삽입, 수정, 삭제하는 데 사용되는 명령어입니다.

  • SELECT: 테이블에서 데이터를 조회합니다
SELECT name, email FROM Users WHERE age > 18;
  • INSERT: 새로운 데이터를 테이블에 삽입합니다
INSERT INTO Users (id, name, email, age) VALUES (1, 'Alice', 'alice@example.com', 25);
  • UPDATE: 기존 데이터를 수정합니다
UPDATE Users SET age = 26 WHERE id = 1;
  • DELETE: 테이블에서 데이터를 삭제합니다.
DELETE FROM Users WHERE id = 1;

3. 데이터 제어(DCL - Data Control Language)
데이터베이스에 대한 접근 권한을 제어하는 명령어입니다.

  • GRANT: 사용자에게 데이터베이스 객체에 대한 권한을 부여합니다
GRANT SELECT, INSERT ON Users TO 'john';
  • REVOKE: 사용자에게 부여된 권한을 취소합니다
REVOKE INSERT ON Users FROM 'john';

4. 트랜잭션 제어(TCL - Transaction Control Language)
여러 SQL 명령어를 하나의 트랜잭션으로 묶어 처리하는 데 사용됩니다. 트랜잭션은 데이터베이스에서 일관성을 유지하는 데 중요한 역할을 합니다.

  • COMMIT: 트랜잭션에서 수행한 모든 변경 사항을 영구적으로 저장합니다
COMMIT;
  • ROLLBACK: 트랜잭션에서 수행한 모든 변경 사항을 취소합니다
ROLLBACK;
  • SAVEPOINT: 트랜잭션 중간에 저장점을 설정하여 특정 시점으로 롤백할 수 있게 합니다
SAVEPOINT save1;

SQL의 특징

  1. 데이터 무결성 유지: SQL은 데이터를 삽입하거나 수정할 때 무결성 제약 조건(예: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL 등)을 적용해 데이터의 일관성과 무결성을 유지합니다.
  • PRIMARY KEY: 각 행을 고유하게 식별하는 열을 정의합니다.
  • FOREIGN KEY: 다른 테이블의 PRIMARY KEY와 연관된 열을 지정하여 테이블 간의 관계를 만듭니다.
  • NIQUE: 열에 중복된 값을 허용하지 않음.
  • NOT NULL: 해당 열에 빈 값(Null)을 허용하지 않음.
  1. 관계형 데이터 모델: SQL은 관계형 데이터베이스를 기반으로 하고 있으며, 테이블 간의 관계를 설정하여 데이터를 구조화합니다. 관계형 모델을 통해 데이터를 정규화하여 중복을 최소화하고 데이터 일관성을 유지할 수 있습니다.

  2. 데이터의 집계 및 분석: SQL은 집계 함수(Aggregate Functions)를 제공하여 데이터를 분석하고 요약할 수 있습니다. 이를 통해 복잡한 데이터를 간단하게 처리할 수 있습니다.

  • COUNT(): 행의 개수를 셉니다.
  • SUM(): 지정된 열의 합계를 계산합니다.
  • AVG(): 지정된 열의 평균값을 계산합니다.
  • MIN(), MAX(): 최소값과 최대값을 계산합니다

SQL의 종류

  1. MySQL: 오픈 소스 관계형 데이터베이스 관리 시스템으로 웹 애플리케이션에서 자주 사용됩니다.
  2. PostgreSQL: 객체-관계형 데이터베이스 시스템으로 고급 SQL 기능을 제공하며, 데이터 무결성 보장 및 성능이 우수합니다.
  3. Oracle Database: 대기업에서 주로 사용하는 상용 관계형 데이터베이스 시스템으로, 강력한 성능과 보안 기능을 제공합니다.
  4. Microsoft SQL Server: Microsoft에서 개발한 관계형 데이터베이스 시스템으로, 다양한 기업 환경에서 많이 사용됩니다.

SQL의 장점

  1. 표준화된 언어: SQL은 대부분의 관계형 데이터베이스에서 표준화된 언어로, 학습한 SQL 문법은 다른 데이터베이스에서도 대부분 동일하게 사용됩니다.
  2. 데이터 처리 성능: 대용량 데이터의 관리 및 처리에 효율적이며, 다양한 최적화 기능을 제공합니다.
  3. 유연성: 복잡한 데이터를 다양한 방식으로 조회, 필터링, 그룹화할 수 있어 데이터 분석 및 처리가 유연합니다.
profile
코딩 초보

0개의 댓글