본문 바로가기
안드로이드 웹앱 콘테츠 개발자 양성(국비지원)/DBMS

DBMS 1-1 (DDL를 이용 데이터 베이스와 테이블을 만들고 필드 추가 삭제)

by 차누감 2020. 1. 7.

DDL를 이용해서 DB 사용해보자.  [데이터 베이스와 테이블을 만들고 필드 추가 삭제 등을 알아본다. ]

  • create - database, table [if not exists]
  • alter - add, drop, chage, modify, rename
  • drop - database, table [if exists]

mysql을 사용하기 위해 xampp control를 실행시키자.

xampp의 mysql 경로를 보면 아래와 같다.

cmd창을 열어서 해당 경로로 가서 실행을 해야 한다.

해당 경로에서 mysql 입력

그 후 계정을 입력하는데 아이디는 -u"아이디" -p"비밀번호" 형식으로 쓴다.

xampp의 mysql 관리자 계정은 root이고 비밀번호는 없다.

관리자로 접속을 하면 현재 위치 경로가 아래 사진과 같이 바뀔 것이다. 

show를 입력해서 database가 있는지 확인해보자.

명령어 : show databases;

해당 DB를 사용하려면 use를 사용하고 원하는 db명을 쓴다.

명령어 : use mysql;

명령어 : show tables;

select문은 해당 테이블을 알맞게 볼 수 있다. 

(아래 명령어는 user 테이블로 부터 Host, User, Password만 보겠다..)

명령어 : select Host, User, Password from user;

이제 연습을 위해 기존에 있던 database 말고 새로 mrhi_db를만들자

명령어 : create database mrhi_db;

database가 잘 만들어 졌는지 확인해보자.

명령어 : show databases;

database를 삭제 할 수도 있다.

명령어 : drop database mrhi_db;

다시 연습을 위해 mrhi_db라는 데이터베이스를 만들자. 그리고 만든 db에서 작업하자.

명령어 : create database mrhi_db;

명령어 : show databases;

명령어 : use mrhi_db;

지금은 관리자 계정이지만, 연습을 위해 만든 db에 계정을 추가하겠다. 그 계정으로 작업을 하자.

mysql로 가서 user테이블을 보면 현재 계정들이 나온다.

명령어 : use mysql;

명령어 : select host,user,password from user;

관리자 권한으로 DB를 수정할 시 배우는 단계에서 실수할 여지가 있다. 그래서 새로운 사용자 계정을 만들자.

(임의로 mrhi_db 데이터베이스에 id는 cw , pw는 1234로 하였다.)

명령어 : grant all on mrhi_db.* to 'cw'@'localhost' identified by '1234';

mrhi_db DB에 해당 사용자 계정에 대한 권한을 부여하였다.

다시 mtsql의 host를 보면 방금 권한을 준 계정이 보일 것이다.

(비밀번호는 제대로 안보일 것이다. 그러나 위 사진에서 준 1234가 맞다.)

명령어 : select host, user,password from user;

이제 mysql을 나와서 방금전에 만든 계정으로 들어가자.

명령어 : exit;

명령어 : mysql -ucw -p1234

명령어 : show databases;

이제 mrhi_db 데이터베이스에서 연습을 해보자. 데이터베이스만 만들고 안에 내용(table)은 없을 것이다. 

명령어 : use mrhi_db;

명령어 : show tables;

이제 임의로 friend 테이블을 만들고 필드로는 num과name을 만들자.

명령어 : create table friend(num integer not null auto_increment, name char(10) not null, primary key(num));

명령어 : show tables;

명령어 : desc friend;

테이블을 만들때 필드로 num,name만 만들었지만, 추후 추가가 가능하다.

age를 추가해보자.

명령어 : alter table friend add age int;

똑같은 방법으로 email을 추가해보자.

명령어 : alter table friend add email varchar(20);

명령어 : desc friend;    // 테이블 정보 확인

필드 삭제도 가능하다.

명령어 : alter table friend drop email;

명령어 : desc friend;    // 테이블 정보 확인

필드에 tel 을 추가하고 tel의 이름과 Type을 변경 가능하다. ( tel -> hp // char(20) -> int )

명령어 : alter table friend add tel char(20);

명령어 : desc friend;

명령어 : alter table friend change tel hp int;

명령어 : desc friend;

Type만 변경 가능하다.

명령어 : alter table friend modify hp char(20);

명령어 : desc friend;

명령어 : alter table friend rename student;

명령어 : show tables;

테이블 삭제도 가능하다.

명령어 : drop table student;

명령어 : show tables;

만약 한번 만들었는데, 다시 똑같은 이름을 만드는 명령어를 실행한다면?

ERROR가 발생할 것이다. php문에서는 그 줄이 error나도 다음줄이 실행되서 연쇄적인 오류가 발생할 수 있다.

이것을 방지 하기 위해  있으면 실행하지 않고, 없을때만 실행되도록 해보자. ( if not exists )

명령어 : create table if not exists mem(num int, name char(10));

삭제 시에도 사용 가능하다.

명령어 : drop table if exists mem;

댓글