오늘은 데이터 베이스에 대해서 알아보겠습니다~!!
데이터를 저장하는 곳
데이터베이스는 왜 필요할까요?
예를 들어, 회원가입과 로그인을 하는 상황을 생각해볼까요?
회원가입을 할 때 우리는 우리의 아이디, 비밀번호, 메일, 전화번호 등의 정보(=데이터)를 입력합니다
그럼 서버 측은 이 데이터를 저장해 뒀다가 로그인 할 때 입력받은 아이디와 비밀번호가 저장된 아이디 및 비밀번호와 일치하는 지 확인합니다
이 때, 데이터를 저장할 공간이 필요하겠죠?
바로 그것이 데이터베이스입니다
우리는 표 형태로 데이터를 저장한 데이터베이스를 관계형 데이터베이스라고 합니다
그렇다면 이러한 관계형 데이터베이스는 어떤 구조로 이루어져 있을까요?
이해하기 쉽게 예를 들어볼게요
여러분이 공대 학생 정보를 저장한다고 해봅시다
공대 안에는 여러 학과들이 있습니다
예를 들어 컴퓨터공학과, 전자공학과, 화학공학과 등이 있어요
그렇다면 학생 정보를 분류해서 학과 별로 저장하는 것이 좋겠네요
학생 정보에는 학번, 이름, 전화번호 등이 있습니다
이 구조를 그림으로 나타내면 아래와 같습니다
우선 위의 컴퓨터공학과 학생 표는 테이블이라고 부릅니다
테이블 안에는 학번, 이름, 전화번호와 같이 각 데이터의 카테고리가 존재합니다
이 카테고리를 column(열)이라고 합니다
그리고 각 학생에 대한 정보 세트(학번-이름-전화번호)가 가로로 한 줄씩 나열되어 있는데요, 이 데이터 가로줄 하나를 row(행)라고 합니다
그런데 공대에는 컴퓨터공학과 뿐만 아니라 다양한 과가 있었죠?
컴퓨터공학과, 전자공학과, 화학공학과와 같이 서로 관련있는 테이블을 하나로 묶어줄 수 있는 공간이 필요하며, 이 공간을 데이터베이스라고 부릅니다
⭕ DB의 구조 정리
- 데이터베이스 : 서로 관련 있는 테이블을 하나로 묶어줄 수 있는 공간
- 테이블 : 데이터를 저장하는 표
- column(열) : 데이터의 카테고리
- row(행) : 데이터 한 세트
우리는 클라이언트로부터 데이터를 입력받아 데이터베이스에 잘 저장했다가 필요할 때 꺼내서 활용할 수 있어야만 하는데요,
DB에 입력받은 데이터를 넣고 꺼내오며 웹 페이지를 만드는 데 활용하는 것은 WAS의 역할입니다
바로 이런 구조인 것이죠
WAS는 DB에게 데이터를 입력하라던지, 특정 데이터를 달라고 하는 등의 명령을 전달해야만 합니다
이 때 WAS가 DB와 대화하는 방법이 바로 SQL입니다
💡 SQL
데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어
그렇다면 SQL의 몇 가지 중요한 명령을 알아볼까요?
SELECT는 데이터를 선택해서 가져오는 명령입니다
어떤 테이블에서 특정 카테고리의 데이터를 가져오는 SELECT문은 아래와 같이 작성할 수 있습니다
SELECT [column 명] from [table명]
# ex) SELECT 학번, 이름 from 컴퓨터공학과
만약 테이블의 모든 카테고리를 다 가져오고 싶다면 *
를 활용합니다
SELECT * from [table명]
INSERT는 데이터를 저장하는 명령입니다
어떤 데이블에 한 행을 추가하는 INSERT문은 아래와 같이 작성할 수 있습니다
INSERT INTO [table 명] (column 명) VALUES (값)
# ex) INSERT INTO 컴퓨터공학과 (학번,이름,전화번호) VALUES (25004,'최00','01098761234')
테이블의 모든 카테고리에 데이터를 넣는다면 (column 명)을 생략할 수 있습니다
# ex) INSERT INTO 컴퓨터공학과 VALUES (25004,'최00','01098761234')
WHERE은 SELECT에 특정한 조건을 걸어 정교하게 데이터를 선택할 수 있는 명령입니다
WHERE은 SELECT의 맨 마지막 부분에 붙입니다
특정한 조건을 걸어 원하는 데이터만 뽑아보는 WHERE문은 아래와 같이 작성할 수 있습니다
SELECT [column 명] FROM [table 명] WHERE [조건]
# ex) SELECT 이름 FROM 컴퓨터공학과 WHERE 학번 = 25002
그렇다면 실제로 이 둘을 어떻게 연결시킬까요?
php(WAS)와 Mysql(DB)을 연결하는 방법에 대해 알아보겠습니다
그래야 DB에 접근할 수 있으니까요
DB에 연결하기 위해서는 4가지 정보가 필요합니다
- DB의 주소
- DB 계정 아이디
- DB 계정 비밀번호
- DB 이름
그렇다면 아이디가 admin이고 비밀번호가 admin1234인 localhost에 저장된 '공대'라는 DB에 연결하는 예시를 알아보도록 하겠습니다
<?php
# 상수로 DB 주소, 아이디, 비밀번호, DB 이름 선언
define('DB_SERVER','localhost');
define('DB_USERNAME','admin');
define('DB_PASSWORD','admin1234');
define('DB_NAME','공대');
#DB 연결
$db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
?>
DB는 mysqli_connect
라는 함수를 활용하여 연결합니다
이 때, DB 주소
, DB 아이디
, DB 비밀번호
, DB 이름
을 차례로 파라미터로 전달합니다
연결에 성공한다면 연결 성공 티켓을 변수에 저장합니다
이제 DB에서 데이터를 가져오는 코드를 작성해볼까요?
<?php
$sql = "SELECT * FROM 공대";
# DB 연결 티켓과 sql문을 mysqli_query 함수를 이용해 전송하고 결과를 result 변수에 저장
$result = mysqli_query($db_conn, $sql);
# mysqli_fetch_array = select의 결과를 한 줄씩 가져오는 함수
$row = mysqli_fetch_array($result);
# 가져온 데이터 한 줄에서 column이 이름인 데이터를 출력한다
echo "Name :".$row['이름']
?>
이렇게 DB 연결을 통해 원하는 데이터를 가져오는 방법까지 알아보았습니다
감사합니다