'국비지원'의 시작

오라클 비긴즈 07 ( SQL (Structure Query Language) )

개발할 결심 2023. 2. 14. 17:50

 SQL ( Structure Query Language )  의 종류로는 DML , DDL , DCL. TCL ,DQL 이 존재한다. 그렇다면 , 이러한 것들이 어떠한 것들인지 살짝 살펴보도록 하겠다. 그렇다면 첫번째로, DQL 에 대해서 설명하도록 하겠습니다. DQL 이란 ,  Data Query Language 의 줄임말이고, 데이터 질의어라고도 한다 . DQL 의 예로는 우리가 앞선 오라클 비긴즈에서 사용한 SELECT 가 DQL 중 하나이다. 

 다음으로 , TCL 은 Transaction Control Language 의 줄임말이고 , 트랜잭션 제어어라고도 한다. TCL 의 예로는 COMMIT , ROLLBACK 이 있다. 데이터가 메모리( RAM ) 에 있는 경우에 , COMMIT 을 치면 , 데이터가 디스크에 저장되고 , ROLLBACK 을 치면, 메모리 ( RAM ) 에 있는 데이터가 수정하기 전의 상태로 돌아가게 되는 것이다.   

세번째로, DML  ( Data Manuplationt Language) 에 대해서 설명하려고 한다. DML 의 종류로는 데이터 입력을 하게 해주는 ' insert ' , 데이터 수정을 도와주는 ' update ' , 그리고 데이터를 삭제해주는 ' delete '  마지막으로 데이터를 병합해주는 ' merge ' 가 존재한다.  DML 문은 기본적으로 수동 COMMIT 이다. 즉, DML 문을 수행한 다음에는 바로 디스크(파일) 에 적용되지  않고 COMMIT를 해야만 한다. 그래서, DML 문을 수행한 다음에 디스크(파일) 에 적용치 않고자 한다면 ,  ROLLBACK 을 해주면 된다. 

 DML 문이 수동 COMMIT 인 것과 다르게, DDL 문과 DCL 문은 자동 COMMIT ( AUTO COMMIT ) 이 되고, ROLLBACK 이 불가능하게 된다.  즉, DDL 문과 DCL 문은 데이터를 입력하기 전에 자세히 살펴보고 입력해야 할 필요가 있다. 뿐만 아니라, DML 문을 입력하고 ,  DDL 문 또는 DCL 문을 입력하면 앞서 입력한 DML 문 까지 COMMIT 되기 때문에 이에 대해서 인지해야 할 필요가 있다. 그렇다면,  DDL 에 대해서 살펴보면, DDL은 Data Definition Language 의 줄임말로, 우리나라 말로 하자면 데이터 정의어이다. DDL 의 예로는 테이블을 만드는 CREATE , 테이블을 삭제하는 데 도움을 주는 DROP , ALTER , TRUNCATE 가 존재한다.  마지막으로. DCL 이 존재하는데, 이는 Data Control Language의 줄임말이고, 데이터 제어어라고도 한다. DCL 의 예로는 GRANT , REVOKE 등이 존재한다. 

 그렇다면, 대중적으로 쓰이는 INSERT문 ,CREATE문 의 사용법을 간단하게 살펴보고, 오늘의 블로그를 마무리 하겠다. 

 -- INSERT 문은  INSERT문 과 UNCONDITIONAL INSERT ALL 문 과  조건( WHERE 절 ) 에 일치하는 행들만 특정 테이
-- 블로 찾아가서 INSERT 하도록 하는 CONDITIONAL INSERT ALL 문이 있는데, 이 중 제일 간단한 INSERT 문에 대해
-- 설명드리도록 하겠다. 
-- INSERT INTO 테이블명 (  컬럼명1 , 컬럼명2 , 컬럼명3.....)  VALUES ( 컬럼명1 값, 컬럼명2 값 ......)
-- INSERT 후 COMMIT ; 을 실행하지 않으면 디스크(파일) 에 저장되지 않으니 주의 할 것 

--  CREATE 문을 통해서 간단하게 테이블을 만드는 법을 알려드리도록 하겠습니다.
--  CREATE TABLE  테이블명    -- > 주의 할점 : 테이블명을 소문자로 치든, 대문자로 치든 테이블명은 대문자로 저장됨
-- ( 컬럼명1               데이터타입 1 
--  , 컬럼명2              데이터타입2    -- >  EX ) NUMBER(6) -> 여섯자리수의 숫자
--  , 컬럼명3              데이터타입3    -- >  EX ) VARCHAR2(6) ->  최대 6 BYTE 까지의 글자를 의미한다.
-- ) ; 
--  VARCHAR2( 숫자 ) , Nvarchar2( 숫자 ) 의 차이는 varchar2 는 최대 BYTE가 제한 되는 것이고, Nvarchar2 는 최대
-- 글자수가 제한되는 것이니 , 이를 고려하여 , 테이블을 만들 때 정의할 필요가 있겠다.