티스토리 뷰

SQL(Structures Query Language) 이란?

• 데이터를 공통적으로 관리할수 있는 표준언어입니다.

• 관계대수와 관계해석을 기초로한 혼합 데이터 언어입니다.

• 질의어지만, 질의 기능만 있는것이 아니라 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 갖추고 있습니다.

• 사용 용도에 따라

DDL( Data Define Language ) - 데이터 정의어,
DML( Data Munipulation Language ) - 데이터 조작어,
DCL( Data Control Language ) - 데이터 제어어,
TCL( Transaction Control Language ) - 트랜잭션 제어어

로 구분됩니다.

* 관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 언어

* 관계해석 : 원하는 정보가 무엇이라는 것만 정의하는 비절차적특성을 지님

 

 

출처 : https://velog.io/@gyqls_12

 

DDL - 데이터 정의어

■ DB구조, 데이터형식, 접근 방식 등, DB를 구축하거나 수정할 목적으로 사용하는 언어입니다.

■ SCHEMA, DOMAIN, TANLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어입니다.

■ 데이터 베이스 관리자나 데이터베이스 설계자가 사용합니다.

정의어 유형 

명령어 기능
CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의합니다.
ALTER TABLE에 대한 정의를 변경하는 데 사용합니다.
DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제합니다.
-- CREATE
CREATE DATABASE 데이터베이스명;
CREATE TABLE 테이블명
{
 컬럼명 컬럼속성
}

-- ALTER
ALTER DATABASE 데이터베이스명 변경조건;
ALTER TABLE 테이블명 ADD 변경조건; -- 테이블에 새로운 컬럼을 추가합니다.
ALTER TABLE 테이블명 DROP 변경조건; -- 테이블에서 컬럼을 삭제합니다.
ALTER TABLE 테이블명 MODIFY 변경조건; -- 테이블의 컬럼을 수정합니다.
ALTER TABLE 테이블명 RENAME 변경조건; -- 테이블의 이름을 변경합니다.

-- DROP
DROP DATABASE 데이터베이스명;
DROP TABLE 테이블명;


-- EX(ORACLE 기준)
create table t_member(
   id varchar2(20) primary key,
   pwd varchar2(20),
   name varchar2(50),
   email varchar2(50),
   joinDate Date default sysdate
);

ALTER table t_member RENAME COLUMN pwd TO memberPw;

DROP TABLE t_member

 

 

DML - 데이터 조작어

■ 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용되는 언어입니다.

■ 데이터베이스 사용자와 데이터 베이스 관리 시스템 간의 인터페이스를 제공합니다.

■ 데이터베이스에서 데이터를 조작할 때 사용하는 언어로 저장, 삭제, 수정, 조회 같은 행위를 합니다.

명령어 기능
SELECT 테이블에서 조건에 맞는 튜플을 검색합니다. (튜플 - 행(row))
INSERT 테이블에 새로운 튜플을 삽입합니다.
UPDATE 테이블에서 조건에 맞는 튜플의 내용을 변경합니다. 
DELETE 테이블에서 조건에 맞는 튜플을 삭제합니다.
 -- SELECT | 찾는다 / 컬럼목록을 / 어디서? 테이블에서 / [조건에 맞는것을] 
 SELECT 컬럼목록 FROM 테이블명 [WHERE 조건];
 
 -- INSERT | 추가한다 / 테이블안에 / (컬럼목록)위치에 / (값목록)을 
 INSERT INTo 테이블명 (컬럼목록) VALUES (값목록);
 
 -- UPDATE | 업데이트한다 / 테이블에서 / 컬럼 = 값 으로 세팅한다 / [조건에 맞는것을]
 UPDATE 테이블명 SET 컬럼 = 값 [WHERE 조건];
 
 -- DELETE | 삭제한다 / 테이블에서 / [조건에 맞는것을]
 DELETE FROM 테이블명 [WHERE 조건];
 
 -- EX(ORACLE 기준)
 SELECT bookname FROM Book WHERE bookid = 1;
 INSERT INTO Book (bookid,bookname,publisher,price) VALUES(1, '축구의 역사', '굿스포츠', 7000);
 UPDATE Book SET bookname = '축구의 미래' WHERE bookid = 1;
 DELETE FROM Book WHERE bookid = 1;

 

 

DCL, TCL - 데이터 제어어, 트랜잭션 제어어

■ 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어입니다.

■ 데이터베이스 관리자가 데이터 관리를 목적으로 사용합니다. 

■ 데이터 베이스에 대한 권한과 관련된 문법으로 특정 유저가 DB에 접근할 수 있는 권한을 설정할 때 사용합니다.

명령어 기능
GRANT 데이터베이스 사용자에게 사용권한을 부여합니다.
권한 종류
- ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등
REVOKE 데이터베이스 사용자의 사용 권한을 취소합니다.
COMMIT 명령에 의해 수행된 경과를 실제 물리적 디스크로 저장하고,
데이터베이스 조작 작업이 정상적으로 완료되었음을
관리자에게 알려줍니다.
ROLLBACK 데이터베이스 조작 작업이 비정상적으로 종료되었을 때
원래의 상태로 복구합니다.
-- GRANT | 권한을 부여한다 / 객체에 대한 / 사용자에게
GRANT [권한] ON 객체명 TO 사용자;

-- REVOKE | 권한을 취소한다 / 객체에 대한 / 사용자에게 
REVOKE [권한] ON 객체명 FROM 사용자;

-- COMMIT | 해당 트랜잭션 작업이 정상적으로 완료 되엇다. 변경된 내용을 데이터베이스에 반영한다.
START TRANSACTION;
...
COMMIT;

-- ROLLBACK | COMMIT되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전상태로 돌린다.
START TRANSACTION;
...
ROLLBACK;


-- EX (GRANT, REVOKE)
GRANT ALL ON 고객 TO NABI -- NABI에게 고객테이블에 대한 모든 권한을 부여한다.
REVOKE UPDATE ON 고객 FROM NABI -- NABI의 객테이블에 대한 UPDATE권한을 취소한다.

-- COMMIT, ROLLBACK
DELETE FROM 사원 WHERE 사원번호 = 40; -- 사원번호가 40인 사원 삭제
ROLLBACK;                             -- 사원번호가 40인 사원 복귀

DELETE FROM 사원 WHERE 사원번호 = 40;
COMMIT;                               -- 정상적으로 완료됨을 알리고 데이터베이스에 내용 반영.
ROLLBACK;                             -- 사원번호가 40인 사원 복귀안됨.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
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
글 보관함