5주차/SQL Injection 기초

gkdudans·2023년 11월 25일

EVI$ION/웹

목록 보기
7/11

[무료] 성공적인 SQL 인젝션 공격을 위한, SQL 기본 문법 - 인프런 | 강의

1. 데이터베이스 기초

  • 데이터베이스
    • DB: 데이터를 구조적으로 모아둔 데이터 집합소
    • RDB: 관계형 데이터비이스, 데이터를 열과 행을 가진 테이블 형태로 표현, 구조적으로 데이터 관리
    • RDBMS: RDB 관리 시스템
    • SQL: RDBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어
  • SQL
    • DDL: 데이터 정의 언어, CREATE, DROP, ALTER…
    • DML: 데이터 조작 언어, SELECT, INSERT, UPDATE, DELETE…
    • DCL: 데이터 제어 언어, CRANT, REVOKE
    • CRUD: 데이터 처리 기능인 {CREATE, READ, UPDATE, DELETE}
  1. SQL 기본 문법과 활용
  • CREATE, DROP 구문

    • CREATE: 데이터베이스 생성 CREATE DATABASE [DB_NAME];
    • CREATE: 테이블 생성 CREATE TABLE [NAME] ([COLUMN_NAME][DATA_TYPE]);
    • DROP: 데이터베이스/테이블 삭제 DROP [DATABASE/TABLE][NAME];
  • INSERT, SELECT, UPDATE, DELETE 구문

    • INSERT: 데이터 삽입 INSERT INTO TABLE_NAME VALUES ([DATA1]…);
    • SELECT: 데이터 조회 SELECT [COLUMN1] FROM [TABLE] WHERE [CONDITION]; : COLUMN이름 대신 를 넣으면 전체 출력. ex) id=’admin’
    • UPDATE: 데이터 수정 UPDATE [TABLE] SET [COLUMN1]=[DATA1] WHERE [CONDITION];
    • DELETE: 데이터 삭제 DELETE FROM [TABLE] WHERE [CONDITION];
  • 연산자

    • 산술 연산자
    • 비교 연산자
    • 논리 연산자
    • 비트 논리 연산자
    • 연결 연산자
    • IN 연산자: 목록 안의 값 중 일치하는 데이터 출력 [컬럼/값] IN (값1, 값2…) NOT IN 연산자: 원하는 값 제외하고 출력 [컬럼/값] NOT IN (값1, 값2…)
    • LIKE 연산자
  • SQL 기본 문법 활용 예제(1)

    1. member 테이블의 name이 “guest”인 레코드 출력

      select * from member where name = ’guest’;

    2. member 테이블의 name이 “guest”인 레코드의 email 출력

      select email from member where name = ’guest’;

    3. member 테이블의 name이 “guest”가 아닌 레코드의 name, email 출력

      select name, email from member where name != ’guest’;

    4. member 테이블의 name이 “leegugu” 또는 ‘kimhongsma’인 레코드 출력

      select * from member where name=’leegugu’ or name=’kimhongsam’;

      select * from member where name in(’leegugu’, ‘kimhongsam’);

    5. member 테이블의 name이 “leegugu” 또는 ‘kimhongsma’가 아닌 레코드 출력

      select * from member where name != ’leegugu’ and name != ’kimhongsam’;

      select * from member where not in(’leegugu’, ‘kimhongsam’);

    6. member 테이블의 seq가 2이상, 5미만인 레코드 출력

      select * from member where seq >= 2 and seq < 5;

  • SQL 기본 문법 활용 예제(2)

    1. member 테이블의 seq가 1 또는 3 또는 5인 레코드 출력

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

      select * from member where seq in(1,3,5);

    2. member 테이블의 name이 “lee”로 시작하는 레코드 출력

      select * from member where name like ‘lee%’;

    3. member 테이블의 email이 “crehacktive.co.kr”을 주소로 사용하는 레코드 출력

      select * from member where email like ‘%@crehacktive.co.kr’;

profile
https://github.com/gkdudans

0개의 댓글