mysql 기본 데이타베이스 생성
mysql 기본 데이타베이스 생성
프로그램을 하는 사람들은 디비라른 것을 이용해야 할 것입니다.
DB란 자료를 보관하는 창고쯤으로 생각을 하면 되겠네요.
Data Base 의 약자라고 합니다.
웹 프로그램을 하는 사람들에게도 DB는 필수입니다.
홍보용 웹페이지만을 작성하는 간단한 홈페이지에서조차 DB를 원하는 곳이 많거던요.
예를 들면 홈페이지에 게시판이 있다거나 하는 것 말이죠.
또는 방문자들의 기록을 보고싶다고 하면 방문자들이 들어오는 것들을 어디에 기록을 해 놓아야 하는데 그런것들을 기록하는 것이 DB라고 보면 되겠습니다.
웹 프로그래에서 많이 사용하는 디비는 여러가지가 있겠지만 오늘은 MySQL에 대하여 이야기를 해 보고자 합니다.
간단한 사용법도 같이 말이죠.
MySQL은 PHP 와 함께 궁합이 잘 맞다고 합니다.
보통 "APM"이라고 부르는 패키지에서 궁합이 잘 맞아 떨어지죠.
Apache, PHP, MySQL 들의 이니셜이랍니다.
APache란 웹페이지를 보여 줄 수 있는 것을 구동하는 프로그램입니다.
아파치나 IIS 등의 프로그램이 실행이 되어야 우리가 인터넷에서 보는 웹페이지들이 보여진답니다.
PHP 는 웹 프로그램 언어 중에 하나랍니다.
웹프로그래밍 언어에도 JSP, ASP 등의 여러가지 프로그래밍 언어가 있습니다.
APM 서버를 구성할때는 대부분의 작업 업체들은 리눅스라는 무료 OS 를 사용한답니다.
하지만 우리가 사용하는 윈도우에서도 돌릴수 있는 프로그램이 있어요.
바로 APM_Setup 이라는 프로그램입니다.
PHP로 웹프로그램 하는 사람들에겐 아주 유명하며 유용한 프로그램인데 이제 더 이상 운영을 안 하시더라구요.
일단 인터넷에 돌아다니는 프로그램을 다운 받아 설치해 보았습니다.
설치를 하고 나니 위와 같은 메뉴가 새로 생겼습니다.
APMSETUP 모니터 메뉴와 MySQL 컨솔을 불러올 수 있는 메뉴입니다.
우선 모니터를 클릭해서 서버를 구동시킵니다.
그 다음은 MySQL 컨솔에서 디비관련 작업을 할 수 있습니다.
MySQL 디비 사용은 phpMyAdmin 이라는 프로그램을 사용하면 아주 편하게 할 수가 있습니다.
하지만 오늘은 커멘트창에서 아주 기본적인 것 몇개만 보도록 하겠습니다.
설치후 제 개인 컴퓨터에 아파치서버와 MySQL을 기동 시켰습니다.
서버 메모리 사용량은 제로이네요.
테스트를 하기 위한 것이다 보니 아직 서버를 돌리지 않아 제로로 나오는 모양입니다.
아파치2와 mysql 5는 정상 동작중입니다.
기본 홈페이지가 운영되지 않는 관계로 더 이상의 업데이트는 불가합니다.
APM SETUP 7 버전이 되겠습니다.
CMD 로 커멘드창을 불렀습니다.
저는 APMSETUP을 D 드라이브에 설치를 하였습니다.
나중에 운영체제 날아가더라도 자료들은 필요하니 말이죠.
리눅스로 서버를 운영할때도 운영체제 돌아가는 파티션과 자료 파티션은 나누어 운영을 하는게 좋습니다.
해킹이나 다른 이유로 서버가 맛탱이가 갔을때는 새로 설치를 해야 하는 경우가 가끔 아주 가끔 있을 수도 있는데
그런 경우 파티션을 따로 구분을 하지 않으셨으면 복구를 하는데 몇배로 힘이 드니 말이죠.
바로 그때그때 휘발성 자료들만 있는 서버라면 상관없지만 그렇지 않은 경우는 아주 낭패랍니다.
D:\>D:\APM_Setup\Server\MySQL5\bin\mysql -u root -p
우선 디비에 접속을 해 봅니다.
MySQL 을 PATH를 안 걸어 놓은 상태라 명령어가 있는 디렉토리까지 가던지 풀경로로 하여 실행을 하였습니다.
사용자는 아직 만든게 없으므로 root 로 접속을 합니다.
APMSETUP에서는 패스워드는 기본적으로 설정이 되어 있더라구요.
리눅스에서 MYSQL 기본 프로그램을 다운받아 설치를 한 경우에는 기본적으로 루트 패스워드가 없을 것입니다.
Enter password: *********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.1.41-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
패스워드을 입력하고 접속을 하니 방갑다고 하네요.
그리고 도움이 필요하면 help를 입력하라는 메시지도 보입니다.
mysql>help
를 실행한 화면입니다.
뭔가 모르겠지만 설명들이 쭈~~욱 흘려내렸습니다.
기본적으로 컨솔화면에서 MYSQL의 다른 명령어들은 ; (세미콜론)을 입력해야만 명령어 입력이 끝이 났다고 인식을 하고 실행이 됩니다.
하지만 핼프는 세미콜론 없이 그냥 바로 엔터키를 져도 실행이 되어져 버립니다.
우선 접속을 한 다음에 어떤 Database들이 있는지 확인을 해 봅니다.
mysql> show databases;
첫번째 사진에서 바로 이 부분인데요. 뒤에 세미콜론 있는거 보이시죠.
저게 없다면 명령어가 아직 끝이 아니라고 인식하고 줄바꿈만 된답니다.
데이타베이스나 테이블의 경우 확인을 할 때 복수형으로 확인을 해 준답니다.
처음엔 그냥 단수형으로 입력을 하니 바로 에러를 뱉어 내어 버리네요.
현재의 MYSQL에 있는 데이타베이스들을 모두 보여 달라는 것입니다.
MYSQL을 큰 창고라고 친다면 창고안에는 종류별로 구분을 하는 방이 있고 방 안에 자료들을 넣을 수 있는 박스가 있답니다.
박스안에는 필요한 자료들이 넣어져 있겠네요.
여기서 MySQL을 창고라고 하면 각 방은 DATABASE이고 데이터베이스 안에 있는 박스들은 table이라고 할 수 있겠습니다.
자료들은 테이블안에 차곡차곡 쌓인답니다.
우선 테스트를 할 데이타베이스를 "test"라는 이름으로 만들었습니다.
mysql> create database test;
Query OK, 1 row affected (0.03 sec)
"test" 데이터베이스 방으로 들어가려면 use 라는 명령어를 사용한답니다.
mysql> use test;
Database changed
사용 할 데이터베이스가 변경되었다는 메시지입니다.
하단의 메시지들은 잘 보셔야 한답니다.
명령어를 잘못 입력한 경우에는 가차없이 에러를 나타내거던요.
mysql> show tables;
Empty set (0.02 sec)
데이타베이스 방으로 왔으니 이제 어떤 박스들이 있는지 봐야겠네요.
하지만 아직 방만 만들고 자료를 담을 수 있는 박스들은 만들지 않았기에 비어 있다고 합니다.
그럼 박스같이 데이타를 담을 수 있는 테이블을 하나 만들어 보도록 하겠습니다.
mysql> CREATE TABLE `test`.`intest` (
-> `no` INT NOT NULL AUTO_INCREMENT ,
-> `data` VARCHAR( 255 ) NOT NULL ,
-> PRIMARY KEY ( `no` )
-> );
Query OK, 0 rows affected (0.06 sec)
"intest"라는 테이블을 하나 만들었습니다.
이 테이블 안에는 자료들이 들어오면 자동으로 숫자가 하나씩 늘어나는 칸과 해당 자료를 담을 수 있는 칸으로 만들었습니다.
위에서 마이에스큐엘은 세미콜론을 입력하여야 명령어가 끝이 났다고 인식을 한다고 했는데요.
위에는 그얀 엔터키를 쳤을때 모습니다.
줄만 바뀌고 명령어 실행이 되지 않고 다음 입력을 받게 기다리고 있는거죠.
mysql> CREATE TABLE `test`.`intest` ( `no` INT NOT NULL AUTO_INCREMENT , `data` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `no` ) );
저 위에 명령어와 바로 위 명령어는 같은 것이랍니다.
테이블을 만들었으니 제대로 만들어 졌는지 다시 한번 확인을 해 보도록 하겠습니다.
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| intest |
+----------------+
1 row in set (0.00 sec)
와우!! "intest"라는 테이블이 바로 만들어 졌습니다.
그럼 이 테이블에 자료를 하나 담아 보도록 하겠습니다.
mysql> INSERT INTO `test`.`intest` ( `no` ,`data` ) VALUES ( NULL , '가나다');
Query OK, 1 row affected (0.00 sec)
바로 이 부분인데요.
"Insert" 라는 명령어로 마이에스큐엘 테이블에 자료들을 담을 수 있습니다.
형식은 위에 보신것과 동일하답니다.
" insert into 테이블명 ( 칼럼들 ) values ( 해당값들 ); "
요렇게 해 주면 되는 것이죠.
그럼 제대로 담겼는지 한번 확인을 해 보도록 하겠습니다.
mysql> select * from intest;
+----+--------+
| no | data |
+----+--------+
| 1 | 가나다 |
+----+--------+
1 row in set (0.00 sec)
테이블에 담겨져 있는 자료들을 가져오는 명령어가 바로 " select" 랍니다.
intest 안에 있는 자료들을 보여 달라는 것이죠.
위는 아주 기본적인 형태이면 조건에 맞는 자료들을 찾을 수도 있고 정렬순서도 정할수가 있답니다.
select 명령어의 기본 형태는 아래와 같습니다.
"selet 원하는 칼럼들 from 테이블명 Where 조건절 order by 정렬을 원하는 칼럼 limit 자료를 뽑을 숫자"
mysql> select * from intest Where 1 order by no asc limit 0,1;
라고 입력하여도 위와 같이 동일하게 나온답니다.
'APM' 카테고리의 다른 글
MySQL 데이터 update 및 칼럼추가! (0) | 2018.12.26 |
---|---|
MySQL 기본 insert, auto_increment, select ! (0) | 2018.12.24 |