SQL이란?
데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어
RDBMS(관계형 데이터베이스)에 저장된 데이터와 통신하기 위해 필요한 프로그래밍 언어
명령어
DDL: 데이터베이스 스키마와 설명을 처리하는 정의하는 언어
CREATE, ALTER, DROP …
DML: 데이터 검색, 삽입, 변경, 삭제를 수행하여 조작하는 언어
SELECT, INSERT, UPDATE …
DCL: 데이터에 접근할 수 있는 권한을 관리하는 언어
GRANT, REVOKE
TCL: 트랜잭션을 다루는 언어
COMMIT, ROLLBACK, SAVEPOINT …
연산자
산술 연산자
+, - ...
비교 연산자
>, >=, <>, !=
논리 연산자
우선 순위 : NOT > AND > OR
비트 논리 연산자
&(AND), |(OR), ^(XOR)
연결 연산자
MySQL : (공백)
MSSQL : +, ||
공통 : concat
IN 연산자
... where name in ('admin', 'seomj74');
name = 'admin' or 'seomj74'와 같은 의미
LIKE 연산자
% : 모든 문자
_ : 문자 하나
ex) like '%seo%'
함수
문자열을 자르는 함수
MySQL : substring, substr, mid
ORACLE : substr, substrb
문자열 ascii 변환 함수
MySQL : ascii, ord
ORACLE : ascii
ascii를 문자로 변환 함수
MySQL : char
ORACLE : chr
count 함수
length 함수
조건문
공통: case when
MySQL : if
Oracle : decode
서브쿼리
정렬
order by
asc : 오름차순
desc : 내림차순
해당 열로 정렬
limit 구문
레코드 한 줄 또는 원하는 만큼 출력
MySQL : limit
Oracle : rownum
MSSQL : top
limit 3 : 레코드 개수 3개
limit 0, 2 : 오프셋 0부터, 총 개수 2개
예제1.
예제2. 게시글 내용(content)에 te가 들어가고, and로 연결하여 ascii, mid, limit, select version() 포함시켜 참/거짓인 경우 출력 값 비교하기
'Study > Web' 카테고리의 다른 글
접근 통제 취약점 (0) | 2021.06.15 |
---|---|
SQL Injection (0) | 2021.06.14 |
[DVWA] File Upload (0) | 2021.06.14 |
File Upload(파일 업로드) 취약점 (0) | 2021.06.14 |
[DVWA] CSP Bypass (0) | 2021.06.14 |