이 포스트는 인프런의 성공적인 SQL 인젝션 공격을 위한, SQL 기본 문법 을 보고 작성하였습니다!
1. CREATE 구문
(1) 데이터베이스 생성:
① 형식
CREATE DATABASE [DB_NAME];
② 예시
CREATE DATABASE test_db;
(2) 테이블 생성:
① 형식
CREATE TABLE [NAME] ([COLUMN_NAME][DATA_TYPE]);
∨ DATA_TYPE: 자료형 EX)숫자(int), 문자(char), 날짜(data)
② 예시
CREATE TABLE test_db (name char(20),age int);
2. DROP 구문
(1) 데이터베이스 / 테이블 삭제
①형식
DROP [DATABASE/TABLE][NAME];
②예시
DROP TABLE test_tb;
3. INSERT 구문
(1) 데이터 삽입:
①형식
INSERT INTO [TABLE_NAME][COLUMN1].... VALUES ([DATA1]...);
②예시
INSERT INTO test_tb(name, age) VALUES ('KIM',21);
③주의할 점
1) COLUMN 이 없으면 VALUE가 순차적으로 나와야한다.
⇒ COLUMN 명이 있으면 괜찮다!
2) NULL 값이 들어들어간다면 명시해야한다.
4. SELECT 구문
- 데이터 조회
①형식
SELECT [COLUMN1] FROM [TABLE] WHERE [CONDITION];
②예시
SELECT name, age FROM test_tb(where id='ad~');
∨condition 은 불필요한건 출력안하게 조건을 거는 것.
5. UPDATE 구문
- 데이터 수정
①형식
UPDATE [TABLE] SET [COLUMN1]=[DATA1] WHERE [CONDITION];
②예시
UPDATE test_tb SET age=19 WHERE name="kim";
※ WHERE 절을 사용
age 부분을 전부 수정하는 것이 아니기 때문에 특정 name을 지칭 해야한다.
★from 을 사용하지 않는다.
6. DELETE 구문
- 데이터 삭제
①형식
DELETE FROM [TABLE] WHERE [CONDITION];
②예시
DELETE FROM test_tb WHERE name="kim";
0. 기타 자주 쓰는 명령어
①show databases/tables;
데이터베이스/테이블 출력
② select databases();
현재 데이터베이스
③use DB 이름;
데이터베이스 선택, 이동
④desc(ribe) member(테이블 명칭);
테이블 구조를 보여줌
∨ 요소에 문자가 들어가면 '(싱글쿼터)를 넣어줘야함.
★select 절에서 칼럼을 선택하고 where에서 레코드를 선택한다.
<실습>
1. MYSQL 로그인
mysql -u root -p
이런 식으로 로그인 창이 나온다. 초기비밀번호는 설정되어있지 않으므로 엔터를 눌러본다.
∨ 비밀번호 변경
변경을 하고 적용까지 해야한다.
★변경 사항을 적용하는 명령어 : flush privileges;
update mysql.user set password=password('변경하고 싶은 비밀번호') where user='root';
2. DataBases 만들기
현재 있는 DataBase이다.
여기에 새로운 DB를 추가할 것이다. example 이라는 새로운 database를 추가할것이다.
<코드>
CREATE DATABASE example;
3. table 생성
① example 데이터베이스로 이동한다.
명령어: use
② member 라는 새로운 table을 만든다.
명령어: create
<코드>
create table member(seq int, name char(20), email char(50));
③ table을 확인한다.
④ table안에 구조를 확인한다.
명령어: describe
<코드>
describe member;
4. insert를 통해 레코드 넣기
(1) 처음에 레코드 넣기
<코드>
insert into member(seq, name, email) values(2,'crehacktive','crehactive@crehacktive.co.kr');
(2) 나중에 레코드 추가하기
<코드>
insert into member values(6,'test','test@crehacktive.co.kr');
현재 레코드를 조회하고 싶다면 select명령어를 사용하면 된다.
<코드>
select * from 테이블명;
5. select
▶레코드 조회 역할을 함
①형식
select (컬럼명) from 테이블명;
컬럼명에 *을 넣으면 모든 레코드 조회하는 것이다.
칼럼명에 특정 칼럼을 넣으면 그 칼럼만 조회한다.
② 특정칼럼 조회
③ Where 명령어를 이용해서 분류 조건을 하나 더 추가한다.
6. UPDATE를 이용
▶레코드 내용을 수정하고 싶을 경우에 사용
<코드>
update member set name='test1' where seq=6( 또는 name='test');
ex)
7. delete 를 이용
▶레코드를 삭제하기
'WEB > SQL' 카테고리의 다른 글
[프로그래머스] SQL 고득점 Kit 문제 풀이 (0) | 2021.05.26 |
---|---|
[SQL INJECTION] SQL 기본 문법 정리 Ⅴ (예제) (0) | 2020.08.23 |
[SQL INJECTION] SQL 기본 문법 정리 Ⅳ (함수, 조건문) (0) | 2020.08.22 |
[SQL INJECTION] SQL 기본 문법 정리 Ⅲ (연산자) (0) | 2020.08.22 |
[SQL INJECTION] SQL 기본 문법 정리 Ⅰ (0) | 2020.08.21 |