[MySQL] MySQL 기초

2020. 6. 19. 12:52Database

  MySQL Client의 많은 Client 중에서 MySQL monitor를 사용해서 MySQL Server를 제어할 것이다 ❗️

  MySQL monitor는 MySQL을 설치하면 MySQL Sever와 함께 기본적으로 설치되는 기본 프로그램이다. 처음 사용하기에는 익숙하지 않아서 불편하긴 하지만 Database Sever가 동작하는 모습을 투명하게 보여주기 때문에 교육적인 가치가 높아서 사용할 것이다. 

 

 

 

실행 방법 (Window)

  1️⃣ cmd창 열기

 

 

  2️⃣ MySQL이 설치되어 있는 경로를 입력

C:\Bitnam\wampstack-7.4.6-1\mysql\bin\mysql.exe (<- mysql monitor)

cd C:\Bitnami\wampstack-7.4.6-1\mysql\bin

    cd : change directory

 

 

  3️⃣ MySQL monitor를 통해 Server 접속

mysql -hlocalhost -uroot -p

❗️ locahost에 해당되는 server에 root라는 아이디로 접속해라!

mysql -hlocalhost -uroot -p

mysql : MySQL monitor라는 프로그램을 실행시키겠다

-hlocalhost : MySQL의 주소다 (mysql monitor 입장에서는 mysql이 설치되어 있는 본인 컴퓨터가 되기 때문)

                      다른 컴퓨터에 설치되어 있다면 밑줄 부분에 그 컴퓨터의 주소를 입력해주기

-uroot : MySQL Sever에 접속할 수 있는 아이디

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

  📍 밑줄에 직접 비밀번호를 입력해도 되지만 해킹의 위험이 있기때문에 꼭 비밀번호를 입력할 때는 -p만 입력해주는 것을 권장한다

 

Bitnami를 설치할 때 설정했던 비밀번호를 치라고 했눈데,, 분명 맞는 비밀번호를 쳤는데도 계속 요런 에러가 났다 👀

Error 1045 access denied for user 'root'@'localhost' (using password Yes)

해결법 구글링! (링크는 하단에 있어요)

 

나의 경우에는 Enter를 쳤더니 되었다! 비밀번호 설정이 안되어 있었던 것 같다

MySQL monitor를 통해 Server에 접속 성공!

 

 

 

 


MySQL Sever > DATABASE > Table

 정보들을 구조적으로 저장하기 위해서는 표의 형태로 저장하는 방식을 선택할 것이다. 이 표는 여러 개가 될 수가 있는데 이것을 효율적으로 관리하기 위한 것이 Database이다. Table은 일종의 file과 같은 것이라, file을 관리하는 directory를 database라고 할 수 있다.

  💡 하나의 서버 안에는 여러개의 DB가 존재할 수 있고, DB안에는 여러 개의 table이 있을 수 있다.

  ➕ 두 개의 a.com, b.com 웹 에플리케이션을 구축한다면 두 개의 DB를 만든다)

 

 

 

 

 

✔️ 데이터베이스 보기

그러면 우리가 접속한 이 Sever에는 현재 어떤 DB들이 존재할까?

show databases;

현재 5개의 DB가 존재한다는 것을 알 수 있다.

📍 opentutorials라는 DB를 제외하고는 mysql이 필요해서 만들어둔 것이기 때문에 건들면 안된다

 

 

 

 

✔️ 데이터베이스 생성 (폴더를 생성한 것과 같음)

CREATE DATABASE 데이터베이스명 CHARACTER SET utf8 COLLATE utf8_general_ci;

- 다 소문자로 입력해도 됨

 

    linda 라는 Database 생성

`linda` DB가 만들어진 것을 볼 수 있다

 

 

 

 

✔️ 데이터베이스 선택

데이터베이스 생성을 맞췄으니까 그 안으로 들어가는 것을 해보자 (그 폴더로 들어간 것과 같음!)

use 데이터베이스명;

지금부터 내리는 명령은 linda라는 DB에게 전달이 된다

 

 

 

 

✔️ 테이블 생성

엑셀의 표와 같이 DB에 table을 만들어보자!

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;

1 : 'topic'은 table의 이름

2 : 'id'는 column의 이름

      int(11)정수가 와야한다

      NOT NULL 반드시 아이디 값이 있어야 한다

      ATUO_INREMENT 행이 추가될때마다 자동으로 숫자를 1씩 올려줌

3 : varchar(100) 최대 100글자

4 : text 이 정보는 긴 텍스트를 받을 수 있어야 한다

6 : datatime 시간과 날짜를 의미하는 데이터 형식

7: 성능을 위해 사용하는 옵션

📍 코드가 길더라도 Enter를 쳐도 된다. ;하고 Enter를 입력해야 코드가 실행된다

Query OK가 뜬다면 성공!

 

 

 

 

✔️생성된 테이블 확인

show tables;

linda라는 Database 내에 topic이라는 table이 있다

 

 

 

 

✔️ 데이터 삽입

INSERT INTO `테이블명` (`열1`, `열2`, `열3`, ...) VALUE('값1', '값2', '값3', ...);
INSERT INTO `topic` (`id`, `title`, `description`, `author`, `created`) VALUES(1, 'About JavaScript', '<h3>Desctiption</h3>\r\n<p>JavaScript  is ...</p>\n', 'egoing', '2015-03-31 12:14:00');
INSERT INTO `topic` (`id`, `title`, `description`, `author`, `created`) VALUES(2, 'Variable and Constant', '<h3>Desciption</h3>\r\n\r\nIn computer programming, a variable or scalar is \n', 'k8805', '2015-05-14 10:04:00');
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 ~~~</p>\r\n', 'egoing', '2015-06-18 05:00:00');
INSERT INTO `topic` (`id`, `title`, `description`, `author`, `created`) VALUES(4, 'Conditional', '<h3>Description</h3>\r\n<p>In computer science, conditional statements,...</p>', 'c2', '2015-07-25 00:00:00');

📍 문자를 쓸 때는 ' ', column명, table명은 ` `로 입력!

 

 

INSERT INTO `topic` (title, description, author, created) VALUES('about javascript', 'java script is ...', 'linda', 2015-4-10 12:20:5');

💡 AUTO_INCREMENT(값을 입력하지 않아도 행이 추가될 때마다 자동으로 1씩 증가시켜서 입력해주는 속성) 때문에 id 값을 굳이 입력하지 않아도 된다.

 

 

 

 

✔️ 데이터 조회하기

    `topic`이라는 테이블의 모든 데이터 조회하기

SELECT * FROM topic;

    알고싶은 정보가 title과 author라면

SELECT title, author FROM topic;

SELECT title, author FROM topic;

💡 column명을 입력한 순서대로 창에 출력된다

 

    id가 3인번째의 행을 가져오기

SELECT title, author FROM topic WHERE id=3;

   데이터 정렬해서 출력하기

SELECT id, title, author FROM topic ORDER BY id DESC;

SELECT id,title, author FROM topic ORDER BY title;

SELECT id,title, author, created FROM topic ORDER BY created DESC;


 

 

 

 

 

참고 🙏🏻

생활코딩

https://opentutorials.org/course/1

MySQL 로그인 해결법

https://m.blog.naver.com/PostView.nhn?blogId=doublebee1&logNo=221145290011&proxyReferer=https:%2F%2Fwww.google.com%2F

https://babytiger.tistory.com/entry/mysql%EC%97%90-%EB%A1%9C%EA%B7%B8%EC%9D%B8%EC%9D%B4-%EC%95%88-%EB%90%A0-%EA%B2%BD%EC%9A%B0

'Database' 카테고리의 다른 글

[MySQL] 관계형 데이터베이스 실습  (0) 2020.06.22
[MySQL] 데이터베이스  (0) 2020.06.19