SQL 기본 문법

SQL 기본 문법4(연산자)

ishoe 2021. 2. 6. 20:20

연산자

5+3

+ : 연산자 연산을 수행하는 기호, 키워드

5, 3 : 피연산자 연산에 참여하는 변수나 값

 

산술 연산자

더하기, 빼기, 나누기, 곱하기를 산술 연산자라 한다.

예제 : select * from member where seq=6-1; 을 하게 되면 seq값이 5인 레코드가 출력

 

비교 연산자

연산자
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다
= 같다
<>, != 같지 않다

피연산자1을 기준으로 한다.

ex) a <=b면 a가 피연산자1, b가 피연산자2

 

예제 : select * from member where seq != 3; 을 입력하면 seq가 3이 아닌 레코드가 출력

 

논리 연산자

연산자 의미 우선 순위 표현식
NOT 부정 1 NOT 피연산자
AND 그리고(논리곱) 2 피연산자1 AND 피연산자2
OR 또는(논리합) 3 피연산자1 OR 피연산자2

NOT : 피연산자가 참일 시 거짓이 되고 피연산자가 거짓 일시 참이 된다.

 

AND : 피연산자 2개 중 1개가 거짓이라도 거짓이 된다.

F AND F = F

F AND T = F

T AND F = F

T AND T = T

 

OR : 피연산자 2개 중 1개가 참이라도 참이 된다.

F OR F = F

F OR T = T

T OR F = T

T OR T = T

 

예제1 : select * from member where seq=1 or seq=5; 을 입력하면 seq값이 1과 5인 레코드가 같이 출력

 

예제2 : select * from member where name='leegugu' and seq=5; 을 입력하면 이름이 leegugu이고 seq값이 5인 레코드가 출력

 

비트 논리 연산자

비트 논리 연산자 : 2진수로 비트단위 연산을 하기 위해서 사용되는 연산자

DBMS AND OR XOR
ORACLE bitand(피연산자1, 피연산자2) - -
MSSQL 피연산자1 & 피연산자2 피연산자1 | 피연산자2 피연산자1 ^ 피연산자2
MYSQL 피연산자1 & 피연산자2 피연산자1 | 피연산자2 피연산자1 ^ 피연산자2

XOR : Exclusive OR의 약자로 배타적인 논리합. 둘 중 오직 하나만 참일 경우에 결과가 참이 된다.

F AND F = F

F AND T = T

T AND F = T

T AND T = F

 

연결 연산자

DBMS 연산자 표현식 예시
ORACLE || 피연산자1 || 피연산자2 'te' || 'st'
MSSQL + 피연산자1 + 피연산자2 'te' + 'st'
MYSQL 공백 피연산자1 공백 피연산자2 'te' 공백 'st'

예제 : select * from member where name='gue' 'st'; 을 입력하면 이름이 guset인 레코드가 출력

CONCAT : 모든 문자열을 이어준다.

예제 : select concat('cre', 'hack', 'tive'); 을 입력하면 한 단어인 crehacktive가 출력

 

IN 연산자

IN 연산자 : 목록 안에 값 중 일치하는 데이터를 출력 OR연산자를 연속적으로 사용하는 것과 동일한 값을 얻음. OR연산자보다 가독성이 좋음

사용법 : COLUMN이름/값 IN (값1, 값2...)

 

NOT IN 연산자 : 자기가 원하는 값을 제외하고 출력

사용법 : COLUMN이름/값 NOT IN (값1, 값2...)

 

실습을 통해 IN 연산자와 NOT IN 연산자를 사용해 보았다.

 

LIKE 연산자

전체 문자열 중 일부만 알고 있는 문자를 활용하여 검색할 수 있는 연산자

일반적으로 웹 검색 기능에 많이 쓰임

와일드 카드 의미 예시
% 모든 문자 id like 'ad%'
_ 하나의 문자 id like 'admi_'

 

실습을 통해 확인해 보았다.

%admin%의 뜻은 앞뒤에 어떤 문자가 오든 admin이 들어간 테이블을 출력하는 뜻이다.

%@credhacktive.co.kr의 뜻은 @credhacktive.co.kr의 앞에 어떤 문자가 오든 @credhacktive.co.kr으로 끝나는 들어간 테이블은 출력하는 것이다.

 

%가 궁금해서  필자가 한 가지 실험을 해봤다.

 

 &&가 양끝에 있는 명령어를 실험해 봤다.

저 실험으로 보아 %%는 각각 & 앞뒤쪽에 어떤 문자가 오거나 아니면 아예 문자가 없을 때도 출력이 가능하다.

 

출처: 크리핵티브

강의 사이트: inf.run/7fxB

 

성공적인 SQL 인젝션 공격을 위한, SQL 기본 문법 - 인프런

웹 해킹의 꽃이라 불리는 SQL 인젝션 공격을 익히기 위한 기초 단계! SQL 기본 문법에 대한 강의입니다! 초급 프로그래밍 언어 데이터베이스 보안 SQL 모의해킹 MySQL 데이터베이스 온라인 강의 SQL

www.inflearn.com