[오라클]/SQL 10

sequence, index

1) sequence CREATE SEQUENCE bisang_seq; SELECT bisang_seq.nextval FROM dual; --다음 시퀀스 보기 SELECT bisang_seq.currval FROM dual; --현재 시퀀스 보기 --조건 작성 CREATE SEQUENCE test_seq INCREMENT BY 1 --1씩 증가 START WITH 10 --10부터 시작 MAXVALUE 30000 --최대 30000까지 NOCYCLE --반복X, 30000 도달하면 끝, 이거 없으면 max 도달하고 다시 돔 NOCACHE; --기본값 20, 20까지 캐시메모리에 넣어놈 그래서 빠르게 추가가 가능하나 캐시메모리에 문제가 생길 경우 숫자가 어긋남 --게시판에서는 SELECT max(num)+..

[오라클]/SQL 2020.12.26

view

view: 일부 테이블 추출개념, 테이블 소스는 볼수 없고 문장만 볼수 있기때문에 보안성이 강함 - view 만들기: CREATE OR REPLACE VIEW view_12000 AS SELECT * FROM employees WHERE salary>12000; --view_12000가 없으면 생성, 있으면 수정 --view를 수정 가능하게 하기 위해 무조건 CREATE OR REPLACE 사용 Q) 부서별로 최소봉금, 최대봉급, 평균봉급 view만들기(출력은 부서명,min,max,avg) CREATE OR REPLACE VIEW salary_view AS SELECT department_id 부서명, min(salary) min, max(salary) max, avg(salary) avg FROM em..

[오라클]/SQL 2020.12.26

제약조건

constraint: 무결성을 위해 - 종류: pk,fk,not null, unique,check - 제약조건 방식 2가지 1) column level 방식: 칼럼명에 이어서 2) table level 방식: 제약조건을 마지막에 모아서 제약조건 중 not null 은 무조건 column level 방식 - 사용법: constraint 제약조건이름(테이블명_칼럼명_제약조건약어) 제약조건종류 (이름이 있어야지 나중에 dictionary에서 찾을 수 있음) - column level 방식 CREATE TABLE memtable ( memname VARCHAR2(20) CONSTRAINT memtable_memname_pk PRIMARY KEY, memtel VARCHAR2(20) CONSTRAINT memta..

[오라클]/SQL 2020.12.26

decode

decode: 다항연산자(대상 칼럼, 조건, yes처리, no처리) Q) 사원 직책에 따라 급여를 인상 지급하고자 한다. 직책에 'Manager'가 포함된 사원은 급여를 인상하여 1.1를 지급하고 나머지 직원들에 대해서는 1.5를 지급하고자 한다. 이 경우 이름, 직책, 인상된 급여를 조회 출력하시오 SELECT e.first_name 이름, j.job_title 직책, e.salary 급여, decode(substr(j.job_title,-7),'Manager',e.salary*1.1,e.salary*1.5) 인상된급여 FROM jobs j, employees e WHERE e.job_id=j.job_id; --substr(j.job_title,-7) : 뒤에서부터 7글자 조건을 계속 추가할 수 있음 ..

[오라클]/SQL 2020.12.26

dictionary

dictionary : 테이블,뷰 등의 정보를 볼수 있음 SELECT * FROM dictionary; --USER_ ... 소유권이 사용자(me)인 객체 정보가 들어있다 --ALL_ owner system: all 접두사가 있으면 사용자가 접근 가능 --DBA_ : dba 권한을 소유한 자만이 접근 가능 --V$ : 모든 정보를 다 가지고 있음 SELECT * FROM dictionary WHERE table_name LIKE 'USER_%'; SELECT * FROM user_objects WHERE object_type = 'TABLE'; --내가 만든건 보통 USER_ -- WHERE 조건에서 검색할땐 무조건 대문자로 쓰기

[오라클]/SQL 2020.12.26

SAVEPOINT

savepoint를 통해 해당 상태를 기억해놨다가 rollback to 명령어를 통해 해당 savepoint로 돌아갈 수 있음 SELECT * FROM teltable; INSERT INTO teltable VALUES(999, '손흥민', '010-7777-7777', sysdate); SAVEPOINT point1; INSERT INTO teltable VALUES(777, '메시', '010-1010-1010', sysdate); SAVEPOINT point2; UPDATE teltable SET NAME='박찬호' WHERE id=2; SAVEPOINT point3; INSERT INTO teltable VALUES(888, '호날두', '010-1010-1010', sysdate); ROLLBA..

[오라클]/SQL 2020.12.26

유저 생성 및 권한

--유저 생성 CREATE USER babo IDENTIFIED BY ondal; --로그인 권한 주기, 이거 해야지 로그인 할 수 있음 GRANT CREATE SESSION TO babo; CREATE USER hong IDENTIFIED BY gildong; GRANT CREATE SESSION TO hong; CREATE USER sung IDENTIFIED BY chunhyang; GRANT CREATE SESSION TO sung; --테이블,뷰,시퀀스 생성 권한 주기 GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE TO babo; --권한 취소 하기 REVOKE CREATE VIEW FROM babo; --teltable SELECT, INSERT 권한 ..

[오라클]/SQL 2020.12.26

sql developer 로 ERD 추출하기

1. 메뉴에서 보기 -data modeler - 브라우저 2. 좌측아래의 브라우저 창에서 맨앞 +기호클릭한후 나타나는 "관계형모델[1]" -마오-새관계형모델 화면우측에 relational...이 만들어진다 3. 7개 HR 테이블을 드래그 하되 테이블앞의 그림을 드래그 하여(이때 드래그가 잘안되면 오른쪽마우스를 누른채로 드래그해본다) 우측 relational...탭창에 넣는다 4. 간단하게 보기위해 relational...탭창에서 -마오-하여 세부정보보기 에서 "열"만 남기고 체크표시를 다 지운다 5. 이미지나 pdf로 결과를 저장하기위해 relational...탭창에서 -마오 한후 "다이어그램인쇄"에서 선택하여 저장한다

[오라클]/SQL 2020.12.26

[오라클] sql-plus

- 변수 선언하는 방법 VARIABLE aa NUMBER; --sql plus에서 변수 설정하는 법 EXECUTE :aa:=kajanulbi(100,20); --변수 사용시 :변수명 이렇게 사용 SELECT :aa FROM dual; --저장된 변수를 출력 - 한꺼번에 여러줄 삽입하는법 insert into sawon_table values(&id, '&name', '&date', '&juso'); / --방금 전 실행한 문장 실행 ''들어간건 문자형식, 없는건 숫자형식 데이터 하나하나 입력 가능, '/' 이 명령어를 통해 방금 전 실행한 문장 실행 가능 - 갈무리하는 방법 spool aa.txt 이 명령어 치면 aa.txt창이 생기면서 이제부터 치는 모든 명령어, 결과들이 저장됨 spool off 하면..

[오라클]/SQL 2020.12.24