티스토리 뷰
SQL(Structures Query Language) 이란?
• 데이터를 공통적으로 관리할수 있는 표준언어입니다.
• 관계대수와 관계해석을 기초로한 혼합 데이터 언어입니다.
• 질의어지만, 질의 기능만 있는것이 아니라 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 갖추고 있습니다.
• 사용 용도에 따라
DDL( Data Define Language ) - 데이터 정의어,
DML( Data Munipulation Language ) - 데이터 조작어,
DCL( Data Control Language ) - 데이터 제어어,
TCL( Transaction Control Language ) - 트랜잭션 제어어
로 구분됩니다.
* 관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 언어
* 관계해석 : 원하는 정보가 무엇이라는 것만 정의하는 비절차적특성을 지님
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인 사원 복귀안됨.
'프로그래밍 기초 > database' 카테고리의 다른 글
1:1관계, 1:N관계, N:M관계 (1) | 2024.02.06 |
---|---|
데이터 무결성 제약 조건 (0) | 2024.02.05 |
MongoDB(작업 코드에 MongoDB적용하기) (1) | 2024.01.26 |
node.js 에 mysql 연결하기 (RDS) (1) | 2024.01.25 |
RDS로 MySQL 세팅하기 (0) | 2024.01.24 |