[웹 해킹 시작 전] SQL 기본 문법(2)
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';