본문 바로가기

DB/MySQL

MySQL을 이용한 데이터 베이스 만들기

반응형

PHP에 이용할 데이터 베이스인 MySQL로 간단한 데이터 베이스를 만들어 보도록 하자.

우선 MySQL콘솔 입력창에 들어가서 비밀번호를 입력하면 ‘mysql>’모양이 나오면서 mysql에 접속하게 된다.

<MySQL 콘솔창>

데이터베이스 만들기

여기서 showdatabases; 라고 치면 지금 현재 데이터 베이스들을 볼 수 있다. 그리고 ‘create database 만들고 싶은 데이터베이스 이름을 치면 만들고 싶은 이름으로 데이터 베이스가 생성

 *참고로 데이터 베이스를 지우는 명령어는 ‘drop database 데이터 베이스 이름이다. 하지만 데이터 베이스를 지우면 그 안에 있는 내용이 다 지워지므로 조심이 사용해야 한다.

<education 데이터베이스를 만드는 과정>

테이블 만들기

필드의 데이터 타입을 결정해야 하는데 숫자형(integer, float, double, decimal ), 날짜 및 시간 타입(date, time, timestamp ), 문자형(char, varchar, blob, text, enum, set )이 있다.

테이블을 만들 때는 2가지 방법이 있는데 하나는 직접 치는 방법과 미리 작성된 SQL문장 파일을 통해 테이블을 만드는 방법이다.

보통 많은 시스템에 데이터베이스를 설치 하려면 일일이 치는 것 보다 외부 파일을 만들어 데이터베이스를 만드는 것이 관리 하기에 용이 하다.

첫번째, 외부 파일로 테이블을 만들려면 텍스트 편집기로 외부 파일을 만들어야 한다.

<추가할 테이블의 외부파일>


파일명은 prof.sql이고 ‘create table 테이블이름순서로 명령어가 나온다. ’ (   ); ‘이제 이 안에는 내가 만들고 싶은 필드 명을 집어 넣을 수 있다. 위 파일에서는 PCODE(4byte 문자영, NULL이 못 들어 가게 하고, 기본 키로 설정), PNAME(10byte 문자열), PDEPT(12byte 문자열), PPHONE(4byte 문자열)로 구성 돼 있는 테이블이다.

이제 이 파일을 추가하는 일만 남았다.

1. ‘show databases;’로 데이터 베이스를 확인한 뒤

2. 원하는 데이터 베이스로 들어가려면 ‘use 데이터베이스 이름;’ 여기서는 ‘use education;’이 되겠다

3. 데이터 베이스에 들어와 ‘show tables;’라고 치면 현재 테이블을 보여주는데 아직 만든 게 없으므로 empty라고 나올 것이다.

4. 이제 여기서 외부 파일을 추가 하려면 ‘source 파일명;’인데 여기서 좀 헤맸다…. 그냥 파일명을 적는 것이 아니라 파일명은 경로를 밝혀줘야 한다. 나 같은 경우에는 ‘source C:/Users/Hyun/Documents/db/prof.sql;’경로에 있어 이렇게 쳐주니까 테이블이 잘 만들어졌다.

5. 이제 ‘show tables;’로 만들어진 테이블을 확인해 보자 만들어진 테이블을 확인하려면 ‘describe 테이블 명;’을 해주면 만들어진 테이블을 확인 할 수 있다.

<잘 만들어진 prof테이블>

두 번째로 직접 치는 방법은

외부 파일을 콘솔 창에 직접 치는 방법이다.

외부 파일을 추가할 때와 1~3까지는 동일하고 그 다음에 ‘create table prof( ‘엔터를 치면 ->화면이 나올 것이다. 그 다음부터 필드네임과 어떤 타입인지 외부 파일에 썼던 것을 써준 뒤 ‘);’를 치면 테이블이 완성 된다.

<직접쳐서 만든 테이블>


기존 테이터가 들어있는 테이블의 구조를 변경 방법

데이터베이스를 관리 하다 보면 기존 데이터가 있는 테이블의 구조를 변경해야 할 때가 있을 것이다. 기존 테이블에 새로운 필드를 추가하거나, 기존 필드를 삭제, 필드의 속성을 변경하거나, 인덱스 생성 또는 삭제, 필드의 이름을 바꾸거나 테이블 이름을 변경하거나 하는 다양한 경우에 ‘alter table’문장을 사용한다.

예를 들어, prof 테이블에 50 byte 문자열 주소 필드를 추가하려면 ‘ALTER TABLE prof ADD address CHAR(50);’ 문을 실행하면 되고, 테이블 이름을 PROF 에서 ADVISOR 로 변경하려면 ‘ALTER TABLE prof RENAME advisor;’ 문을 실행하면 된다. 또한, 전화번호(PPHONE) 필드의 속성을 15byte 문자열로 변경하려면 ‘ALTER TABLE prof CHANGE pphone CHAR(15);’ 문을 실행하면 된다. 필드 이름을 삭제하려면 ‘ALTER TABLE prof DROP pphone;’ 문을 실행하면 된다.

 

테이블에 데이터를 입력해 보자

데이터를 입력 할 때는 insert into 테이블명 (필드명, 필드명,…..) values(‘’, ‘’, …);

이런 식의 형식인데 예를 들어 코드를 보면 이해가 더 빠를 것 같다.

Prof 테이블에 pcode – P001, pname – 김구, pdept – 컴퓨터공학과, pphone – 0001인 레코드를 집어넣고 싶으면

inset into prof (pcode, pname, pdept, pphone)

                     values(‘P001’, ‘김 구’, ‘컴퓨터공학과’, ‘0001’);

이렇게 쳐주면 레코드가 테이블로 들어간 것을 볼 수 가 있다.

<inset into 문으로 데이터를 집어넣는과정>


테이블 만들 때와 마찬가지로 외부 파일로 추가 할 수 가 있다.

외부 파일을 만든 뒤 ‘source 경로명 포함파일명을 쳐주면 테이블 만들 때 외부 파일을 이용해 만들었던 것처럼 데이터 들이 테이블 안으로 들어간다.

<집어넣을 데이터를 외부 파일로 만든모습>

<외부 파일로 데이터가 들어간 모습>

P001이 에러가 나는데 그 이유는 pcode는 기본키로 설정이 되있기 때문에 insert -values구문으로 P001을 삽입 했었기 때문에 외부 파일에 있는 P001을 들어갈 수가 없어서 에러가 나고 나머지는 잘 들어간 것을 확인 할 수가 있다.


데이터 검색

위에서 잠깐 나온 select문이다. 기본적은 select 구문의 형식은 아래와 같다.

SELECT [DISTINCT] select_expression

FROM table_list

WHERE where_definition

ORDER BY col_name [ASC|DESC]

GROUP BY col_name_list

LIMIT [offset],rows

자세한 설명은 다음 글에서 예제를 풀어보면서 하도록 해야겠다.


이글은 제주대학교 통신컴퓨터공학부 곽호영 교수님께서 쓰신 MySQL 데이터베이스 기초를 참고로 작성하였다.

반응형