전체 글
-
유저와 권한데이터베이스 2021. 5. 20. 20:28
Oracle 과 SQL Server 의 유저 Oracle 과 SQL Server 의 사용자에 대한 아키텍처는 다른 면이 많다. Oracle 은 유저를 통해 데이터베이스에 접속한다. 즉 아이디와 비밀번호 방식으로 인스턴스에 접속하고 그에 해당하는 스키마에 오브젝트 생성 등 권한을 부여받는다. SQL Server 는 인스턴스에 접속하기 위해 로그인이라는 것을 생성하게 되고, 인스턴스 내 존재하는 다수의 데이터베이스에 연결해 작업을 하기 위해 유저를 생성 후 로그인과 유저를 매핑해줘야한다. 더 나아가 특정 유저는 특정 데이터베이스 내의 특정 스키마에 대한 권한을 부여받을 수 있다. 로그인 방식에는 마이크로소프트 윈도우 운영체제 인증방식으로 로그인하는 방법과 혼합 모드방식으로 윈도우 인증으로도 접속 가능하고, ..
-
트랜젝션데이터베이스 2021. 5. 20. 20:03
트랜젝션은 데이터베이스의 논리적 연산단위이다. 트랜젝션이란 밀접히 관련돼 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜젝션에는 하나 이상의 SQL 문장이 포함된다. 트랜젝션은 분할할 수 없는 최소의 단위이다. 그러므로 전부 적용하거나 전부 취소한다. ALL OR NOTING 의 개념이다. 계좌이체 같은 하나의 논리적인 작업 단위를 구성하는 세부적인 연산들의 집합을 트랜젝션이라 한다. (100번 계좌에서 5천원을 뺀다. + 200번계좌 잔액에 5천원을 더한다.) 이런 관점에서 데이터베이스 응용 프로그램은 트랜젝션의 집합으로 정의할 수도 있다. 트랜젝션을 제어하는 명령문 - TCL COMMIT, ROLLBACK, SAVEPOINT 명령어가 있다. 트랜젝션의 대상 대상이 되는 SQL..
-
MERGE데이터베이스 2021. 5. 20. 19:20
MERGE 문을 사용하면 새로운 행을 입력하더나, 기존 행을 수정하는 작업을 한 번에 할 수 있다. MERGE INTO 타켓 테이블명 USING 소스 테이블명 ON 조인 조건식 WHERE MATCHED THEN UPDATE SET 수정할 컬럼 = 수정할 값 WHEN NOT MATCHED THEN INSERT [(컬럼1,컬럼2..)] VALUES (값1,값2...); TEAM_TMP 테이블을 이용해 TEAM 테이블에 정보를 수정/입력한다. MERGE INTO TEAM T USING TEAM_TMP S ON (T.TEAM_ID = S.TEAM_ID) WHEN MATCHED THEN UPDATE SET T.TEAM_ID= S.TEAM_ID ,T.TEAM_NAME = S.TEAM_NAME ,T.REGION_NA..
-
정규 표현식 (POSIX /PERL)데이터베이스 2021. 5. 17. 01:22
정규표현식은 문자열의 규칙을 표현하는 검색 패턴으로 주로 문자열 검색과 치환에 사용된다. REGEXP_LIKE REGEXP_REPLACE REGEXP_SUBSTR 1. POSIX 연산자 연산자 영문 설명 . dot 모든 문자와 일치 | or 대체 문자를 구분 \ backslash 다음 문자를 일반 문자로 취급 select -- dot 이 있는 자리에 어떤 문자도 올 수 있다. REGEXP_SUBSTR('aab','a') as C1 -- a ,REGEXP_SUBSTR('aab','a.b') as C2 --aab ,REGEXP_SUBSTR('aab','a.') as C3 -- aa ,REGEXP_SUBSTR('aab','.b') as C4 -- ab ,REGEXP_SUBSTR('abb','a.b') as C..
-
PIVOT , UNPIVOT데이터베이스 2021. 5. 16. 22:27
PIVOT PIVOT 은 회전시킨다는 의미를 갖고 있다. PIVOT 절은 행을 열로 회전시킨다. PIVOT [ XML ] ( aggregate_function (expr) [[AS] ALIAS] // 집계할 열을 지정 [,aggregate_function (expr) [[AS] ALIAS] ] FOR { column | (column[,column..])} // PIVOT 할 열을 지정 IN ({ { {expr | (expr[,expr]..)} [[AS] alias ]} // PIVOT 할 열 값을 지정 | subquery | ANY [,ANY] }) ) aggregate function : 집계할 열을 지정 FOR : PIVOT 할 열을 지정 IN : PIVOT 할 열 값을 지정 SELECT * FRO..
-
계층형 질의데이터베이스 2021. 5. 16. 21:15
셀프조인 셀프조인이란 동인한 테이블 사이의 조인을 말한다. 따라서 from 절에 동일 테이블이 두 번이상 나타난다. 동일 테이블 사이의 조인을 수행하면 테이블과 컬럼 이름 모두 동일하므로 식별을 위해 반드시 테이블 별칭을 사용해야 한다. JONES 의 자식 노드를 조회하는 쿼리 (MGR가 JONES 의 EMPNO 인 행) SELECT B.EMPNO, B.ENAME, B.MGR FROM EMP A, EMP B WHRE A.ENAME = 'JONES' AND B.MGR = A.EMPNO; JONES 의 자식의 자식 노드를 조회하는 쿼리 (MGR이 JONES 의 자식인 SCOTT 와 FORM 의 EMPNO 인 행) SELECT C.EMPNO, C.ENAME, C.MGR FROM EMP A, EMP B, EMP..
-
TOP N 쿼리데이터베이스 2021. 5. 15. 16:10
ROWNUM / TOP N / ROW LIMITING 의 사용 1. ROWNUM ORACLE 에서 가져오고자하는 행 수를 제한할 때 ROWNUM < 2 와 같이 사용할 수 있다. 그런데 ORDER BY 로 정렬된 순의 데이터를 출력하고자 하는 의도는 ROWNUM을 잘못 사용 하는 것이다. 아래 ORDER BY 는 급여 순으로 정렬하고 위에 3개 행을 결과로 출력하는 것을 원했다면 원하는 결과가 나오지 않는다. 랜덤으로 데이터롤 3개 뽑은 후 그 데이터를 정렬해서 출력한다. ORDER BY 는 결과에 영향을 주지 않는다. SELECT ENAME, SAM FROM EMP WHERE ROWNUM < 4 ORDER BY SAL DESC; ORDER BY 가 없다면 ORACLE 의 ROWNUM 조건과 SQL SE..
-
윈도우 함수데이터베이스 2021. 5. 15. 14:26
기존 관계형 데이터베이스는 컬럼과 컬럼 간의 연산, 비교, 연결이나 집합에 대한 집계는 쉬운 반면, 행과 행간의 관계를 정의하거나 행과 행간을 비교, 연산하는 것을 하나의 SQL 에서 처리하는 것은 매우 어려운 문제였다. 부분적이나마 이를 쉽게 하기 위해 만든 함수가 바로 WINDOW FUNTION 이다. 분석함수, 순위 함수로 알려진 윈도우 함수는 데이터 웨어하우스에서 발전한 기능이다. 윈도우 함수는 기존의 사용하던 집계함수도 있고, 새로이 윈도우 전용 함수로 만들어진 기능도 있다. 그리고 윈도우 함수는 다른 함수와 달리 중접해서 사용하지는 못하지만, 서브 쿼리에서는 사용할 수 있다. 종류는 크게 다섯 개의 그룹으로 분류할 수 있다. 그룹 내 순위(RANK) 함수 RANK DENSE_RANK ROW_N..