Skip to content
This repository has been archived by the owner on Apr 25, 2020. It is now read-only.

Latest commit

 

History

History
130 lines (70 loc) · 3.71 KB

5차시 수업자료.md

File metadata and controls

130 lines (70 loc) · 3.71 KB

5차시 수업자료

수업 목표

  • 4차시에 배웠던 Database가 무엇인지 안다.
  • MySQL을 설치하고 어떻게 사용하는지 안다.
  • MySQL을 사용해서 일기장을 만들 수 있다.

수업 순서

  1. 4차시 수업 복습
  2. MySQL의 자료형 학습하기
  3. SQL Query 학습하기
  4. MySQL의 주요 함수들과 연산자 학습하기
  5. MySQL로 방명록 만들기

교육 일정 소개

4차시 수업 복습

4차시에 배웠던 database, table, column, row 의 개념 복습

MySQL의 자료형 학습하기

교육 전 헬렌들에게 데이터베이스에 들어갈 수 있을만한 것들에는 무엇이 있을지 질문하기

  • 이름, 나이, 성별, 날짜 등등..

질문한 내용을 바탕으로 수업 진행

MySQL 자료형 저장하는 값 사용되는 곳
INT Numeric value (숫자) 나이, 조회수
Boolean True or False 사용자의 행동 여부
CHAR, VARCHAR, TEXT, etc. 문자열 이름, id, password
DATE, DATETIME 날짜 및 시간 회원가입날짜, 생일

SQL Query 학습하기

웹 사이트에서 사용될 Database를 가정하고 가상의 Database를 만들어 볼 예정.

웹사이트에서 필요한 정보 자료형
사용자 고유 ID INT (AUTO_INCREMENT)
아이디 VARCHAR
패스워드 VARCHAR
이름 VARCHAR
나이 INT
전화번호 VARCHAR
생일 DATE

데이터베이스 생성 및 사용

  • CREATE [DATABASE];
  • USE [DATABASE];

테이블 생성하기

  • CREATE TABLE [TABLE] ( ... );

테이블에 값 집어넣기

  • INSERT INTO [TABLE] ( column1, column2, ... ) VALUES ( value1, value2, ... );

테이블에 있는 정보 가져오기

  • SELECT * FROM [TABLE] WHERE ... ;

MySQL의 주요 함수와 연산자 학습하기

※ 추후 배울 SQL Injection 취약점을 학습하는데 기본이 되는 부분이므로 꼼꼼히 가르칠 필요가 있음.

연산자

  • value1 = value2 : 두 값이 같으면 1을 리턴함.
  • value1 <> value2 : 두 값이 다르면 1을 리턴함.
  • value1 > value2 : value1이 더 크면 1을 리턴함.
  • value1 < value2 : value2가 더 크면 1을 리턴함
  • value1 >= value2 : value1이 더 크거나 같으면 1을 리턴함
  • value1 <= value2 : value2가 더 크거나 같으면 1을 리턴함.

리턴되는 1은 TRUE와 같은 뜻임을 미리 가르쳐준다.

주요 함수

  • substr(string, 0, 1) : 문자열을 자르는데 사용하는 함수
  • CHAR(int_value) : int값에 해당되는 ascii 문자를 리턴함
  • ORD(char_value) : 인자로 전달된 문자의 ascii 값을 리턴함.
  • HEX(int_value or char_value) : 각 값을 hex 처리하여 보여줌.

특이한 기능

  • select 0x41; # A
  • select 0x42; # B

SELECT를 사용하여 HEX값을 출력하고자 하면 각 HEX 값에 매칭되는 문자를 출력함.

방명록 만들기

배운 기능으로 방명록 테이블 만들기. 들어가야할 내용은 다음과 같음.

  • 이름
  • 나이
  • 방명록 메시지

헬렌들이 모두 다 만들었으면 돌아가면서 서로의 노트북에 방명록 남겨주기

서로가 만든 방명록 테이블의 구조를 모르기 때문에 DESC [TABLE] 명령을 사용하여 구조를 파악한 후 INSERT문 실행.