MySQL 시작
7671 단어 MySQL
대개
WEB학과의 프런트엔드 엔지니어는 앞으로 MySQL을 배울 계획이지만, SQL을 잘 모르기 때문에 최소한의 조작을 기억할 필요가 없다.
나의 경험을 토대로 처음에 기억해야 할 일을 총결하였다.그렇긴 한데, 처음에 어디서 걸려 넘어졌는지 기억이 다소 흐릿해서 수요를 충족시킬 수 있을지 모르겠다.
차리다
MacOSX의 경우 MySQL을 사용할 수 있습니다.사용하지 않은 사용자
brew
는 Google에서 검색하십시오.그리고 Windows 사용자들도 스스로 방법을 생각해 보세요.% brew install mysql
version을 확인합니다.제 손에는 5.7.17
입니다.버젼이 다르면 brew upgrade mysql
최신판으로 변경할 수 있습니다.% mysql --version
start, stop
MacOSX
brew install mysql
를 사용할 때 다음과 같이 start, stop을 할 수 있습니다.mysql.server status
작동 여부를 확인할 수 있다.mysql.server start
mysql.server stop
01:MySQL 대화
기본값이라면 루트 사용자가 nopassword를 통해 로그인할 수 있을 것 같습니다.
mysql -u root
터미널에서 다음 화면이 나오면 MySQL과 대화할 수 있는 상태mysql>
생성된 데이터베이스 목록을 표시합니다.mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
당분간use mysql;
실행하자.mysql> use mysql;
Database changed
use mysql
의 상태에서 집행show tables;
.mysql> show tables;
省略
31 rows in set (0.00 sec)
상술한 표 일람표에 user
가 있으니 한번 봅시다.mysql> select Host, User from user;
+-----------+-----------+
| Host | User |
+-----------+-----------+
| localhost | mysql.sys |
| localhost | root |
+-----------+-----------+
2 rows in set (0.00 sec)
Host, User
열만 보이기 때문에 간단합니다.모든 열을 표시하려면 *
별표를 추가하십시오select * from user;
이렇게 하면 폭이 너무 길어서 잘 보이지 않는다.마지막;
을 분호\G
로 바꾸면 비교적 쉽게 볼 수 있습니다.select * from user\G
exit;
를 실행하면 대화 모드를 종료할 수 있습니다.mysql> exit;
02: 명령줄에서 MySQL 명령 실행
아래와 같이 명령줄에 직접 명령을 쓸 수 있습니다.
mysql -u root mysql -e 'show tables;'
또는 명령문을 파일에 저장하고 실행할 수 있습니다.아래와 같이 한 줄show tables;
의 파일만 저장합니다.% cat example.sql
show tables;
다음 명령을 실행하여 작업을 확인하십시오.mysql -u root mysql < example.sql
03: 연습용 패킷 만들기
다음 명령을 사용하여 연습용 패키지를 만듭니다.
mysql -u root -e 'create database mydb'
다음 명령을 통해 mydb
와의 상호작용 모드를 시작할 수 있습니다.mysql -u root mydb;
04: 연습용 테이블 만들기
드릴이니까 적당히 테이블을 만들게요.아래의
scheme.sql
서류를 작성해 주십시오.DROP TABLE IF EXISTS todos;
CREATE TABLE `todos` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`status` int(1) DEFAULT '0',
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
다음 명령을 실행하면 todos표를 여러 번 다시 만들 수 있습니다.mysql -u root mydb < schema.sql
05: 행 추가, 참조, 업데이트 및 삭제
행 추가
mysql> INSERT INTO todos (title, status) VALUES ("買い物", 1);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO todos (title, status) VALUES ("料理", 0);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO todos (title, status) VALUES ("粗大ゴミ", 0);
Query OK, 1 row affected (0.01 sec)
인용하다mysql> select * from todos;
+----+--------------+--------+---------------------+---------------------+
| id | title | status | created | updated |
+----+--------------+--------+---------------------+---------------------+
| 1 | 買い物 | 1 | 2017-04-06 13:36:00 | 2017-04-06 13:36:00 |
| 2 | 料理 | 0 | 2017-04-06 13:36:00 | 2017-04-06 13:36:00 |
| 3 | 粗大ゴミ | 0 | 2017-04-06 13:36:01 | 2017-04-06 13:36:01 |
+----+--------------+--------+---------------------+---------------------+
3 rows in set (0.00 sec)
완료되지 않은 작업 필터링select * from todos where status = 0;
+----+--------------+--------+---------------------+---------------------+
| id | title | status | created | updated |
+----+--------------+--------+---------------------+---------------------+
| 2 | 料理 | 0 | 2017-04-06 13:36:00 | 2017-04-06 13:36:00 |
| 3 | 粗大ゴミ | 0 | 2017-04-06 13:36:01 | 2017-04-06 13:36:01 |
+----+--------------+--------+---------------------+---------------------+
2 rows in set (0.00 sec)
요리 완료 후 의뢰를 갱신합니다.mysql> select * from todos where id = 2;
mysql> update todos set status = 1 where id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
삭제하려는 경우는 다음과 같습니다.mysql> select * from todos where id = 2;
mysql> delete from todos where id = 2;
where id = 2
를 잊어버리면 모든 줄이 업데이트됩니다. 주의하세요.우선 select문에서where구역을 확인한 후 그 검색어의where구역에 문법을 더하면 틀림없다.06: 백업 및 복구
dump.지금까지의 일을 보존하다.
% mysqldump -u root mydb > dump.sql
잘못하면 음반 다 지워.문장의 상황을 잊어버리다.mysql -u root mydb -e 'delete from todos'
mysql -u root mydb -e 'select count(*) from todos'
+----------+
| count(*) |
+----------+
| 0 |
+----------+
아까 dump.sql
로 다시 시작합니다.mysql -u root mydb < dump.sql
순조롭게 회복되었다.mysql -u root mydb -e 'select count(*) from todos'
+----------+
| count(*) |
+----------+
| 2 |
+----------+
06:pager 설정
mysql.사용자의 모든 열을 펼치면 화면이 무너지고 잘 보이지 않는 상황에서
\G
를 사용하는 방법도 소개했고 페이지를 지정하는 방법도 있습니다.mysql> pager less
PAGER set to 'less -S'
이 상태에서 다음 명령을 실행하여 십자 키로 이동하십시오.select * from mysql.user;
이 조작less -S
을 중지하려면 아래 명령을 실행하십시오mysql> nopager
PAGER set to stdout
이렇게 긴 화면을 복제하는 경우도 있다고 생각했는데 터미널에서는 어떻게 해야 좋을지 모르는 경우도 있었다.이 경우 나중에 사용하기 쉬운 편집기에서 출력 대상을 파일로 열 수도 있습니다.mysql> pager cat > output.txt
PAGER set to 'cat > output.txt'
mysql> select * from mysql.user;
2 rows in set (0.00 sec)
mysql> nopager
PAGER set to stdout
07: CSV로 표시
MySQL에서 데이터를 꺼내도록 의뢰받은 엔지니어는 다음과 같은 형식으로 비엔지니어의 의뢰인에게 직접 맡긴다.
잘 들어보면 CSV 데이터를 원하지만 엔지니어가 바쁜가 봐 스스로 CSV화하려고 노력할 수도 있다.
% mysql -u root mydb -e 'select * from todos;'
+----+--------------+--------+---------------------+---------------------+
| id | title | status | created | updated |
+----+--------------+--------+---------------------+---------------------+
| 1 | 買い物 | 1 | 2017-04-06 13:36:00 | 2017-04-06 13:36:00 |
| 3 | 粗大ゴミ | 0 | 2017-04-06 13:36:01 | 2017-04-06 13:36:01 |
+----+--------------+--------+---------------------+---------------------+
만약 이런 상황이 발생한다면 아래의 방법을 참고하시오.또는 MySQL Workbench와 같은 도구를 사용할 수 있습니다.
총결산
페이지와 표현 형식에 관해서는 처음에는 신경 쓸 필요가 없지만 머리의 한 귀퉁이에 두는 것이 좋다고 생각합니다.끝.
Reference
이 문제에 관하여(MySQL 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okamuuu/items/c4efb7dc606d9efe4282텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)