본문 바로가기

728x90
반응형

배우기/복습노트[oracle sql]

(70)
[복습] SQL | Oracle 행의 순서 출력 ROWNUM과 FETCH + 복습후기(20231120) ROWNUM 먼저 살펴보자. 이렇게 출력해서 나오는 세 개의 행은 데이터가 입력된 순서의 행이다. ORDER BY로 EMPNO대로 정렬해도 위와같이 나온다. 이렇게 추출된 세 데이터 내에서 이름 순으로 정렬될 뿐 BLAKE라는 사원은 나오지 않는다. 참고로 ROWNUM = 3으로 하여 세 번째 행을 추출할 수도 없다. 데이터는 SELECT 절에서 출력할 때 임시번호가 붙여지는 것이지 실제로 WHERE 절에서는 3번 줄이라는 것을 알 수가 없다. 이게 ROWNUM의 단점이다. 서브쿼리가 들어가는 경우 정렬 순서대로 데이터가 순서대로 출력이 가능하다. 이름 순으로 뽑으니 BLAKE가 추출되었다. 인라인뷰로 데이터를 테이블화 하여 새롭게 정렬된 데이터를 불러오는 것이다. 이것을 FETCH 절에서 인라인뷰를 사..
[복습] SQL | Oracle 문자열의 규칙 찾기, 문자열의 일반화인 정규식 표현식(2) 지난 번 게시글에 이어서 정규식 표현식의 정리노트이다. https://metime.tistory.com/91 [복습] SQL | Oracle 문자열의 규칙 찾기, 문자열의 일반화인 정규식 표현식 + 복습후기(20231117) 정규식 표현식이란 문자열의 일반화 규칙을 표현하는 방법으로, 오라클에서는 정규식 표현식 사용가능한 문자함수를 제공하고 있다( REGEXP_REPLACE, REGEXP_SUBSTR, REGEXP_INSTR,... 이런 식으로) 정규식 metime.tistory.com [정규식 표현식] 1. REGEXP_REPLACE REGEXP_REPLACE(대상, 찾을문자열, 바꿀문자열, 검색위치, 발견횟수, 옵션) 총 이렇게 들어간다. 전 시간에는 바꿀문자열까지만 배웠었다. (abc......ab..
[실습문제] 2023. 11. 17.(금) (2문제) 실습문제 1. SEOUL_NEW 데이터에서 게시물번호, 작성날짜, 조회수를 각각 출력하여라. 데이터는 이런 형식으로 되어있다. 띄어쓰기로 구분되어 있으며 차례대로 게시글번호, 글제목, 작성날짜, 조회수 이다. 먼저 내 풀이는 아래와 같다. 게시글 번호와 작성날짜는 무난하게 추출하였다. 선생님 방법이 더 간단하지만.. 조회수를 추출할 때 뒤의 번호를 추출하는 것이 번거로워서 데이터를 뒤집어 앞 두자리를 추출한 다음 추출한 번호를 다시 뒤집었다. 그런데 더 간단하게 추출하는 방법이 있었으며, 선생님 풀이는 아래와 같다. LINE 7은 어제 내가 구글링해서 공부한 방법으로 푸셨고 이 방법은 수업시간에 설명해주셔서 따로 여기서 설명은 안 하도록 하겠다. 실습문제 2 PROFESSOR 테이블에서 ID의 값을 확인..
[복습] SQL | Oracle 문자열의 규칙 찾기, 문자열의 일반화인 정규식 표현식 + 복습후기(20231117) 정규식 표현식이란 문자열의 일반화 규칙을 표현하는 방법으로, 오라클에서는 정규식 표현식 사용가능한 문자함수를 제공하고 있다( REGEXP_REPLACE, REGEXP_SUBSTR, REGEXP_INSTR,... 이런 식으로) 정규식 표현식의 종류 1) 데이터 타입 관련 \d: 숫자 \w: (공백을 제외한)글자(문자와 숫자) → 여기서는 언더바(_)까지 포함한다. \W: 글자가 아닌 공백과 특수기호 → 여기서는 (_)언더바를 제외한다. \s: 한글자 이상의 공백(그러므로 탭도 포함됨) [[:alpha:]]: 글자 [[:digit:]]: 숫자 [[:alnum:]]: 글자(문자+숫자) [[:punct:]]: 특수기호 2) 한 글자의 특수기호 형태 ★ ^: 시작 예를 들어 ^a\w+ 하면 a로 시작하는 단어들이..
[복습] SQL | Oracle GROUP BY 의 함수 종류(GROUPING SETS, ROLLUP, CUBE) GROUP BY 절에서 가능한 함수를 알아보겠다. 부분합 출력이 목적이며, GROUP BY 결과에 추가적으로 요약된 값을 출력한다. 1. GROUPING SETS(A, B,...) → (A별) + (B별) A별 + B별 합집합을 출력한다(각각 그룹핑 연산 결과를 UNION ALL로 표현이 가능하다). 나열 순서는 중요하지 않으며, ()를 쓰지 않고는 전체 통계가 출력되지 않는다. ()나 NULL로 전달하여야 출력된다. 먼저 우리가 기존에 그룹연산을 하는 방법이다. 예) DEPTNO, JOB 별 GROUPING SETS를 이용하면 아래와 같다. DEPTNO별 JOB별 각각 출력된다. 이것을 SELECT DEPTNO, SUM(SAL) FROM EMP GROUP BY DEPTNO; SELECT JOB, SUM..
[복습] SQL | Oracle 사용자 정책 만들기 PROFILE PROFILE은 사용자 정책을 만드는 것으로, 로그온 정책 / 리소스 정책 으로 나뉜다. 로그온 정책은 패스워드 정책이라고도 하며, 사용자가 로그인 할 때 유효기간이라든가 하는 것들을 정하는 것이다. 리소스(자원) 정책은 예를 들어 접속한 지 한 시간 반이 지났을 때 세션이 완료되도록 정하거나(IDLE 타임, 휴면시간), CPU타임 등도 리소스 정책에 들어간다. 1. 조회 위와 같이 조회할 수 있으며, 대충 이해할 수 있을 만한 걸 밑줄쳐보았다. PROFILE 이름에 DEFAULT 보이는 게 DEFAULT PROFILE이다. 2. 생성 이렇게 생성하며, 아래와 같이 생성할 것들을 나열할 수 있다. 그리고 이렇게 만든 프로파일을 계정에 다음과 같이 적용할 수 있다. 3. 변경 LINE 1이 문법이며, LI..
[복습] SQL | Oracle 계정 생성하기(USER) (2) 이어서 지난 수업시간에 이어서 사용자 계정에 대하여 추가로 공부했다. https://metime.tistory.com/86 [복습] SQL | Oracle 계정 생성하기(USER) + 복습후기(20231116) DBMS네는 여러 계정이 존재하며, 계정별로 권한을 통제하고 있다. USER(계정)는 새로 생성, 변경, 삭제가 가능하다. 1. USER 생성 계정을 생성할 때에는 SYSTEM 계정에서 생성하도록 하며 NAME이라는 계 metime.tistory.com 지난 수업 시간 관련 유저생성 등은 위 링크에서 확인이 가능하다. 누적하여 계속 작성하겠다. [사용자 계정] DBMS는 업무별로 여러 유저들이 존재하며, 각 계정별로 권한이 분리되어 있다. 각 계정 소유의 여러 객체(스키마)들이 존재할 수 있다. (계정 ..
[복습] SQL | Oracle 뷰(VIEW) 정리하기 뷰(VIEW)란 테이블처럼 사용 가능한 객체(조회, 입력, 수정, 삭제 가능)로, 테이블처럼 사용이 가능하니 JOIN도 가능하다. 데이터가 따로 저장공간에 저장되지 않는다(데이터가 저장되는 것이 아니라 객체 이름이 저장됨). WITH문에서의 임시 테이블과 유사하나 영구적으로 사용 가능하도록 객체를 사용한다. QUERY의 별칭(ALIAS)같은 느낌이며(쿼리 자체에 하나의 이름을 부여), 뷰를 조회하면 뷰와 연결된 쿼리를 그때그때 실행하기 때문에 원본 테이블이 변경되어도 변경된 결과를 그대로 조회할 수 있다. WITH/뷰/테이블 공통점과 차이점 WITH문 뷰 테이블 임시적 영구적 영구적 (객체명 저장X) (CREATE 생성) (CREATE함) 데이터 저장X 데이터 저장X 데이터 저장O 1. 뷰 생성 **(컬..
[복습] SQL | Oracle 계정 생성하기(USER) + 복습후기(20231116) DBMS네는 여러 계정이 존재하며, 계정별로 권한을 통제하고 있다. USER(계정)는 새로 생성, 변경, 삭제가 가능하다. 1. USER 생성 계정을 생성할 때에는 SYSTEM 계정에서 생성하도록 하며 NAME이라는 계정을 생성하여보자. 이렇게만 하고 세션에서 접속하려고 하면 다음과 같은 에러가 뜬다. 이는 필수 상식으로, 시험에도 나오는 내용이다. USER 생성 했다고 바로 접속이 가능한 게 아니라 CREATE SESSION 권한이 있어야 접속이 가능하다. 따라서 다음에 이런 내용도 덧붙여야 한다. 연습문제를 풀어보자 새로 생긴 NAME 계정에 다음의 권한 부여 1) emp, dept, student, professor 테이블에 대한 조회 권한 scott 소유의 모든 테이블에 대해 (BIN빼고) 조회 ..
[복습] SQL | Oracle 권한에 대하여(GRANT, REVOKE) 일반적으로 본인(접속한 계정) 소유가 아닌 경우 원칙적으로 테이블 조회가 불가하다(권한이 통제되어 있음). 따라서 업무적으로 필요 시 소유자가 아닌 계정에 테이블 조회, 수정, 권한 부여가 가능하다. 권한 종류 1) OBJECT(오브젝트) 권한: 특정 테이블에 대한 권한 제어 예를 들면 테이블에 대한 SELECT, INSERT, UPDATE, DELETE, MERGE 권한이다(테이블 하나 당 두는 권한). 2) 시스템 권한: 시스템 작업(테이블 생성 등)등을 제어 예를 들면 테이블 생성 권한, INDEX 삭제 권한 등 1. 권한 부여 문법은 아래와 같다. 예) OBJECT(오브젝트) 권한 부여(어떤 테이블의 어떤 권한, 이런 정보가 들어가야 함) GRANT DBA TO SCOTT; 이런 ROLE을 통한 ..

728x90
반응형