SQL
Structured Query Language
관계형 데이터베이스에서
데이터를 조작하고 질의하기 위한 표준 프로그래밍 언어
대부분의 관계형 데이터베이스 관리 시스템(RDBMS)에서 지원되며,
데이터베이스 간의 데이터 조작 및 구조 정의의 표준화를 목표로 개발되었다.
(각 RDBMS 제품마다 특별한 확장 기능이나 문법의 차이는 있다.)
선언적 언어.
"어떻게"가 아닌 "무엇을"에 중점을 둔 프로그래밍 언어.
원하는 결과에 대한 명세만 제공하면 시스템이 그 명세에 따라 작동하는 방식.
사용자는 특정 작업을 수행하는 방법을 자세히 지시하는 대신 원하는 결과의 기능이나 특성만을 정의.
사용자가 원하는 결과를 얻기 위해 수행해야 할 구체적인 단계와 연산을 지정해야하는 절차적 언어와 반대.
SQL은 선언적 언어의 좋은 예시.
SQL 쿼리를 작성할 때 사용자는 어떻게 데이터를 가져오거나 조작해야 하는지 구체적으로 지시하지 않는다.
대신 "어떤 데이터를 원하는가"에 대해만 정의하고
DBMS가 그 쿼리를 어떻게 실행할 것인지 결정한다.
select * from people where name = 'James';
위의 쿼리에서 우리는 이름이 James인 사람의 정보를 얻고 싶다는 결과만을 명시한다.
데이터베이스가 내부적으로 이 정보를 어떻게 검색하는지(인덱스를 사용하는지, 스캔을 하는지 등)에 대해서
사용자가 지정하지 않는다.
SQL의 기본적인 명령어를 분류하기 위한 주요 카테고리
DDL (Data Definition Language 데이터 정의 언어)
데이터베이스, 테이블, 인덱스, 뷰 등의 구조를 정의하거나 변경하거나 삭제하는데 사용된다.주요 명령어CREATE : 데이터베이스, 테이블 등을 생성한다.ALTER : 기존의 데이터 구조를 변경한다.DROP : 데이터베이스, 테이블 등을 삭제한다.TRUNCATE : 테이블의 모든 데이터를 삭제한다. (구조는 그대로 유지)
DML (Data Manipulation Language 데이터 조작 언어)
저장된 데이터를 조회하거나 수정하거나 입력하거나 삭제하는 작업에 사용된다.주요 명령어SELECT : 데이터를 조회한다.INSERT : 데이터를 입력한다.UPDATE : 데이터를 수정한다.DELETE : 데이터를 삭제한다.
DCL(Data Control Language 데이터 제어 언어)
데이터에 대한 접근을 제어하기 위한 권한 설정 및 트랜잭션 관리와 관련된 작업에 사용된다.
주요 명령어
GRANT : 특정 사용자에게 특정 작업에 대한 권한을 부여한다.
REVOKE : 특정 사용자의 특정 권한을 제거한다.
COMMIT : 트랜잭션의 변경 사항을 확정하고 반영한다.
ROLLBACK : 트랜잭션의 변경 사항을 취소한다.
TCL(Transaction Control Language 트랜잭션 제어 언어)
데이터베이스의 트랜잭션을 제어한다.
주요 명령어
COMMIT : 트랜잭션의 모든 변경을 저장한다.
ROLLBACK : 최근의 COMMIT 이후의 모든 변경사항을 취소(되돌리기)한다.
SAVEPOINT : 트랜잭션 내에서 롤백할 수 있는 지점을 설정한다.
SET TRANSACTION : 트랜잭션의 속성을 설정한다.
'개인 공부 (23.07~' 카테고리의 다른 글
EntityManager(순수 JPA) vs JpaRepository(Spring Data JPA) (0) | 2023.09.04 |
---|---|
[SpringBoot] application.properties 무엇인가 (0) | 2023.09.04 |
[Java] Optional 클래스 (0) | 2023.08.30 |
[Java] Generic(제네릭) 개념과 예시 (1) | 2023.08.30 |
@Transactional 무엇인가 (0) | 2023.08.30 |