SQL
(Structured Query Language)
관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색하는 데
사용되는 표준 질의언어이다.
SQL 구문
데이터베이스 언어 SQL 문법의 종류는 다음 세 가지로 대별된다.
데이터 정의 언어 (DDL : Data Definition Language)
데이터 조작 언어 (DML : Data Manipulation Language)
데이터 제어 언어 (DCL : Data Control Language)
+
트랜잭션 제어 언어(TCL : Transaction Control Language)
데이터 베이스를 자동으로 변경
예를 들어, 데이터베이스는 ROLLBACK 명령을 사용하여
잘못된 트랜잭션을 실행취소한다.
+
데이터 쿼리 언어(DQL)
관계형 데이터베이스에 저장된 데이터를 검색하기 위한 명령어로 구성
명령어 문법
데이터 정의 언어(DDL)
테이블과 인덱스 구조를 관리한다.
DDL의 가장 기본적인 요소는
CREATE, ALTER, RENAME, DROP과 TRUNCATE 구문이다.
CREATE
데이터베이스 개체 (테이블, 인덱스, 제약조건 등)의 정의
데이터베이스에서 객체(예, 테이블)를 생성한다.
CREATE TABLE My_table(
my_field1 INT,
my_field2 VARCHAR(50),
my_field3 DATE NOT NULL,
PRIMARY KEY (my_field1, my_field2)
);
ALTER
데이터베이스 개체 정의 변경
다양한 방법으로 현존하는 객체의 구조를 변경한다.
예를 들어, 현재의 테이블레 칼럼을 추가하거나 제한을 추가한다.
ALTER TABLE My_table ADD my_field4 NUMBER(3) NOT NULL;
TRUNCATE
테이블에서 모든 테이터를 빠르게 삭제한다.
내부 테이블의 데이터를 삭제하는 것이지, 테이블 자체를 삭제하는 것은 아니다.
이 과정은 보통 순차적인 COMMIT 연산을 내포한다.
예를 들어, 이것은 롤백되지 않는다.
(DELETE와 달리 이후 롤백을 위한 로그가 기록되지 않는다.)
TRUNCATE TABLE My_table;
DROP
데이터베이스에서 객체를 삭제하며,
보통 롤백을 통해 복원할 수 없다.
DROP TABLE My_table;
데이터 조작 언어(DML)
INSERT INTO
행 데이터 또는 테이블 데이터의 삽입
UPDATE ~ SET
표 업데이트
DELETE FROM
테이블에서 특정 행 삭제
SELECT ~ FROM ~ WHERE
테이블 데이터의 검색 결과 집합의 취득
데이터 제어 언어(DCL)
GRANT
특정 데이터베이스 사용자에게 특정 작업을 수행할 수 있는 권한을 부여
REVOKE
특정 데이터베이스 이용자로부터 이미 준 권한을 박탈
SET TRANSACTION
트랜잭션 모드 설정
BEGIN
트랜잭션 시작
COMMIT
트랜잭션의 실행
ROLLBACK
트랜잭션 취소
SAVEPOINT
무작위로 롤백 지점을 설정
LOCK
TABLE 등의 자원을 차지
연산자
연산자 | 설명 |
= | 같음 |
<> 또는 != | 같지 않음 |
> | 보다 큼 |
< | 보다 작음 |
>= | 보다 크거나 같음 |
<= | 보다 작거나 같음 |
BETWEEN | 일정 범위 사이 |
LIKE | 패턴 검색 |
IN | 컬럼의 여러 가능한 값들을 지정 |
내용 참고 - 위키백과 -
NoSQL이란?
테이블을 사용하여 데이터를 저장하지 않는 비관계형 데이터베이스이다.
개발자는 다양한 유형의 NoSQL 데이터베이스에 그래프, 문서, 키-값 등의 정보를 저장한다.
NoSQL 데이터베이스는 수평 확장이 가능하기 때문에 최신 애플리케이션에 널리 사용된다.
수평 확장이란 NoSQL소프트웨어를 실행하는 컴퓨터를 더 추가하여 처리 능력을 높이는 것을 의미
SQL과 NoSQL 비교
구조적 쿼리 언어(SQL)는 일관된 데이터 조작 언어를 제공하지만
NoSQL 구현은 서로 다른 기술에 따라 달라진다.
개발자는 트랜잭션 및 분석 애플리케이션에 SQL을 사용하는 반면
NoSQL은 응답성이 높고 사용량이 많은 애플리케이션에 적합하다.
NoSQL은 대표적으로 MongoDB가 있다.
내용 참고 - aws -
트랜잭션의 특징 4가지
(줄여서 ACID라고도 한다.)
원자성(Atomicity)
트랜잭션이 데이터 베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다.
일관성(Consistency)
트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.
데이터 타입이 반환 후와 전이 항상 동일해야 한다.
독립성(Isolation)
하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로
독립적임을 의미한다.
서로 간의 간섭이 불가하기 때문에 하나의 특정 트랜잭션이
완료될 때까지, 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다.
지속성(Dutability)
트랜잭션이 성공적으로 완료되었을 경우, 결과는 영구적으로 반영되어야 한다.
보통 Commit이 완료되면 지속성은 자연스럽게 충족되는 특징이다.
트랜잭션의 상태 5가지
Active : 트랜잭션이 현재 실행 중인 상태
Failed : 트랜잭션이 실행되다 오류가 발생해서 중단된 상태
Aborted : 트랜잭션이 비정상 종료되어 Rollback이 수행된 상태
Partially Committed : 트랜잭션의 연산이 마지막까지 실행되고 Commit이 되기 직전 상태
committed : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 수의 상태
내용 출처 및 참고하면 좋은 링크 - alicesykim95 -
참고하면 좋은 링크 - IT위키 -
'데이터베이스 탐구' 카테고리의 다른 글
MySQL) 인텔리제이에서 테이블 만들어보기 (0) | 2023.05.01 |
---|---|
프로그래머스) (mySQL) 가장 비싼 상품 구하기 (0) | 2023.04.30 |
데이터베이스) ORM과 JPA (2) | 2023.04.30 |
프로그래머스) (mySQL) 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.04.25 |
프로그래머스) (mySQL) 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.04.25 |