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(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; | 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 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 |
'컴퓨터 > 웹 개발' 카테고리의 다른 글
[코딩야학] ~ 관계형DB실습 - 17일차 (0) | 2017.08.11 |
---|---|
[코딩야학] ~ MySQL실습 - 16일차 (0) | 2017.08.10 |
[코딩야학] ~ PHP 실습 - 13,14일차 (0) | 2017.08.08 |
[코딩야학] ~ JS실습 - 11,12일차 (0) | 2017.08.02 |
[코딩야학] ~ 프로그래밍 접근방법 - 10일차 (0) | 2017.08.01 |