본문 바로가기

SQL

<Mybatis> #과 $의 차이를 알아보자! mybatis를 사용하다 mapper에 sql문을 작성할 때 '#'과 '$'들을 볼 수 있습니다.그것이 어떤 의미인지 알아봅시다! ▷'#'이란?PreparedStatement를 의미합니다. ex) (ID = admin) ▶ mybatis mapper SELECT ID FROM test WHERE ID = #{ID} Oracle로 넘어온 쿼리 SELECT ID FROM test WHERE ID = ? 실제 수행 쿼리 SELECT ID FROM test WHERE ID = 'admin' ▷'$'란?Statement를 의미합니다. ex) (num = 77) ▶ mybatis mapper SELECT ID FROM test WHERE num= ${num} Oracle로 넘어온 쿼리 SELECT ID FROM t..
<SQL>SQL 인젝션 방어하는 방법중 하나 SQL Injection(SQL 삽입 공격)을 방어하는 방법에 대해 알아봅시다! 1. SQL Injection이란? Web Hacking 기법중 하나이며, 웹 애플리케이션의 Database에 질의(쿼리를 보냄)하는 과정 사이에 일반적인 값이 아닌 악의적인 의도를 갖는 구문을 삽입하여, 공격자가 원하는 SQL 쿼리문을 작동하게 하는 방법입니다. 주로 클라이언트가 입력한 데이터를 서버에서 필터링, 이스케이핑을 하지 못하였을 경우에 발생합니다. 이러한 문제 때문에 대부분의 데이터베이스 엔진은 의도치않은 입력을 방지하기 위하여 escape함수와 prepared statement를 제공합니다. SQL Injection 공격의 종류에는 크게 세 가지가 있습니다.1) 인증 우회 (AB : Auth Bypass)2) ..
(SQL)숫자 함수에(단일행 함수) 대하여 알아봅시다! ▣ 숫자형 함수란? ▷ 숫자를 입력받으면 숫자를 리턴하는 함수이다. ▣ 숫자형 함수의 종류 숫자형 함수함수 설명ABS(숫자)숫자의 절대값을 돌려준다SING(숫자)숫자가 양수인지. 음수인지, 0인지를 구별한다MOD(숫자1, 숫자2)숫자1을 숫자2로 나누어 나머지값을 리턴한다.MOD 함수는 % 연산자로도 대체가능함CEIL/CEILING(숫자)숫자보다 크거나 같은 최소 정수를 리턴한다.FLOOR(숫자)숫자보다 작거나 같은 최대 정수를 리턴한다.ROUND(숫자, [, m ]숫자를 소수점 m자리에서 반올림하여 리턴한다.m이 생략되면 디폴트값은 0이다.TRUNC(숫자, [, m ]숫자를 소수점 m자리에서 잘라서 버린다.m이 생략되면 디폴트값은 0이다.SQL SERVER에서 TRUNC 함수는 제공되지 않는다.SIN,..
(SQL) 문자 함수(단일행 함수)의 종류에 대해 알아봅시다. ▣ 단일행 함수란? ▷ 단일행 함수는 SELECT, WHERE, ORDER BY절에 사용할 수 있으며, 다중행 함수와는 달리 ROW마다 한번씩 처리하는 함수이다. ▣ 문자함수란? ▷ 연산 대상이 문자이며, 반환 값은 함수에 따라 숫자 또는 문자를 반환한다. ▣ 문자함수의 종류 문자형 함수함수 설명TRIM([지정문자] from 문자열) LTRIM(문자열,[제거할 문자])RTRIM(문자열,[제거할 문자])문자열의 첫 문자부터 확인해서 지정문자가 나타나면 해당 문자를 제거한다. 왼쪽에 있는 대상 제거오른쪽에 있는 대상 제거CONCAT(‘문자1’,‘문자2’)두 문자(열)을 연결하여 반환하는 함수CHR(아스키 코드값)아스키 코드값을 문자로 반환하는 함수ASCII(‘문자’)문자를 아스키코드 값으로 반환하는 함수UP..
(DB) SQL이란 무엇인가? SQL에 대해 글을 썼지만...SQL이 뭔지 알아야 할 것 같다, SQL이 뭘까? ▣ SQL(Structured Query Language)이란 무엇인가? ▷ SQL은 관계형 데이터베이스 언어이다. ▷ 데이터의 삽입, 삭제, 갱신, 질의, 보호(보안) 명령문으로 구성되어있다. ▷ SQL은 관계 데이터베이스 언어로 비절차적 데이터베이스 언어로 분류한다. ▣ SQL기능에 따른 분류 ▷ 데이터 정의어(DDL : Data Definition Language) - 테이블의 관계의 구조를 생성하는데 사용하며, CREATE, ALTER, DROP 등이 있다. ▷ 데이터 조작어(DML : Data Manipulation Language) - 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용하며, SELECT, I..
(SQL) 복합변수가 무엇일까? ▣ 복합변수란? ▷ 여러가지 다른 유형의 데이터들을 저장하는 변수 ▷ Record TYPE 과 Table TYPE으로 나뉨 ▣ Record TYPE 변수란?? ▷ 데이터 타입이 다른 여러 데이터를 저장할 경우 사용 ▷ 지정방법 1. type 타입명 is record() 2. 식별자 type 타입명; 사용 예시)1234567891011121314151617181920declaretype emp_rec is record(empNo EMPTEST.EMPNO%type, empSal EMP.SAL%type, empname emp.ename%type, empJob EMPtest.DEPTNO%type); rec1 emp_rec; --emp_rec에 대한 식별자가 rec1 begin select EMPNO, SAL, ..
[SQL] PL/SQL이란 무엇일까? ▣ PL/SQL(Procedure Language/SQL)이란 무엇을까? ▷ 오라클에서 제공하는 프로그래밍 언어이다. ▷ 일반 프로그래밍 언어적인 요소를 다 갖고 있으며, 데이터베이스 업무를 처리하기 위한 최적화된 언어이다. ▶기본 구조◀ ▷ 선언부(Declare) : 모든 변수나 상수를 선언하는 부분 ▷ 실행부(Executable) : begin~end / 제어문(if), 반복문, 함수정의 등의 로직을 기술하는 부분 ▷ 예외처리부(Exception) : 실행도중 에러 발생 시 해결하기 위한 명령들을 기술하는 부분 Declare, begin, exception 키워드들은 ;(세미콜론)을 붙이지 않고, 나머지 문장들은 ;(세미콜론)으로 처리한다. ▷ 익명블록(Anonymous PL/SQL Block) : ..
(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. 왼쪽 위 +를 누르고, 새로 만들기 창에서 내용들을 입력한 후 테스트를 눌러 접속을..