본문 바로가기

IT 기초/SQL

[SQL 기본구조] SQL 정의, 관계형 데이터베이스, SQL 명령어

SQLstructured query language, 관계형 데이터베이스에 있는 데이터를 분석하는 언어

관계형 데이터베이스는 행과 열로 구성된 테이블이 관계를 맺고 모여있는 집합체

(관계는 1:1 1:N N:N → 테이블간 연결이 가능하다는 것 의미)

 

▶ SQL 명령어

기본 명령어 기능
데이터 정의어(Data Definition Language, DDL) 테이블 생성, 변경, 삭제
데이터 조작어(Data Manipulation Language, DML) 데이터 삽입, 조회, 수정, 삭제
데이터 제어어(Data Control Language, DCL) 데이터 접근 권한 부여, 제거
트랜젝션 제어어(Transaction Control Language, TCL) 데이터 조작어(DML) 명령어 실행, 취소, 임시저장

1) 데이터 정의어(DDL)

- 테이블 생성 

CREATE TABLE 테이블명 (

  열 이름 데이터 타입(바이트수) 제약조건

);

 

- 열 추가

ALTER TABLE 테이블명 ADD 열이름 데이터타입;

 

- 열 데이터 타입 변경

ALTER TABLE 테이블명 MODIFY 열이름 데이터타입;

 

- 열 이름 변경

ALTER TABLE 테이블명 CHANGE 기존열이름 변경열이름 데이터타입;

 

- 테이블명 변경

ALTER TABLE 테이블명 RENAME 변경테이블명;

 

- 테이블 삭제

DROP TABLE 테이블명;


2) 데이터 조작어(DML)

- 데이터 삽입

INSERT INTO 테이블명 VALUES (데이터, 데이터, 데이터)

  테이블 열 순서에 맞게 데이터 입력, 문자형과 날짜형은 ' '로 묶어줌

  제약조건 위반시(PK, NOT NULL, 데이터 타입) 데이터 삽입 안됨

 

- 데이터 조회

SELECT 모든열 조회(*) or 특정 열 조회(열 이름) or 열 이름 변경해 조회(AS)

 

- 데이터 수정

제한 설정 풀기 EDIT → preferences → SQL Editor → 맨 밑 체크 풀기

UPDATE 테이블명

       SET 수정할 열 이름 = 조건;

 

* 특정 조건 데이터 수정은 WHERE 열이름=조건; 추가

(WHERE에 해당하는 행만 SET 부분 수정한다는 의미)

 

- 데이터 삭제

DELETE

FROM

WHERE (특정 데이터 삭제)


3) 데이터 제어어(DCL)

데이터베이스 관리자(DBA)가 특정 사용자(User)에게 데이터 접근권한 부여 및 제거시 사용하는 명령어

 

DBA → 데이터베이스 관리, 테이블 생성, 데이터 접근 권한 관리 (DDL, DCL)

User → 데이터베이스 접근, 데이터 분석, 데이터 접근 권한 요청(DML, TCL)

 

▶ 사용자 추가 (아이디 및 비밀번호 생성)

CREATE USER  '아이디' @LOCALHOST IDENTIFIED BY '비밀번호'

 (@LOCALHOST는 로컬에서 접속이 가능하다는 의미)

 

* 비밀번호 변경 → SET PASSWORD FOR '비밀번호' @LOCALHOST = '1234';

 

▶ 권한 부여

권한: CREATE, ALTER, DROP, INSERT, DELETE, UPDATE, SELECT 등

 

* 특정 권한 부여

GRANT SELECT, DELETE ON 데이터베이스.테이블 TO 아이디 @LOCALHOST;

(GRANT 뒤에 권한 부여할 명령어 작성, ON 뒤에 권한 사용할 수 있는 데이터베이스 및 테이블 작성, 권한 부여할 아이디 입력)

 

* 특정 권한 제거

REVOKE DELETE ON 데이터베이스.테이블 FROM 아이디 @LOCALHOST;

 

* 모든 권한 부여

GRANT ALL ON 데이터베이스.테이블 TO 아이디 @LOCALHOST;

 

* 모든 권한 제거

REVOKE ALL ON 데이터베이스.테이블 FROM 아이디 @LOCALHOST;

 

* 사용자 삭제

DROP USER 아이디 @LOCALHOST;

 

정리 → 사용자 추가 및 삭제(CREATE, DROP) / 권한 부여 및 삭제(GRANT, REVOKE)


4) 트랜젝션 제어어(TCL)

트랜젝션(Transaction) : 분할할 수 없는 최소 단위이며 논리적 작업 단위

BEGIN 명령어로 트랜젝션 시작

 

실행(COMMIT) → 모든 작업을 최종 실행

취소(ROLLBACK) → 모든 작업을 되돌림

임시저장(SAVEPOINT) → ROLLBACK 저장점을 지정

 

트랜젝션에서 DML 명령어 (삽입 INSERT, 수정 UPDATE, 삭제 DELETE)의 각 지점마다 ROLLBACK 저장점을 지정해 원하는 지점으로 ROLLBACK 가능

 

SAVEPOINT 임시저장이름; 

ROLLBACK 임시저장이름 으로 되돌아감