DataBase(Sol)(정리대기중..언젠가)
-
210615_1(데이터베이스9, 패키지, 트리거, 정규화)DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 15. 12:21
~6/14 패키지 ( 저장프로시저, 저장함수, 저장프로시저 --묶음) 정의 : 저장프로시저나 저장함수등등을 여러개 묶은것 패키지를 만들때는 선언부와 바디부로 나누어서 만든다. 우리가 알고 있는 대표적인 패키지가 바로 dbms_output.put_line() 이다. 기본형 create or replace package 패키지명 -- 선언부 is -- 원형을 선언함 procedure 프로시져명 (); procedure 프로시져명 (); function 함수명 () return 데이터형; end ; / show errors create or replace package body 패키지명 -- 바디부 is -- 원형을 선언함 procedure 프로시져명 () is (지역변수) begin 처리식 end; proc..
-
210614_1(데이터베이스8, PL/SQL, 커서, 프로시저)DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 14. 17:19
PL/SQL (제어구조가있는 sql) --6/11 구조 declare 선언부 : 변수 begin 실행부 절차구조가 있는 sql end ; / -- 실행하라 테스트1 1. emp에서 사번이 7900인 직원의 이름 사번을 출력하는 plsql을 작성하고 실행하시오 SQL> ed ex01 --작성 declare vempno number(4) ; vename varchar2(20) ; begin select empno,ename into vempno,vename from emp where empno=7900; -- 결과 화면 출력 dbms_output.put_line('-------실행결과--------'); dbms_output.put_line(vempno||' '||vename); end; / SQL> @ex..
-
210611_1(데이터베이스7, 사용자관리, )DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 11. 17:29
사용자관리 (권한) 권한 : 계정생성, 계정삭제, 권한부여 grant, 권한회수 revoke 일반 계정 발급 : create user 유저명 identified by "암호"; 권한 부여 : grant 접속, 생성권한, ,,, to 유저명; 계정 전환 : conn 유저명/암호 conn system/oracle --관리자로전환 create user user1 identified by "1234"; conn user1/1234 ERROR: ORA-01045: user USER1 lacks CREATE SESSION privilege; logon denied conn system/oracle grant create session to user; conn user1/1234 연결되었습니다. create tabl..
-
210610_1(데이터베이스6 뷰VIEW, 시퀀스SEQUENCE, 인덱스 INDEX)DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 10. 17:59
(6/9)뷰 view 권한 부여해야 사용가능 권한주기 conn system/oracle --- 관리자로전환 grant create view to scott; --- 권한부여 뷰란 물리적인 테이블을 기반으로 생성한 가상의 논리적인 테이블이다. -- DQL, DML 가능 특징 복잡한 쿼리를 축약시킬수있다. 보안 측면에서 유리하다 기본형 : create view 뷰이름 as select ~~~ --만들기 create or replace view 뷰이름 as select ~~~ --없으면만들고 있으면 수정한다. 1. emp를 복사하여 emp_copy를 생성하시오 create table emp_copy as select * from emp; 2. emp_copy에서 부서번호가 30인 직원의 사번, 이름, 부서번호..
-
210609_1(데이터베이스5, 락&데드락, 제약조건)DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 9. 18:05
락 & 데드락 서로다른 유저가 동일객체를 동시 사용할때 발생 * 어느 시점이든지 오라클사용자들은 일관적으로 동일한 데이터를 읽을 수 있어야 한다. 하나의 테이블에 동시에 사용자 자가 접근하여 DML 문장을 실행하는 경우 특정 사용자가 자원을 독점하지 못하도록 오라클은 락을 발생시킨다. 이 락을 해제하기 위해서 우리가 배운것이 바로 commit과 rollback이다. dml문장을 실행하면 commit하기 전까지 lock이 걸린다 lock의 발생 create table emp01 as select * from emp; 예) 서울본사 인천지사 1. select * from emp01 where empno = 7900; --락과 관련없음-- 2. delete from emp01 where empno=7900; ..
-
210608_1(데이터베이스4 DDL, DML, MERGE, TRANSACTION)DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 8. 17:26
DDL문장 Data difinition language : create alter drop create table, view, sequence, index , ,,,, create table 테이블( 컬럼명 데이타형 [제약조건들], --쉼표로 컬럼 구분함 / [제약조건들] 0개 이상/ 컬럼명 데이타형 [제약조건들], 컬럼명 데이타형 [제약조건들], 컬럼명 데이타형 [제약조건들] --마지막 컬럼 다음은 쉼표가 없다. ) ; -- 세미콜론 마감을 해야 실행 가능함 오라클 데이터형 char(n) : 고정문자열 n바이트 이내 : 1~2000 byte varchar2(n) : 가변문자열 n바이트 이내 : 1~4000 byte , varchar(n)과 호환됨 nvarchar2(n) : 국가별 국가집합에 따른 크기와..
-
210607_1(데이터베이스3, 그룹함수, 조인, 서브쿼리)DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 7. 18:08
그룹함수 *** 부서별 평균, 반별 합계, ... 라는 말이 등장하면그룹함수 count() 행갯수. 조직원수 - 사원수, 학급별인원수 ... sum(), stddev(), avg(표준편차), max(), min() 등등이 있다 판별 요령 : 집계함수이외에 일반컬럼이 select절에 나오면 반드시 그룹화(group by 컬럼) 한다. 1. emp에서 최고 급여는 얼마 인가요? select max(sal) from emp; 2. emp에서 최소급여는 얼마 인가요? select Min(sal) from emp; 3. emp에서 최대,최소,평균 급여를 출력하시오 select max(sal), min(sal), avg(sal) from emp; 4. emp에서 부서별 평균급여와 부서번호를 출력하라 -- 집계함수이..
-
210604_1(데이터베이스2 sql문 order by, 내장함수(문자,숫자))DataBase(Sol)(정리대기중..언젠가)/Oracle 2021. 6. 4. 17:23
order by asc/desc (올림차순/내림차순) * 출력결과를 정렬하여 보여줌 : order by (asc/desc) * 행을 선택할때는 : where, where 절이 없으면 모든 행을 선택한다. 1. emp에서 사번, 이름, 급여를 출력하되 급여가 낮은 순서로 표현하시오 select empno, name, asl from emp order by sal asc; select empno, ename, sal from emp order by sal asc; 2. emp에서 사번, 이름, 급여를 출력하되 이름이 늦은 순서로 나타내시오. select empno, ename, sal from emp order by name desc; select empno, ename, sal from emp order ..