본문 바로가기

SQL

(7)
Oracle 초기 셋팅 & 사용법 보호되어 있는 글입니다.
[ Oracle ] 프로시저란? 보호되어 있는 글입니다.
[ SQLD ] 빈출 개념 정리 #2 17. join > Natural join 반드시 두 테이블 간의 동일한 이름, 타입을 가진 컬럼이 필요하다. 조인에 이용되는 컬럼은 명시하지 않아도 자동으로 조인에 사용된다. 동일한 이름을 갖는 컬럼이 있지만 데이터 타입이 다르면 에러가 발생한다. 조인하는 테이블 간의 동일 컬럼이 SELECT 절에 기술되도록 테이블 이름을 생략해야 한다. - select department_id 부서, department_name 부서이름, location_id 지역번호, city 도시 from departments natural join locations where city = 'Seattle'; > Using USING 절은 조인에 사용될 컬럼을 지정한다. NATURAL 절과 USING 절은 함께 사용할 수 없다...
[ SQLD ] 빈출 개념 정리 #1 1. SQL 연산순서 FROM WHERE Group by Having Select Order by DML : Select, insert, update, delete (데이터 조작어) DDL : Alter, create, modify, drop (데이터 정의어) TCL : Rollback, commit (데이터 제어어) DCL : Grant, revoke (트랜잭션 제어어) 2. Distinct 어떤 컬럼값들의 중복을 제거한 결과를 출력한다. Select distinct col from table; Select distinct col1,col2 from table; 의 경우엔 col1과 col2의 값이 모두 같지 않은 것만 출력함 (주의) 3. Alias Select 절에서 사용가능, where 절에서는 ..
성공적인 SQL Injection을 위한 SQL 문법 - ORDER by 절, 레코드 출력 개수 제한 ORDER BY 절을 이용한 정렬 기본 형태 => SELECT COLUMN1, COLUMN2 FROM TABLE ORDER BY COLUMN [ASC/DESC] ASC : 오름차순 (ASCENDING) DESC : 내림차순 (DESCENDING) 오름차순과 내림차순의 기준? 오름차순은 처음 오는 컬럼이 작은 수가 온다. 그 후 점점 커지는 순서 내림차순은 처음 오는 컬럼이 큰 수가 온다. 그 후 점점 작아지는 순서 ex ) select * from member order by seq; 이 명령어를 입력하면 seq 컬럼에 대해서만 정렬이 된다. select * from member order by seq, name; 이 명령어를 입력하면 seq와 name 컬럼에 대해서 모두 정렬이 된다. ** 숫자도 사용..
성공적인 SQL Injection을 위한 SQL 문법 - 조건문, 서브쿼리 CASE WHEN 구문 기본 틀 CASE WHEN [조건문] THEN [참] ELSE [거짓] END ex ) select * from member where seq=(case when 1=1 then 1 else 2 end); ex ) select case when 1=2 then 'test1' else 'test2' end; ------------------------------------------------------------------------- 서브쿼리 개념 메인쿼리 안에 또 하나의 select 구문이 들어가는 형태 형태를 보자면 SELECT (SubQuery) FROM (SubQuery) a WHERE [COLUMN] = (SubQuery) 인데 어떤 위치에 오냐에 따라서 서브쿼리의 명칭..
성공적인 SQL Injection을 위한 문법 - 문자열함수 SQL Injection 공격시에 문자열 함수는 아주 유용하게 사용될 수 있다 MySQL은 총 3가지의 문자열 함수를 사용할 수 있는데, 아래 함수와 같다. substring substr mid 사용법은 함수 (문자열, 시작위치, 길이) ex) substring('test', 3, 1 ) ; substr ('test' , 3, 2) ; mid('test',3, 2 ) ; 이런식으로 쓸 수 있음 다른 데이터베이스 종류에 따른 문자열 함수 문자, 아스키 코드 변환 함수 사용법 select ascii('a'); 이렇게 입력하면 알파벳 a 에대한 아스키 코드 값을 알려준다 select ascii(substring('test',2,1)); 로 substring과 결합해서 사용도 가능하다 select concat(..