본문 바로가기
Coding/WebApp

데이터베이스(MySQL)이론

by 그냥그렇듯이 2017. 8. 27.
반응형

모든 저작권은 <생활코딩>의 생산자인 <egoing>님에게 있습니다.

문제시, 비공개로 전환하겠습니다.


<데이터베이스(MySQL) 이론>

데이터베이스란? 정보를 관리하는 전문 Application

HTML에서 가장 중요한 것은 정보

정보가 위치하는 곳이 가장 중요한 것

DATABASE의 가장 원시적인 형태는 바로 File 그 자체이다.

<DB의 장점은?>
1. 안전하다.
2. 빠르다. (Indexing)
3. 프로그래밍적 제어가능

요즘 가장 보편적으로 사용되는 DB모델은 관계형 DB이며, 이중 MySQL을 다룰 것이다.
MySQL을 다룰 줄 알면 Oracle, MSSQL등을 보다 손쉽게 다룰 수 있다.

<MySQL>
웹과 함께 성장해왔다. (WordPress, TextCube, PHBB 기타 등등이 기본 DB로 MySQL를 사용한다.)
Open Source이다.

MySQL의 Owner는 MySQL AB -> Sun(JAVA 개발사) -> Oracle로 팔리게됐다. 현재, MySQL은 Oracle의 소유이다.

MySQL == MariaDB (MariaDB는 공격적으로 성장중이다.)


'Structured (구조화된)' = Categorization & Profiling하는 것 = 표만드는 것 == table => 엑셀

정돈 X

 정돈 O (Structured, 구조화된)

 진혁이는 10살이고 가가초등학교를 다닌다. 취미는 농구이다.

이름: 진혁
나이: 10세
취미: 농구

<Structured Query Language (SQL) >
컴퓨터에게 구조화된 정보를 질의하는 프로그래밍 언어
이 SQL의 존재유무에 따라 DATABSE와 Excel이 구분된다.

<MySQL Client <-------> MySQL Server>
1. MySQL Client ---------SELECT*FROM topoic; -------> MySQL Server
2. MySQL Client <-------------Table Content------------MySQL Server

Client vs Server의 관계는 상대적이다.

출처 - 생활코딩(opentutorials.org)


- 데이터베이스 이론2 -

MySQL Monitor라는 Client 프로그램을 활용해서 MySQL Server를 제어할 것이다.
MySQL Monitor는 MySQL 설치시 자동으로 함께 설치된다.
MySQL Monitor의 단점은 사용이 조금 불편하다는 것이다. (명령어로 제어하기 때문)
하지만 MySQL Monitor는 DB가 구동하는 것을 투명히 보여주기때문에 활용가치가 매우 크다.

<MySQL Monitor 실행방법>
1. Mac, Linux
a. Terminal 실행
b. cd /Applications/mam.../mysql/bin
 c. ./mysql -hlocalhost -uroot -p
d. mysql password입력


-h[mysql서버접속주소값]
-u[서버의 아이디값]
-p : 비밀번호를 입력받아라. -p뒤에 이어서 비밀번호를 쓸 수 있지만
해킹의 위험이 있으므로 반드시 -p만 입력하여 비밀번호를 입력할 수 있는 명령어를 후속으로 띄우는게 좋다.

<이후>
a. mysql> show databases;
b. mysql> CREATE DATABASE opentutorials CHARACTER SET utf8 COLLATE utf8_general_ci;
c. mysql> show databases:를 쳐보면 opentutorials로 이름지어진 DB가 생성됨을 알 수 있다.


d. mysql> use opentutorials
**소문자는 data, 대문자는 명령어를 표기하자



<Opentutorials 디렉토리에 Table 만들기>

**Column의 이름은 ` `를 사용

e. mysql> CREATE TABLE `CREATE` (

-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `title` varchar(100) NOT NULL,
-> `description` text NOT NULL,
-> `author` varchar(30) NOT NULL,
-> `created` datetime NOT NULL,
-> PRIMARY KEY (id)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


 f. mysql> show tables; (생선된 테이블 확인)

 g. mysql> INSERT INTO `topic` (title, description, author, created) VALUES('about javascript', 'javascript is~', 'egoing', '2015-4-10 12:20:5');

 


 h. INSERT INTO `topic` (title, decription, author, created) VALUES('variable and constant', 'variable is~', 'Lumas', '2015-4-15 10:20:5');

 


i. decription이라고 오타가 나서 description이라고 바꾸었다.

 

 j. DB입력 & 출력

mysql> select id, title, author, created  from topic; 

 

k. 특정 ID값 출력


 mysql> select id, title, author, created  from topic where id=3;

 


 l. 정렬 (내림차순)

mysql> select id, title, author, created from topic ORDER BY author DESC;



댓글