본문 바로가기

Oracle

(ORACLE) PROCEDURE 에서 원하는 데이터를 찍어보자! CREATE OR REPLACE PROCEDURE BookInsertOrUpdate( myBookID NUMBER, myBookName VARCHAR2, myPublisher in VARCHAR2, myPrice in NUMBER ) AS mycount NUMBER; BEGIN DBMS_OUTPUT.DISABLE; DBMS_OUTPUT.ENABLE; SELECT count(*) into mycount FROM Book WHERE bookname LIKE myBookName; DBMS_OUTPUT.PUT_LINE(mycount); IF mycount!=0 THEN DBMS_OUTPUT.PUT_LINE('if문 들어옴!'); UPDATE Book SET price = myPrice WHERE bookname..
[DataBase]그룹 함수(Group Function)에 대해 알아보자! 1. 그룹 함수(Group Function)란? ◎ 하나 이상의 행을 그룹으로 묶어 연산하여 하나의 결과를 나타내는 것입니다. 2. 그룹 함수 종류 ◎ ROLLUP - GROUP BY의 컬럼에 대해 소계(Subtotal)를 만들어 줍니다. - GROUP BY에 두 개이상의 컬럼이 오면 순서에 따라 결과가 달라집니다. ROLLUP을 사용해 부서 급여 전체합계를 구합니다. 부서별 합계와 직업별 합계, 전체 합계가 조회됩니다. ◎ GROUPING - ROLLUP, GROUPING SET, CUBE로 생성되는 합계 값을 구분하기 위해 사용합니다. - 계산이 된 곳은 1, 아닌 곳은 0으로 반환하여 표시합니다.소계가 계산된 데이터에는 1로 표시됩니다. ◎ GROUPING SETS - GROUP BY에 나오는 컬럼..
[DataBase]DB에서 조건문을 사용해 보자! 1. 조건문(條件文)이란? 명시한 조건이 비교연산을 통해 참인지 거짓인지에 따라 상황을 수행하는 것.쉽게 말해 참이면 'A'를 수행하고 거짓이면 'B'를 수행하는 것이다. 2. 조건문 구현하기 ◎ 테스트 테이블 ◎ DECODE문을 사용하여 IF문 구현 사용 방법 : DECODE(컬럼, 컬럼과의 조건, 'TRUE', FALSE') SELECT 안에서 DECODE문을 사용해 mgr이 null이면 '존재안함', mgr이 null이 아닐 경우 '존재'가 나오도록 하였음. ◎ CASE문을 사용한 조건문 구현 사용 방법 : CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 WHEN 조건n THEN 결과n ELSE 결과 ENDselect 문 안에서 CASE를 사용해 mgr이 1001이면 '10..
<SQL>SQL 인젝션 방어하는 방법중 하나 SQL Injection(SQL 삽입 공격)을 방어하는 방법에 대해 알아봅시다! 1. SQL Injection이란? Web Hacking 기법중 하나이며, 웹 애플리케이션의 Database에 질의(쿼리를 보냄)하는 과정 사이에 일반적인 값이 아닌 악의적인 의도를 갖는 구문을 삽입하여, 공격자가 원하는 SQL 쿼리문을 작동하게 하는 방법입니다. 주로 클라이언트가 입력한 데이터를 서버에서 필터링, 이스케이핑을 하지 못하였을 경우에 발생합니다. 이러한 문제 때문에 대부분의 데이터베이스 엔진은 의도치않은 입력을 방지하기 위하여 escape함수와 prepared statement를 제공합니다. SQL Injection 공격의 종류에는 크게 세 가지가 있습니다.1) 인증 우회 (AB : Auth Bypass)2) ..
(DB) 데이터베이스란 무엇일까? 데이터베이스 많이 들어 봤지만 생소하기도 한 단어이다.이 데이터베이스에 대해 알아보도록 하자! ▣ 데이터베이스란 무엇일까? ▷ 자료(Data) - 현실 세계에서 관찰이나 측정을 통해 수집한 단순한 사실이나 값. ▷ 정보(Information) - 의사 결정에 도움을 줄 수 있는 유용한 형태 - 자료를 가공(처리)해서 얻을 수 있는 결과를 의미 ▷ 데이터베이스 - 어느 한 조직체의 여러 응용 시스템들이 공동으로 사용할 수 있도록 통합하여 저장한 운영데이터의 집합. - 공동의 목적을 지원하기 위한 서로 관련된 자료들의 모임. - 주제와 관련된 의미 있는 데이터들의 모음. ▣ 데이터베이스의 정의 ▷ 통합된 데이터(Integrated Data) - 산재되어 있지 않고, 한 곳에 있어야 한다. - 모든 데이터가 ..
(SQL)프로시저와 함수의 모임 패키지에 대해 알아봅시다 ▣ 패키지란?? ▷ 연관성이 있는 함수나 프로시저를 그룹으로 모아놓은 개념이다. ▣ 패키지의 구성 ▷ 선언부 + 몸체부로 구성되어 있다. ※ 패키지 선언부에 선언이 되어있지 않더라도 패키지 몸체부에서 사용할 수 있지만, 권장사항은 아니다. ◈ 선언부 ▶ 구문 형식 - CREATE [OR REPLACE] PACKAGE 패키지명 IS [AS] PROCEDURE 프로시저1이름. PROCEDURE 프로시저2이름, . . . END; / ◈ 몸체부 ▶ 구문 형식 - CREATE [OR REPLACE] PACKAGE BODY 패키지명 //선언부와 패키지명이 같아야 한다. IS [AS] PROCEDURE 프로시저 이름 subprogram bodies : 실제 작동하게 될 서브프로그램(프로시저, 함수) end; / ▣..
(SQL) 커서(Cursor)에 대해 알아보자 ▣ 커서(Cursor)란?? ▷ 쿼리문에 의해서 반환되는 결과값들을 저장하는 메모리공간 * Fetch : 커서에서 원하는 결과값을 추출하는 것 ▣ 커서의 종류 ▷ 명시적(Explicit) 커서 : 사용자가 선언해서 생성 후 사용하는 SQL 커서, 주로 여러개의 행을 처리하고자 할 경우 사용. ▷ 묵시적(Implicit) 커서 : 오라클에서 자동으로 선언해주는 SQL 커서. 사용자는 생성 유무를 알 수 없다. ▣ 커서의 속성 ※ 커서를 open하고 나서 fetch가 발생하면 true 값을 반환 ▷ %FOUND - 할당할 레코드가 있는 경우 true값을 반환. ▷ %isOpen - 커서가 오픈상태일 경우 true값을 반환. ▷ %NotFound - 할당할 레코드가 없는 경우 true값을 반환. ▷ %RowC..
(SQL) SQL Developer를 설치해보자! 오라클의 무료 툴인 SQL Developer를 설치해보자! 1. https://www.oracle.com/ 에 접속한다. 2. Downloads and Trials → Developer Downloads 접속 3.아래로 내려 Developer Tools의 SQL Developer 클릭 4. Accept License Agreement를 누르고, 프로그램을 설치합니다. - JDK가 설치 되어있지 않으면, Windows 64-bit with JDK 8 included 다운 - JDK가 설치 되어있다면 Windows 32-bit/64bit 다운 5. sqldeveloper.exe 실행 6. 설치된 JDK 위치를 선택한다. 7. 왼쪽 위 +를 누르고, 새로 만들기 창에서 내용들을 입력한 후 테스트를 눌러 접속을..