생활코딩/웹어플리케이션 만들기

[생활코딩/웹어플리케이션] 데이터베이스(MySQL) 이론

닥스훈스 2019. 3. 12. 03:01

SQL

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

장점

안전하다, 빠르다(인덱스를 통해서 정보를 빠르게 찾을 수 있도록 정리되어있다), 프로그래밍적 제어 가능


두대의 컴퓨터가 있을때, 한대의 컴퓨터가 MySQLClient, 다른 하나는 MySQLServer일 때, 다음과 같은 관계가 성립된다.

그림으로 나타내면 아래와 같다.




최종적으로 만드려는 웹에플리케이션이 데이터베이스와 어떤 관계인지는 다음과 같다.


웹브라우저에 a.php를 입력하면 웹서버는 php를 처리할수 없음을 알고 php에게 a.php를 요청한다. 그럼 php엔진은 a.php를 한줄한줄 읽어나가는데 sql구문이 있다면 php엔진은 mysql에 접속하고, php는 mysql이 전송해준 데이터를 가공해서 웹페이지를 만들고, 이것을 웹서버에게 돌려준다.

최종적으로 웹서버는 이렇게 만들어진 웹페이지를 웹브라우저에게 전해주면서 사이클이 끝나게 된다.





MySQL monitor은 Mysql을 설치하면 자동으로 설치가 되며, 표준적인 Mysql 클라이언트라고 할 수 있다. 데이터베이스 서버에 접속할 수 있는 장점이 있지만, 단점은 여러 명령어를 알아야하기 때문에 사용하기가 어렵다는 점이다. 





MySQL Monitor 사용하기


윈도우+R후 cmd입력 후
cd C:\Bitnami\wampstack-7.1.26-2\mysql\bin
mysql -hlocalhost -uroot -p

를 해주고, 암호를 입력하면 MySQL Monitor을 성공적으로 사용할 수가 있다.



데이터베이스 보기

Show databases;



데이터베이스 생성

CREATE DATABASE opentutorials CHARACTER SET utf8 COLLATE utf8_general_ci;



데이터베이스 선택

이제부터 opentutorials라는 데이터베이스를 사용할것이다.

use opentutorials;



테이블 생성

CREATE TABLE `topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL, //100보다 작은 문자를 넣으면 잘린다. NOT NULL:이름이 없으면 안됨
`description` text NOT NULL, //긴 텍스트를 받을 수 있어야한다.
`author` varchar(30) NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



생성된 테이블 확인

show tables;



데이터 삽입

  • INSERT INTO `topic` (`id`, `title`, `description`, `author`, `created`) VALUES(3, 'Opeartor', '<h2>Operator</h2>\r\n<h3>Description</h3>\r\n<p>Programming languages typically support a set of operators: constructs which behave generally like functions, but which differ syntactically or semantically from usual functions</p>\r\n<p>Common simple examples include arithmetic (addition with +, comparison with >) and logical operations (such as AND or &&). </p>\r\n', 'egoing', '2015-06-18 05:00:00');



데이터 가져오기

SELECT * FROM topic; //topic테이블에서 가져오겠다. *는 컬럼을 의미한다.
SELECT title, author FROM topic; //title과 author정보만 가져온다.



author를 내림차순으로 정렬

select id,titile,author,created FROM topic ORDER BY author DESC;