Language/SQL에 해당하는 글 29

  1. regexp - 수정중 2022.08.18

    보호되어 있는 글입니다.


  2. PL/SQL : TRIGGER 2022.07.07

    TRIGGER : 데이터의 변경이 일어날 때 자동으로 같이 실행되는 프로시저 프로시저/수동 처리 ↔ 트리거/자동처리 데이터베이스에 이벤트 발생 이벤트 : 어떤 액션을 했을 때 내용이 바뀌는 것=INSERT, UPDATE, DELETE → 트리거 작동 〓 데이터베이스 관리의 자동화 잘 활용하면 서로 관계가 있는 여러 테이블끼리의 데이터 관리를 자동화할 수 있다. 같은 테이블에서는 트리거를 만들 수 없다. → 항상 다른 테이블에 연쇄 반응을 일으키도록 만들어야 한다. 테이블에서만 사용이 가능하고, VIEW, 인라인 뷰, 서브쿼리 다 사용이 불가하다. AutoCommit을 가지고 있어 insert, update, delete시 commit과 rollback이 불가능하다. 웹 이벤트 : 메뉴/버튼/이미지 클릭됨..


  3. PL/SQL : PROCEDURE 2022.07.06

    PROCEDURE : 리턴형이 없는 함수 → 기능 수행만 한다 프로시저는 함수와 달리 리턴형이 없다. 대신, 매개변수를 통해 값을 받아 온다! 매개변수(parameter) : 프로시저가 호출될 때 그 프로시저에 전달되는 값 변수(variable) : 프로시저나 트리거 내에서 사용되는 값 → 이 때, 매개변수를 IN/OUT 으로 구분하여 연산에 필요한 값인지, 값을 받아오는 데 필요한지 등을 구분한다. →IN : SQL 처리에 필요한 변수 →OUT: 값을 받아오는 변수 기본적인 형식은 아래와 같다. CREATE [OR REPLACE] PROCEDURE proc_name( 매개변수 name IN VARCHAR2(34), --일반 변수(Call by Value) addr OUT VARCHAR2(100), --..


  4. PL/SQL : FUNCTION, CURSOR 2022.07.05

    PL(Procedure Language)/SQL PL : 프로시저 언어 = 함수를 만드는 언어 즉, 데이터베이스 응용 프로그램을 작성하는 데 사용하는 오라클의 전용 언어이다. PL로 만들 수 있는 것 3가지 → Function, Procedure, Trigger Function 리턴형이 있는 함수 Procedure 리턴형이 있거나 없을 수도 있는 함수 Call by Reference를 중심으로 짜인다. Trigger 이벤트 발생 시에 처리한다. (ex) 입고/출고/재고 테이블이 각각 있다고 했을 때, 입고 및 출고에 따른 데이터 변경을 재고 테이블에도 자동처리도록 한다. PL/SQL에는 아래의 요소들이 사용된다. 1) 변수 - 일반 변수(지역 변수), 매개 변수 - 스칼라 변수 - %TYPE - %ROW..


  5. INDEX 2022.07.04

    INDEX 검색 속도를 빠르게 하기 위한 기능이다. 데이터량이 많고 검색 위주로 수행하는 프로그램을 위해 사용한다. INSERT, UPDATE, DELETE 등의 작업이 많으면 굳이 사용하지 않아도 된다. PRIMARY KEY로 지정된 컬럼은 자동으로 INDEX가 된다. 인덱스의 종류 1. 비고유 인덱스 주로 검색 대상이 되는 컬럼명 → 맛집명, 위치, 영화명, 등... 2. 고유 인덱스 UNIQUE, PRIMARY KEY → 인덱스가 자동 생성되어있음. 언제 사용하는가? - 구별된 값이 많은 컬럼(PRIMARY KEY)의 데이터가 많은 경우 KEY를 주면 저장된 위치를 바로 갖고 오는 인덱스가 저장되는 구조 : B-Tree 쉽고 빠르게 데이터를 찾을 수 있는 구조다! (자료를 쉽고 빠르게 찾을 수 있도..


  6. VIEW, Sequence 2022.07.01

    VIEW 한 개 이상의 테이블을 합쳐서 만든 가상 테이블. SELECT를 통해 데이터를 얻은 최종 결과로, 일반 테이블처럼 사용이 가능하다. 복잡한 쿼리를 저장해 놓고 필요할 때 쉽게 조회하기 위해서 많이 사용한다. --뷰는 일반 계정(사용자 계정)에는 뷰를 생성하는 권한이 없다. GRANT CREATE VIEW TO user_name --권한 부여 REVOKE CREATE VIEW FROM user_name --권한 취소 --일반 생성 CREATE VIEW view_name AS SELECT ... --생성/수정 CREATE OR REPLACE VIEW view_name AS SELECT ... --삭제 DROP VIEW view_name --만들고 나면 일반 테이블처럼 동일하게 쓸 수 있다. SELE..


  7. DML, TCL 2022.06.28

    DML(Data Manipulation Language,데이터 조작 언어) 테이블에 있는 데이터를 조작하는 언어이다. 데이터를 추가하거나, 수정하거나, 삭제할 수 있다. - INSERT~INTO : 데이터 추가 ex) 게시물 생성, 회원 가입, 댓글 달기, 예매, 장바구니 추가 등... INSERT ALL 의 경우 default가 존재하더라도 입력값을 설정해 주어야 한다. INSERT INTO table_name VALUES(value1, value2,...) INSERT INTO table_name(column_name1, column_name2) VALUES(value1, value2..) - UPDATE~SET : 데이터 수정 ex) 게시물 수정, 회원정보 수정, 댓글 수정, 장바구니 수량 변경 등..


  8. DDL 예제 2022.06.28

    판매 전표, 제품, 전표 상세에 대한 총 3개의 테이블을 만들어 본다. 개념적 설계 (어떤 값들을 저장해야 하는가?) → 논리적 설계 (추출했을 때 어떤 데이터형으로 받아올 것인가?) → 물리적 설계 (실제 메모리 크기는 어떻게 지정할 것인가?) CREATE, CONSTRAINT 기본적인 구조를 생성한다. --판매전표 / 전표번호(PK), 판매일자, 고객명, 총액 CREATE TABLE receipt( id varchar2(12), --20220628-001 이런느낌~ rdate DATE, client_name varchar2(34), total_price NUMBER ) --제품 / 제품번호(PK), 제품명, 제품단가 CREATE TABLE product( id varchar2(12), name var..


  9. 서브쿼리, ROWNUM, 인라인뷰, DDL 2022.06.27

    https://gent.tistory.com/287 [Oracle] 오라클 ANY, SOME, ALL 연산자 사용법 완벽 정리 오라클의 ANY, SOME, ALL 연산자는 실무에서 자주 사용은 안하지만, 사용법이 궁금해서 찾아보면 사용법이 생각보다 어렵고 어떤 상황의 쿼리문에서 사용해야 할지 머릿속에 그려지지 않는다. SOME gent.tistory.com 스칼라 서브 쿼리 SELECT *, (SELECT deptno FROM dept WHERE dept.NO = emp.deptno) FROM emp; ROWNUM 행에 번호를 매겨 준다. 데이터가 INSERT된 순서대로 번호가 정해 진다. LIMIT처럼 사용할 순 있으나 행 번호를 먼저 정한 뒤 정렬을 진행하므로 다르다. 정렬을 진행한 SELECT문을 ..


  10. Oracle JOIN, ANSI JOIN 2022.06.22

    EQUI_JOIN : 연산자 =을 써서 조인 NON_EQUI_JOIN : AND, OR, BETWEEN 등을 포함하여 조인 --EQUI_JOIN SELECT empno, ename, job, sal, dname, loc, grade FROM emp e JOIN dept d ON e.deptno = d.deptno --NON_EQUI_JOIN SELECT empno, ename, job, sal, dname, loc, grade FROM emp e JOIN salgrade s ON sal BETWEEN losal AND hisal Oracle JOIN : 오라클에서만 사용하는 조인 (MySQL도 가능) ANSI JOIN : 표준화된 조인 ANSI JOIN에 대한 내용은 여기 --Oracle INNER JO..