WEB1

SQL injection(2)-SQL 기본문법

l

*sql injection에 대해 다루는 본 강의는 수강자가 mysql, php에 대해 기본적인 지식을 가지고 있다는 가정하에 작성되었습니다.

 

sql injection - 2

지난 강좌에서는 sql injection이 무엇인지에 대해 알아보았습니다. 

이번 시간에는 sql의 기본 문법에 대해 알아보도록 하겠습니다. 

 

 

우리에게 이러한 형식의 user라는 이름의 테이블이 있다고 생각해 봅시다. 

+----+-----------+---------------+
| id | nickname  | password      |
+----+-----------+---------------+
|  0 | admin     | admin1234     |
|  1 | guest1    | guest1234    |
|  2 | guest2    | guest1234    |
|  3 | guest3    | guest1234    |
|  4 | guest4    | guest1234    |
|  5 | guest5    | guest1234    |
+----+-----------+---------------+
 
우리에게 이러한 테이블이 있다고 가정할 때 우리는 이 테이블에서 정보를 가져오기 위해 다음과 같은 문법을 사용할 수 있습니다.
 
SELECT * FROM user;
SELECT id FROM user;
SELECT nickname FROM user;
SELECT password FROM user;
SELECT id, nickname FROM user;
 
등등을 사용할 수 있습니다. 
 
이 문법을 살펴본다면 우선 SELECT 는 우리가 어떤 값을 가져올 것인지 선택하는 것입니다.
그리고 SELECT 뒤에 오는 id, nickname, password 등등은 칼럼(테이블의 세로줄)이라고 합니다.
그리고 마지막 FROM은 우리가 가져올 값을 어떤 테이블에서 가져올 것인지 지정하는 것입니다.
 
위의 여러가지 SELECT문들의 출력 결과를 보면 결과값이 하나씩 나오는 것이 아니라, 모든 nickname, password, id값을 모두 가져오게 됩니다. 
 
그렇다면 우리가 결과값을 하나씩 가져오려면 어떻게 해야 할까요?
 
이때 우리는 WHERE 절을 사용할 수 있습니다.
 
SELECT id FROM user WHERE id=0;
SELECT nickname FROM user WHERE id=1;
SELECT password FROM user WHERE id=2;
SELECT id, nickname FROM user WHERE id=3;
 
이렇게 WHERE 절로 조건을 주게 되면 우리는 우리가 가지고 오고 싶은 값을 특정하여 가져올 수 있습니다. 
 
이렇게 간단하게 SQL 의 기본 문법에 대해 알아보았습니다.
 
 

댓글

댓글 본문