본문 바로가기

728x90
반응형

배우기

(265)
[복습] data를 unload 하는 방법 및 데이터 DB화 방법 두 가지 + 복습(20231107) data를 unload 하는 것은 DB화 되어있는 자료를 다시 file로 만든다는 의미이다. orange tool에서 Tools 에 Unload Tool로 들어간다. 그 다음에 아래와 같이 뜨면 접속하고자 하는 계정 Connect한 후에 unload 하고자 하는 테이블을 선택하면 아래와 같이 뜬다(emp 선택) 그 다음에 Data File에서 저장 경로와 원하는 저장 포맷을 설정한 뒤에, File Format과 Separator에서 원하는 데이터 구분 형식을 설정한 후에 RUN을 누르면 자료를 받을 수 있다. 다음은 데이터 insert하는 두 가지 방법이 있다. (1) insert 구문 그대로 orange에서 실행하는 방법 심플한 방법이지만 데이터 양이 많은 경우 엄청 느리며 작업 중에 orange가 꺼..
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 TRUNCATE 4) TRUNCATE 테이블 전체 삭제 명령어인데 구조를 변경하는 DDL에 포함되어있는 게 특징이다. auto commit이기 때문이며, 즉시 반영되고 rollback으로 돌릴 수 없다. recyclebin에도 남아있지 않으며 redo log에도 기록을 하지 않는다. 즉 '데이터 변경 내용을 저장하지 않고 즉시 삭제' 하는데 이 의미는 (1) 데이터 변경 내용을 어딘가에 저장하고 동작이 되게끔 하면 다시 과거로 갈 수 있다. 그런데 저장하지 않는다고 하니 복구가 되지 않는다는 의미이다. 데이터를 삭제하면 redo에서 다시 데이터를 긁어오는건데 그렇게 되지 않는다. (2) 속도의 차이가 많이 발생하므로 전체 데이터를 싹 지우면 속도가 더 빨라짐. 예를들어 100기가 테이블 사이즈를 delete로 지우면 기..
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 ALTER DDL 의 ALTER를 공부했다. 3) ALTER alter로는 구조변경을 할 수 있다. 구조변경에는 컬럼명, 컬럼 데이터타입, 컬럼 사이즈, default 값, 컬럼삭제, 컬럼추가, 제약조건 등이 있다. 컬럼 순서는 절대 바꿀 수 없다(재생성으로 해결할 것). 가. 컬럼추가 새로 추가된 컬럼은 맨 마지막 컬럼으로 배치가 된다(중간에 위치하게 할 수 없음) 컬럼 추가 시 데이터타입 입력은 필수이며, default값, 제약조건은 명시할 수 있다. 여러 컬럼 동시에 추가가 가능하다(반드시 괄호 사용해야 함) 문법은 -- 순서 위반하면 에러 뜸. 단일 컬럼 추가시에는 괄호를 생략할 수 있으나 동시 추가시에는 괄호 필수이다. 위의 코드를 실행해보면 단일컬럼 생성인 첫 줄과 둘 째줄은 잘 실행되나 여러 컬럼을 동..
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 DROP 어제 배운 DDL의 CREATE 잠깐 언급하고 바로 DROP으로 넘어가겠다. DDL(Data Definition Language): CREATE, DROP, ALTER, TRUNCATE DDL은 Auto commit을 지원한다. 1) CREATE 문법 위 포맷을 근거로, 다음 중 테이블을 만들 때 정의되지 않는 것은? 이라는 문제도 SQLD에 출제된다. create table table_name as select * from org_name; 위처럼 CTAS 할 때 original table의 컬럼명, 컬럼순서, 데이터 타입, not null 속성 그대로 복제되며, not null을 제외한 나머지 제약조건은 복제되지 않는다. create table table_name as select * from emp..
[복습] 2023. 11. 6.(월) 문제 풀이(5문제) 실습문제 1. emp2, p_grade 테이블을 사용하여 각 직원의 나이를 기준으로 직원의 이름, 사번, 생년월일, 나이, 현재 직급(position), 예상 직급(나이로 계산한 직급), 예상 직급에 맞는 최저연봉과 최고연봉 기준을 모두 출력하여라. 내 풀이 먼저 작성하자면, 스칼라 서브쿼리로 작성하였다. select 절에 컬럼을 하나하나 넣어야 한다는 압박감(?)이 있어서 저렇게 생각해냈는데 선생님 해설은 달랐다. 조건절에서 그냥 바로 필터링하여 select절로 올려버리셨는데, 저 방법이 더 간단한 것을 왜 나는 복잡하게 접근했을까. 실습문제 2. emp 테이블을 사용하여 각 직원의 이름과 상위관리자 이름을 출력하여라. 단, 상위관리자가 없을 경우 본인의 이름을 출력하여라(스칼라서브쿼리 활용할 것) 실..
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 CREATE + 복습후기(20231106) 오늘 배운 내용은 SQLD 시험에 나오는 내용들이다. SQL의 분류 1. DDL(Data Definition Lanuage): 객체를 정의하는 언어. 객체 자체를 만들고 삭제하고 수정 등을 수행한다(auto commit). - CREATE, DROP, ALTER, TRUNCATE(데이터를 삭제하는데 2.에도 DELETE가 있지만 TRUNCATE는 DDL에 속한다. auto commit이기 때문이다.) 1) create: object_name이 들어오는 것처럼 객체에 대한 이해가 중요하다. 제일 많이 쓰이는 create는 create table 이다. ★ 테이블 명명 규칙(변수의 명명규칙과 비슷) - 테이블 이름은 반드시 문자로 시작(숫자 시작 불가). 특수문자 가능(" "로 감싸야 하나 사용을 권장하지 ..
[복습] SQL | Oracle join 넘어 또 산, 서브쿼리 (3) 마지막 서브쿼리인 스칼라 서브쿼리 여기서 스칼라 란 '하나의'라는 뜻이며, 스칼라 서브쿼리는 select절에 사용되는 서브쿼리이다(컬럼처럼 쓰기 위함). 스칼라 서브쿼리는 각 행마다 하나의 행이 리턴되어야 한다. join의 대체 문법이기도 하다. 예시로 살펴보자. 예) 각 직원의 이름, 급여, 부서명을 출력하여라(단, 부서명은 스칼라 서브쿼리로 표현할 것). 이렇게 표현하면 ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 라는 ORA 메시지가 출력된다. 스칼라 서브쿼리만을 선택해서 실행하면 아래와 같이 보이듯이, 각 행마다 출력되는 서브쿼리 결과가 총 4개이기 때문이다. 이렇게 표현하면 ORA-00904: "D"."DEPTNO": 부적합한 식별자 라는 ORA 메시지가 뜬다. 앞..
[실습문제] 2023. 11. 3.(금) 문제 풀이(5문제) 실습문제 1. professor, department, student 테이블을 사용하여 position별로 가장 적은 급여(pay)를 받는 교수의 이름, position, pay, 학과명, 지도학생수를 출력하여라. 다중컬럼 서브쿼리 / 인라인뷰 / 상호연관 서브쿼리로 작성 1) 다중컬럼 서브쿼리 결과이다. 2) 인라인뷰 결과이다. 3) 상호연관 서브쿼리 결과이다. 내가 풀 땐 다 풀었고, 선생님 해설 들었을 때 맞은 거 확인했는데 왜 또 다시 풀려고 하면 못 풀지? 아직 개념이 잡히지 않은건가. 어쨌든, 상호연관 서브쿼리는 속도가 대체적으로 느리지만 테이블 수가 많은 경우는 간혹 성능이 높을 수는 있다. 그러나 가급적 안 쓰는 편이라고 한다. 실습문제 2. student, exam_01, departme..
이해한대로 적어보는 SQL 표준이 중요한 이유 업무를 이해할 때 DB를 이해하는 것이 좋다. 먼저 DBMS란 메모리와 디스크의 결합으로 이루어져있는데, DBMS의 메모리를 인스턴스(instance)라고 부른다. 처음에 오라클 DBMS을 설치할 때 우리는 단일 인스턴스를 설치했다. https://metime.tistory.com/46 여기서 5번에 보면 단일 인스턴스 vs RAC 를 선택하라고 되어있는데 RAC는 인스턴스가 여러 개인 것이다. 인스턴스가 세 개인데 하나의 디스크에 물린 것을 3노드 RAC라고 한다. 동시 접속자가 많으면 노드가 세 개까지 간다고 하셧다. 3노드 RAC가 꺼지면, 중단이 되어 장애가 발생되더라도 intter connect가 설계되어 있기 떄문에 장애가 발생하더라도 사용자들은 문제 없이 서버 사용이 가능하다. 즉, 한 쪽 ..
orange(oracle tool)에서의 몇 가지 단축키 oracle tool 중의 하나인 orange에서의 몇 가지 단축키를 정리해둔다. 1. ctrl + o: file 열기 2. ctrl + s: 탭 저장 3. ctrl + t: 새로운 탭 열기 4. ctrl + n: new session 으로 접속. scott 계정에서 hr 계정 등으로의 접속 여기서 계정의 변경이 필요한 이유는 테이블 소유자는 자신이 테이블만 접속이 가능하다. 그러므로 hr 테이블로의 접근이 필요하다면 hr 계정으로 접속하여야 한다. 5. ctrl + -: 선택영역 주석처리. 주석처리 해재는 ctrl + shift + - 6. ctrl + u: 선택영역 소문자 변경 7. ctrl + shift + u: 선택영역 대문자 변경 8. ctrl + shift + f: query 줄 맞추기( qu..

728x90
반응형