본문 바로가기

공부/Oracle26

오라클 SQL 문법 공부24- CREATE TABLE 과 제약조건 서론 기본적인 DML 문법들은 끝이 난 것 같고 데이터를 SELECT, INSERT, UPDATE, DELETE 한다는 것은 특정 테이블의 데이터를 조작한다는 것이다. 조작을 하려면 당연히 테이블이 존재해야 하는데 이제 DDL 중에 하나인 CREATE TABLE.. 에 대해서 알아보고자 한다. 본론 기본 문법 --CREATE(생성하기) --컬럼명 데이터형 뒤에 DEFAULT SYSDATE 라고 하면 기본 값으로 들어간다. --TABLE SPACE USERS; --테이블을 저장하기 위해서 테이블을 묶어놓은 공간, 폴더 같은 공간, 논리적인 공간이다. --테이블이 만들어 질때 하나의 테이블스페이스 소속이 되어있어야 한다. --테이블들의 성격을 구분짓기 위한 테이블들의 집합체..? 성능상의 차이는 거의 없다... 2018. 3. 26.
오라클 SQL 문법 공부23- DELETE 와 TRUNCATE 서론 이번에는 테이블의 데이터를 지우는 DELETE 문에 대해서 알아보고자 한다. DELETE 문은 DML이라고 데이터 조작어이다. 말 그대로 데이터를 조작, DELETE이니 데이터를 조작하여 삭제하는 것이고 제목에서 표기한 TRUNCATE은 테이블의 모든 데이터를 즉시 삭제하는 명령어이며 DDL, 데이터 정의어 이다. 이 두가지의 가장 큰 차이점이라면 바로 COMMIT과 ROLLBACK은 DML에서 사용하는 것이고 DDL은 테이블을 생성하거나 수정, 삭제 할때 사용하는 것이며 명령어를 치는 즉시 실행이 된다. DML은 방금 실행한 명령어를 취소할 수 없다는 것이다. DELETE문과 TRUNCATE를 사용하는 방법은 아래에서 확인하자. 본론 DELETE --DELETE --DELETE 문장은 데이터를 삭.. 2018. 3. 22.
오라클 SQL 문법 공부22- UPDATE 문 서론 이번에는 기존에 저장 되어있는 데이터를 변경해주는 UPDATE 문에 대해서 알아보고자 한다. UPDATE문은 특정 데이터만 변경하는 경우가 많기 때문에 WHERE 조건을 잘 명시해주어야 한다. 제대로 해주지 않으면 변경되지 않아야 하는 데이터도 변경이 되어버리기 때문에 조심해서 사용해야 한다. 본론 오다이바 --UPDATE --UPDATE 문장은 기존 데이터를 다른 데이터로 변경할 때 사용하는 방법입니다. --UPDATE TABLE_NAME --SET COLUMN = VALUE --WHERE 조건; --PROFESSOR 테이블에서 차범철 교수의 직급과 동일한 직급을 가진 교수들 중 현재 급여가 250만원이 안되는 경수들의 급여를 15% 인상하세요. --차범철 교수와 직급이 같은 교수들 중 급여가 2.. 2018. 3. 21.
오라클 SQL 문법 공부21- INSERT 문과 COMMIT, ROLLBACK 서론 오랜만에 오라클에 관련되서 글을 작성하는 것 같다. 이것저것 준비하느라 한동안 손을 놓았는데 조금씩 오라클에 관해서도 계속해서 올려볼까 한다. 이번에는 SELECT 이후에 데이터를 입력하는 INSERT문에 대해서 알아보고자 한다. 본론 오다이바 -- INSERT -- INSERT 명령어는 테이블에 새로운 데이터를 입력할 때 사용하는 명령어입니다. -- 데이터를 입혁할 때 숫자 값 이외에는 데이터를 '(홑따옴표)로 감싸야 합니다. -- 1)INSERT 를 사용하여 단일 행 입력하기 -- 문법 -- INSERT IN TO TABLE[(COL1, COL2...)] -- VALUES(VALUE1, VALUE 2.....); -- 1. 테이블의 전체 컬럼에 대한 값을 입력할때 -- INSERT INTO TA.. 2018. 3. 21.
오라클 SQL 문법 공부20- INLINE VIEW(인라인 뷰), 스칼라 서브쿼리 서론 서브쿼리에 이어 테이블처럼 사용되는 인라인 뷰에 대해서 알아보고자 한다. 보통 서브쿼리와 인라인 뷰가 괄호안에 있는 쿼리라 다 같은 서브쿼리라 생각할 수도 있지만 부르는 명칭은 확실히 다르다. WHERE절에 사용되는 서브쿼리는 말 그대로 서브쿼리이며 FROM 절에 테이블 명 대신 사용되는 서브쿼리형식이 바로 인라인 뷰라고 한다. 본론 INLINE VIEW(인라인 뷰)--INLINE View (인라인 뷰) --vIEW는 필요할 때 생성한 후 계속 여러 번 반복해서 재사용할 수 있습니다. --그러나 여러 번 사용할 필요 없이 1회만 필요한 View일 경우 SQL 문장의 FROM 절에 View 의 --서브쿼리 부분을 바로 적어주면 되며 이런 1회용 View를 INLINE View라고 합니다. --stud.. 2017. 11. 14.
오라클 SQL 문법 공부19- 서브쿼리(Sub Query) 서론 이번에는 조인 만큼 중요한 서브쿼리에 대해서 알아보겠다. 서브쿼리는 SELECT절에서 사용하는 스칼라 서브쿼리, FROM절에서 사용하는 인라인뷰, WHERE절에서 사용하는 서브쿼리가 있다. 간단히 말해 쿼리 안에 또 쿼리가 있는 것들을 보고 서브쿼리라고 한다. 본론 서브쿼리? --Sub Query (서브쿼리) --1) Sub Query 란? --Query안에 또 다른 Query가 있는 경우의 SQL 문장을 의미함 --SELECT (SELECT ....) -- 스칼라 서브쿼리, 성능상 문제가 많은 쿼리 --FROM (SELECT ....) -- 인라인뷰 --WHERE (SELECT ....) -- 서브쿼리 --2)사용목적 --SQL을 작성할 때 질문이 여러 가지가 한꺼번에 나오는 경우 여러번 SQL을.. 2017. 11. 7.
오라클 SQL 문법 공부18- SELF JOIN, 분석함수(RANK() OVER) 서론 이번에는 자기 자신 테이블을 두개 JOIN을 하여 처리하는 SELF JOIN에 대해서 알아보고자 한다. 보통 한 테이블에 기본키 외에 기본키에 대한 상위 관리자등의 리스트가 있거나 테이블 내에서 얻고자 하는 정보가 있을경우 사용된다. 본론 SELF JOIN --조인하고자 하는 대상이 보인 테이블에 존재하는 경우의 조인이다. --단 한번의 테이블 ACCESS로는 원하는 결과값을 가져올 수 없을 때 사용한다. --OUTER 조인을 자주 사용함 SELECT E1.ENAME AS 사원이름, E1.SAL, E2.ENAME AS 상위관리자명, E2.SAL FROM EMP E1, EMP E2 WHERE E1.MGR = E2.EMPNO(+); --AND E1.SAL > E2.SAL; SELECT D1.DNAME,.. 2017. 11. 2.
오라클 SQL 문법 공부17 - JOIN (OUTER JOIN) 서론 이번에는 조인 중 아우터 조인에 대해서 알아보고자 한다. 아우터 조인은 매칭되는 값이 없을 경우 표현되지 않았던 EQUI JOIN, NON EQUI JOIN에 비해 매칭이 되지 않아도 기준이 되는 테이블의 값들은 표시되는 것을 말한다. 아래 내용을 살펴보자. 본론 OUTER JOIN --OUTER JOIN (아우터 조인) --EQUI JOIN의 조인 조건에서 양측 칼럼 값 중, 어느 하나라도 NULL이면 -- = 비교 결과가 거짓이 되어 NULL 값을 가진 행은 출력되지 않는다 --EQUI JOIN에서 양측 칼럼 값 중의 하나가 NULL 이지만 --조인 결과로 출력할 필요가 있는 경우 OUTER JOIN 이 사용된다 --WHERE 절의 조인 조건에서 OUTER JOIN 연산자인 (+) 기호 사용 -.. 2017. 10. 31.
오라클 SQL 문법 공부16 - JOIN (EQUI JOIN, NON EQUI JOIN) 서론 여태까지 기본적인 조건에 의한 데이터들을 가공하여 조회 하였다면 여러 테이블들을 합해서 결과를 만들어내는 JOIN에 대해서 알아보고자 한다. 본론 JOIN? --JOIN이란 --여러 테이블의 데이터를 질의 할 경우 사용된다 --WHERE 절에서 조인 조건을 작성한다. --동일한 열 이름이 여러 테이블에 있는 경우 열 이름 앞에 테이블 이름이나 테이블 ALIAS를 붙인다 --N개의 테이블을 조인하려면 최소 N-1개의 조인 조건이 필요하다 --Cartesian Product --N개의 행을 가진 TABLE1과 M개를 가진 TABLE2의 카티시안 곱은 N*M 이다. --카티시안 곱은 다음 경우에 생성된다. --조인 조건을 생략한 경우 --조인 조건이 부적합할 경우 --첫번째 테이블의 모든행이 두번째 테이.. 2017. 10. 30.