나 취준생/SQL (54) 썸네일형 리스트형 SQL - 유저 생성, 삭제, 권한 부여, 회수 * 유저 생성하기 create user king ----> 유저 이름 identified by tiger; ----> 비밀번호 * 접속할 수 있는 권한 주기 grant connect to king; --> king에게 connect 권한을 주겠다! * king으로 접속해보기 cmd 창을 열고, sqlplus king/tiger 입력 * 접속한 이름 확인하기 show user; * 로그 아웃하기 exit 당연하지만 이렇게로그 아웃을 해줘야 다른 유저로 다시 들어갈 수 있다! * 유저 상태에서 테이블 만들기 create table emp407 ( empno number(10), ename varchar2(10) ); -- 테이블을 만드는 권한이 없어서 테이블을 만들 수 없다고 나온다. 그럼, 일단 로그아웃하.. SQL - WITH 절 WITH 절 사용하기 * 복잡한 쿼리내에 동일한 쿼리가 두번 이상 발생한 경우 사용하면 좋은 성능을 보이는 SQL " * 테스트 테이블과 같이 임시로 사용하는 데이터를 가지고 테스트 할 때도 용이하다. 예제1. 1부터 10까지의 숫자를 출력하는 SQL을 작성하기 select level as num1 from dual connect by level SQL - 다중 insert 문 지금까지는 insert 문장으로 한 번에 한 건만 입력할 수 있었다. 예시 :insert into emp ( empno, ename, sal ) values ( 1234, 'SCOTT', 3000 ) ; 그러나 다중 insert 문을 이용하면 여러 개의 테이블에 동시에 같은 데이터를 여러 개 입력할 수 있다. * 다중 insert 문의 종류 4가지 1. 무조건 all insert 문2. 조건부 all insert 문3. 조건부 first insert 문4. pivoting insert 문 1. 무조건 all insert 문 * 여러 개의 테이블에 조건 없이 한 번에 데이터를 입력하는 것 예제 : target_a, target_b, target_c 테이블을 만들고 emp 테이블의 구조와 동일하게 만들기 c.. SQL - 정규식 함수 ** 정규식 함수 데이터 검색을 좀 더 상세하게 하려 할 때, 기존의 함수로는 표현할 수 없는데이터 검색을 할 수 있게 해주는 함수 Regular expression ( 정규 표현식 ) 정규 표현식 코드는 오라클 뿐만 아니라 다른 언어에서도 공통적으로 사용하는 표현식 코드이다.오라클 10.1 버전부터 정규 표현식을 지원한다.오라클 데이터베이스는 정규 표현식의 POSIX 연산자를 지원한다.POSIX는 Portable Operation System Interface 의 약자로,시스템간 호환성을 위해 미리 정의된 인터페이스를 의미한다. Posix 연산자에는 기본 연산자, 앵커, 수량사, 서브 표현식, 역참조, 문자 리스트, posix 문자 클래스 등이 있다. * 기본 연산자 연산자 영문 설명 . dot 모든 .. SQL - 외부 테이블 (external table) ** 오라클의 테이블 종류 1. 일반 테이블 ( heap table )2. 임시 테이블 ( temp table )3. 외부 테이블 ( external table )4. 파티션 테이블 ( partition table ) 외부 테이블(external table) (1) emp.txt를 c 드라이브 밑에 data라는 폴더를 만들고 그 안에 넣기 (2) c 드라이브에 data 폴더를 오라클 디렉토리로 생성하기 create directory emp_dir as 'c:\data'; (3) 외부 테이블 생성하기 organiztion external --> external table을 생성하겠다.type oracle_loader --> data를 로드하는 엔진을 sql*loader를 사용하겠다. (자동으로 insert.. SQL - 3개 이상의 테이블 조인 3개 이상의 테이블 조인하기 * 2개의 테이블 조인 연결 고리 1개emp ----------------------------- dept * 3개의 테이블 조인 연결 고리 (and) 연결 고리dept ----------------------------- emp ----------------------------- salgrade e.deptno=d.deptno and e.sal between s.losal and s.hisal 예제 : 이름과 부서위치와 월급과 부서번호를 출력하기 select d.loc, e.sal, e.deptno from emp e, dept d where d.deptno=e.deptno 예제 : 이름과 부서위치와 급여등급을 출력하기select e.ename, d.loc, s.grade.. SQL - 데이터의 품질 높이기 ( 테이블 제약 걸기 ) 데이터 분석을 하다보면 가장 많은 시간을 할애하는 작업은 데이터 전처리. 품질이 높은 데이터를 처음부터 입력받도록 강제화하면 나중에 데이터 전처리에 많은 시간을 들이지 않아도 된다. 그래서 데이터 품질을 높이기 위한 한 방법으로 제약을 사용한다. 그래서 처음부터 테이블에 데이터를 입력받을 때부터 엄격한 기준으로 데이터를 입력하도록 제약을 건다. * 제약의 종류 1. PRIMARY KEY : 중복된 데이터와 null 값을 허용하지 않게 하는 제약2. UNIQUE : 중복된 데이터를 허용하지 않게 하는 제약3. NOT NULL : null 값을 허용하지 않게 하는 제약4. CHECK : 특정 데이터 외 다른 데이터는 입력되지 못하게 하는 제약5. FOREIGN KEY : 참조하는 컬럼에 거는 제약 * PRI.. SQL - 실수로 지운 데이터 복구하기 1. 실수로 지운 데이터 복구하기 ( FLASHBACK QUERY ) 오라클은 10g 버전부터 타임 머신 기능이 생겼다. 그래서 타임 머신 기능을 이용해서 과거의 데이터를 확인할 수 있고테이블을 과거로 되돌릴 수가 있다. flashback query는 과거의 데이터를 확인하는 기능이다. 예 :delete from emp; commit; 사라져버린 emp 테이블commit 까지 해버렸다. * 10분 전에 있었던 emp 테이블 상태를 확인하기 select * from emp as of timestamp( systimestamp - interval '10' minute ); 그럼 일단 이걸 그대로 emp 백업 테이블에 저장하고, create table emp_backup_20201111 as select * .. 이전 1 2 3 4 5 6 7 다음