생능_ORACLE배움터_03장. 오라클 11g 설치하기
- 오라클 설치/삭제, Sql Developer 설치
- 기본 정보 확인
- 참조 : https://aileen93.tistory.com/17
- 초기 자동 생성 사용자
- sys 또는 system : DBA 계정
- scott (암호 tiger) : 일반 계정
- 오류 발생 : ERROR: ORA-28000: the account is locked
- 해결 : DBA로 접속한 후 다음 SQL 실행
- ALTER USER scott ACCOUNT UNLOCK;
- 계정 확인
- SELECT * FROM dba_users; <– DBA계정만 dba_users 뷰 사용 가능
- SELECT * FROM all_users; <– 일반 사용자는 all_users 뷰 사용, 목록 보기
- username, user_id, created 만 보여줌
- 테이블 목록 보기
- SELECT * FROM tab;
- 사용자 또는 롤에게 부여된 시스템 권한 확인
- SYS 계정 : SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=’SYS’;
- DBA 롤 : SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=’DBA’;
- 사용자에게 부여된 롤 확인
- SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE=’SYS’;
- 타 사용자에게 부여한 객체(테이블 등) 권한 확인
- SELECT * FROM DBA_TAB_PRIVS WHERE OWNER=’SYS’;
- SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE=’SYS’;
- 사용자가 소유한 모든 테이블 확인
- SELECT * FROM USER_TABLES;
- 사용자 등록
12345CREATE USER KIM IDENTIFIED BY blueskyDEFAULT TABLESPACE usersTEMPORARY TABLESPACE temp;grant connect, resource, create session, create view to KIM;- 권한 종류
- CONNECT : 데이터베이스에 연결할 수 있는 권한
- RESOURCE : 테이블의 모든 권한
- CREATE USER : 데이터베이스 유저 생성 권한
- SELECT ANY TABLE : 모든 유저의 테이블 조회 권한
- CREATE ANY TALBE : 모든 유저의 테이블 생성 권한
- CREATE SESSION : 데이터베이스 접속 권한
- CREATE TABLE : 테이블 생성 권한
- CREATE VIEW : 뷰 생성 권한
- CREATE PROCED USER : 프로시저 생성 권한
- CREATE SEQUENCE : 시퀀스 생성 권한
- SYSDBA : 데이터베이스 최고 관리 권한
- SYSOPER : 데이터베이스 관리 권한
- 권한 종류
- 사용자에게 권한 부여
- GRANT RESOURCE, CONNECT TO scott;
- 사용자 제거
- DROP scott CASCADE;
- 테이블 생성 및 삽입, 뷰 생성 : CREATE
12345678910111213141516171819202122232425262728293031323334353637383940-- DEPARTMENT 테이블 생성CREATE TABLE DEPARTMENT (DEPTNO NUMBER NOT NULL,DEPTNAME CHAR(10),FLOOR NUMBER,PRIMARY KEY(DEPTNO));INSERT INTO DEPARTMENT VALUES(1, '영업', 8);INSERT INTO DEPARTMENT VALUES(2, '기획', 10);INSERT INTO DEPARTMENT VALUES(3, '개발', 9);INSERT INTO DEPARTMENT VALUES(4, '총무', 7);-- EMPLOYEE 테이블 생성CREATE TABLE EMPLOYEE (EMPNO NUMBER NOT NULL,EMPNAME CHAR(10) UNIQUE,TITLE CHAR(10) DEFAULT '사원',MANAGER NUMBER,SALARY NUMBER CHECK (SALARY < 6000000),DNO NUMBER DEFAULT 1 CHECK (DNO IN (1,2,3,4)),PRIMARY KEY(EMPNO),FOREIGN KEY(MANAGER) REFERENCES EMPLOYEE(EMPNO),FOREIGN KEY(DNO) REFERENCES DEPARTMENT(DEPTNO) ON DELETE CASCADE);INSERT INTO EMPLOYEE VALUES(4377, '이성래', '사장', NULL, 5000000, 2);INSERT INTO EMPLOYEE VALUES(3426, '박영권', '과장', 4377, 3000000, 1);INSERT INTO EMPLOYEE VALUES(3011, '이수민', '부장', 4377, 4000000, 3);INSERT INTO EMPLOYEE VALUES(3427, '최종철', '사원', 3011, 1500000, 3);INSERT INTO EMPLOYEE VALUES(1003, '조민희', '과장', 4377, 3000000, 2);INSERT INTO EMPLOYEE VALUES(2106, '김창섭', '대리', 1003, 2500000, 2);INSERT INTO EMPLOYEE VALUES(1365, '김상원', '사원', 3426, 1500000, 1);-- EMP_PLANNING 뷰 생성CREATE VIEW EMP_PLANNINGASSELECT E.EMPNAME, E.TITLE, E.SALARYFROM EMPLOYEE E, DEPARTMENT DWHERE E.DNO=D.DEPTNO AND D.DEPTNAME='기획'; - 테이블 구조 확인 : DESC
123DESCRIBE DEPARTMENT;또는DESC DEPARTMENT; - 테이블 생성 및 수정 : ALTER
123456789CREATE TABLE PROJECT(projno NUMBER NOT NULL,projname CHAR(15) NOT NULL,budget NUMBER);ALTER TABLE PROJECT ADD Manager NUMBER;ALTER TABLE PROJECT DROP COLUMN Manager;
- …