웹 해킹 기법중 'SQL 인젝션' 이라는 공격이 있다.
그 공격을 사용하면서 주로 썻던 문법을 적어볼까 한다.
<목차>
- ORDER BY
- UNION
- LIMIT
- LIKE
이해하기 쉽게 설명은 간략! 예시를 위주로!
- ORDER BY
용도 : <컬럼명을 기준으로 정렬하기 위한 문법이다>
사용법 : SELECT [컬럼명] FROM [테이블 명] ORDER BY [컬럼명]
=> [컬럼명]을 기준으로 정렬을 하라!
**[컬럼명] 이 숫자일땐? : 인덱스에 맞는 컬럼으로 정렬하라!
예를들어 컬럼이 ID,NAME,PASS,NUMBER 이런식으로 4가지가 있다고 가정하자.
여기서 SELECT * FROM TEST ORDER BY 2 라고 하게 되면 NAME 이라는 컬럼을 기준으로 정렬하게됨!
예시 : SELECT * FROM TEST order by 3
=> test 라는 테이블에서 데이터를 다 가져온후 3번째 컬럼을 기준으로 정렬해라
- UNION
용도 : 두가지 명령문의 결과를 한꺼번에 실행하기 위해 사용한다.
사용법 : SELECT [컬럼명] FROM [테이블 명] UNION SELECT [컬럼명] FROM [테이블 명]
=> 두가지의 SELECT 명의 결과를 한꺼번에 출력해준다!
**주의할 점은 앞서 나온 SELECT 문의 컬럼을 따른다!
또한 전과 후의 명령문에 컬럼개수가 일치해야한다!!!
먼저 쓴 명령문의 결과의 컬럼이 IDX,NAME,PASS 이고
후반에 쓴 명령문의 결과의 컬럼이 SCORE,JOIN,TAX 라고 해보자
<첫번째 결과> + <두번째 결과>
IDX | NAME | PASS |
1 | KANE | LES4522 |
2 | JAIN | PASS1234 |
32점 | YES | 45% |
-LIMIT
용도 : 지정한 갯수만큼의 자료만 보여집니다.
사용법 : SELECT [컬럼명] FROM [테이블 명] LIMIT 0,3
=> 가져온 데이터에서 0번째 행부터 3개를 가져와라. 즉! 0,1,2, 번째 행을 가져와라!
예시: select * from test limit 2,1
=> test 테이블에서 전체 행을 가져온후 2번째 행을 기준으로 1개의 행을 가져와라
즉! 2번째 행을 가지고 오란소리다!
-LIKE
용도 : 지정한 문자열이 포함된 데이터를 가져옵니다. 주로 게시글 검색 기능에 쓰임.
사용법 : SELECT [컬럼명] FROM [테이블 명] WHERE [컬럼명] LIKE '%찾을내용%'
LIKE 절의 형태는 3가지의 경우가 있는데 예시를 들어서 설명해드리겠습니다.
<첫번째>
SELECT * FROM TEST WHERE NAME LIKE '%HAND%'
=> NAME 이라는 컬럼에서 중간에 'HAND' 라는 문자열이 들어가는 행을 다 가지고 와라.
<두번째>
SELECT * FROM TEST WHERE NAME LIKE '%HAND'
=> NAME 이라는 컬럼에서 마지막에 'HAND' 라고 끝나는 문자열이 들어간 행을 다 가지고 와라.
<세번째>
SELECT * FROM TEST WHERE NAME LIKE 'HAND%'
=> NAME 이라는 컬럼에서 시작할때 'HAND' 라고 시작하는 부분이 들어간 행을 다 가지고 와라.
긴글 읽어주셔서 감사합니다!
'SQL' 카테고리의 다른 글
SQL 의 기초문법! (0) | 2024.05.17 |
---|