18. 데이터베이스(MySQL) 이론

https://www.opentutorials.org/course/1688/9386


※ Codeanywhere 사용자

https://www.youtube.com/watch?v=3tyWhVCBiJE&feature=youtu.be


[Project Name] 우클릭 → [SSH Terminal]

명령어 : mysql -u root -p    (패스워드 셋팅 X)



1) 데이터베이스 이론1

데이터베이스란?

- 정보를 관리하는 전문 애플리케이션


파일

- 가장 기본적이고 원시적인 형태의 데이터 관리 수단

- 잘 사용하지 않음

- 장점 : 어느 시스템에서나 사용 가능 / 따로 설치 필요 X / 심플


데이터베이스

- 주로 사용

- 장점 : 안전하다(외부 접근, 시스템 고장) / 빠르다(인덱스) / 프로그래밍적 제어가능

- 단점 : 따로 공부 필요 / 따로 설치 필요


데이터베이스 ⊃ 관계형 데이터베이스 ⊃ MySQL, MSSQL, Oracle


 MySQL

- Web과 함께 성장한 데이터베이스

- Open Source라고 하는 형태로 개발된 데이터베이스

- MariaDB는 MySQL이 완벽하게 호환


데이터베이스

- Structured : 구조화된

ex) 표(=table)

- Structured Query Language : 컴퓨터에게 구조화된 정보를 질의하는 프로그래밍 언어


Client와 Server는 상대적인 개념

- 웹브라우저(Client) ↔ PHP(Server)

- PHP(Client) ↔ MySQL(Server)



2) 데이터베이스 이론2


MySQL monitor

- 표준적인 MySQL Client

- 사용이 조금 어려움


운영체제 별 MySQL monitor 실행 방법

- 윈도우

1) cmd 실행

2) cd [mysql이 들어있는 경로]

ex) cd C:\Bitname\wampstack...\mysql\bin

3) mysql -hlocalhost -uroot -p

- 맥

1) Terminal 실행

2) cd [mysql이 들어있는 경로]

ex) cd /Applications/mampstack.../mysql/bin

3) ./mysql -hlocalhost -uroot -p

- 리눅스

1) terminal 실행

2) cd [mysql이 들어있는 경로]

ex) cd /opt/lampstack.../mysql/bin

3) ./mysql -hlocalhost -uroot -p


명령어 해석

→ mysql -hlocalhost -uroot -p

- 'mysql' : MySQL monitor라고 하는 프로그램을 실행시키겠다.

- '-hlocalhost' : -h 뒤에 따라오는 것이 MySQL Server의 주소이다.

→ MySQL monitor가 설치되어 있는 컴퓨터에 같이 설치되어있는 MySQL Server에 접속하겠다.

- '-uroot' :  -u 뒤에 따라오는 것이 관리자 아이디이다.

→ localhost에 존재하는 MySQL Server에 접속할 수 있는 관리자 아이디가 root이다.

- '-p' : 비밀번호를 입력받아라



3) 데이터베이스 이론3

- 하나의 서버안에는 여러 개의 데이터베이스가 존재할 수 있다.

- 하나의 데이터베이스 안에는 여러 개의 테이블이 존재할 수 있다.


데이터베이스 보기

1
show databases;
cs



데이터베이스 생성

1
CREATE DATABASE opentutorials CHARACTER SET utf8 COLLATE utf8_general_ci;
cs



데이터베이스 선택

1
use opentutorials;
cs


- 데이터베이스를 선택하고 나면, 그 다음부터 내리는 명령이 해당 데이터베이스에게 전달된다.

    

테이블 생성

1
2
3
4
5
6
7
8
CREATE TABLE `topic` (
  `id` int(11NOT NULL AUTO_INCREMENT,
  `title` varchar(100NOT NULL,
  `description` text NOT NULL,
  `author` varchar(30NOT NULL,
  `created` datetime NOT NULL,
  PRIMARY KEY (id)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
cs


- 지정한 데이터타입이 아닌 값이 들어오면 오류가 발생한다.

- NOT NULL : 반드시 정보가 입력되어 있어야 한다.

- AUTO_INCREMENT : 행이 추가될 때마다 해당 데이터의 값이 1씩 자동 증가 


테이블 확인

1
show tables;
cs



데이터 삽입

1
INSERT INTO `topic` (title, description, author, created) VALUES('about javascript''jav'javascript is ~', 'egoing', '2015-4-10 12:20:5');
cs



데이터 가져오기

1
SELECT * FROM topic;
cs



- title, author 정보만 알고 싶을 때

1
SELECT title, author FROM topic;
cs



데이터 추가 삽입

1
2
INSERT INTO `topic` (title, description, author, created) VALUES('variable and constant','variable is ~''raon''2015-4-20 09:20:5');
INSERT INTO `topic` (title, description, author, created) VALUES('hello','hello is ~''hello''2015-4-23 09:20:52');
cs



- 특정 행의 데이터만 가져오고 싶을 때

→ WHERE 사용

1
SELECT * FROM topic WHERE id =3;
cs



- 정렬

→ ORDER BY 사용

(DESC = descendent : 하강성의)

1
SELECT * FROM topic ORDER BY id DESC;
cs








+ Recent posts