웹 해킹

[웹 해킹 시작 전] SQL 기본 문법(2)

codename_JEN 2024. 1. 19. 05:07

member table

1. 산술 연산자

seq 값이 4인 행을 출력

select * from member where seq=4;

5-1은 4 이므로 역시 seq 값이 4인 행을 출력

select * from member where seq=5-1;

 

2. 비교 연산자

seq 값이 2보다 큰 행을 출력

select * from member where seq > 2;

seq 값이 보다 크거나 같은 행을 출력

select * from member where seq >= 3;

seq 값이 4인 행을 제외한 모든 행을 출력

select * from member where seq <> 4;

seq 값이 4인 행을 제외한 모든 행을 출력

select * from member where seq != 4;

 

3. 논리 연산자

seq 값이 1또는 3인 행 출

select * from member where seq=1 or seq=3;

seq 값이 3이고, name은 "jen"인 행 출력

select * from member where seq=1 and name='jen';

 

4. 비트 논리 연산자

select 1&1; 

select 2&1;

2->10

1->01

--------

     00  =>0

select 3&1;

3->11

1->01

--------

      01 =>1

select 5&3;

5-> 101

3-> 011

-----------

       001 =>1

select 5|2;

5-> 101

2-> 010

-----------

       111 => 4+2=1 =>7

 

5. 연결 연산자

공백문자 이용

select 'hel' 'lo'

concat()함수 이용

select * from member where name = concat('je', 'n');

 

6. IN 연산자

가독성 면에서 좋고, OR 연산자보다 실행 속도가 높다

 

1)  IN 연산자

[컬럼/값] IN (값1, 값2...)

SELECT name, email FROM member WHERE in('admin', 'guest')

-> admin과 guest를 포함한 값을 출력

select * from member where name in ('jen', 'sam');

select * from member where name='jen' or name='sam';

or을 쓴 것과 결과는 같지만 in을 사용한 것이 보기에 더 좋다

 

2) NOT IN 연산자

[컬럼/값] NOT IN (값1, 값2...)

SELECT name, email FROm member WHERE not in('admin', 'guest')

-> admin과 guest를 제외한 나머지 값을 출력

select * from member where name not in ('jen', 'sam');

 

7. LIKE 연산자

select * from member where name like 'j_n';

"email" 열 값이 "@nav.com"으로 끝나는 모든 행 출력

select * from member where email like '%@nav.com';