현업 SW 개발자의 연구 노트
Hits

mySQL 기본 명령어 정리

Hits
mySQL 기본적인 명령어를 기록해두는 페이지입니다.

mySQL 설치 방법

Ubuntu Linux 기준으로 설명드립니다.

$ sudo apt-get install mysql-server mysql-client

만약 php와 연동하기 위해서는 php-mysql 패키지도 설치합니다.

$ sudo apt-get install 

mySQL 서비스 동작 상태 확인

설치가 정상적으로 되었다면, 서비스가 정상적으로 돌아야 합니다.

$ sudo service mysql status

sudo service mysql status 명령을 실행했을 때, 아래와 같이 active (running)으로 상태가 표시되어야 합니다.

mysql 서비스가 정상적으로 실행중인 상태

mySQL 콘솔 접속 방법

sudo mysql -uroot -p 명령으로 mySQL 콘솔에 접속을 합니다. 반드시 sudo 권한으로 실행해야 합니다. 그렇지 않으면 아래와 같이 ERROR 1698 (28000) 에러가 뜹니다.

$ mysql -uroot -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

mySQL 콘솔에 정상적으로 접속이 되면 mysql\> 프롬프트가 표시됩니다.

SQL 쿼리시에 주의할 점

SQL 쿼리는 ;로 끝나야 합니다. 세미콜론을 입력하지 않고 엔터키를 누르면 SQL은 쿼리가 계속되는지 알고 개행된 상태로 쿼리를 계속 받게 됩니다.

이 점에 유의하시기 바랍니다.

데이터베이스 목록 조회

mysql\> 프롬프트에 show databases;를 입력하면 데이터베이스 목록을 조회할 수 있습니다.

mysql> show databases;

아래와 같이 실행 결과가 나옵니다.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set (0.01 sec)

데이베이스 선택

use 명령을 통해서 데이터베이스를 선택할 수 있습니다. 만약, wordpress라는 데이터베이스에 접속하려면 use wordpress;와 같이 명령을 실행하면 됩니다.

mysql> use wordpress;

wordpress라는 데이터베이스가 선택되었습니다.

만약 데이터베이스를 선택하지 않은 상태에서 테이블을 살펴보면, ERROR 1046 (3D000) 에러가 발생하게 됩니다.

mysql> show tables;
ERROR 1046 (3D000): No database selected

테이블을 출력하는 쿼리

사용할 DB를 선택했다면, 이번에는 테이블 목록을 살펴볼 차례입니다.

show tables; 명령으로 데이터베이스 내부에 어떤 테이블들이 있는지 살펴볼 차례입니다.

mysql> show tables;
+-----------------------+
| Tables_in_wordpress   |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.01 sec)

위와 같이 데이터베이스 내부의 테이블들이 표시됩니다.

테이블의 모든 내용을 출력하는 명령

가장 기본이되는 select 명령이 등장할 차례입니다.

mysql> select * from wp_users;
+----+------------------------+------------------------------------+-----------------------+-----------------------+----------------------------+---------------------+---------------------+-------------+------------------------+
| ID | user_login             | user_pass                          | user_nicename         | user_email            | user_url                   | user_registered     | user_activation_key | user_status | display_name           |
+----+------------------------+------------------------------------+-----------------------+-----------------------+----------------------------+---------------------+---------------------+-------------+------------------------+
|  1 | esregnet0409@gmail.com | ################################## | esregnet0409gmail-com | esrgnet0409@gmail.com | https://www.dhqhrtnwl.shop | 2022-05-12 07:14:10 |                     |           0 | esregnet0409@gmail.com |
+----+------------------------+------------------------------------+-----------------------+-----------------------+----------------------------+---------------------+---------------------+-------------+------------------------+
1 row in set (0.01 sec)

모든 데이터가 출력되기 때문에 필요한 항목들만 선택해서 출력할 수 있습니다.

컬럼을 조회하는 쿼리

show columns from wp_users; 쿼리를 통해서 컬럼 정보를 조회할 수 있습니다.

mysql> show columns from wp_users;
+---------------------+-----------------+------+-----+---------------------+----------------+
| Field               | Type            | Null | Key | Default             | Extra          |
+---------------------+-----------------+------+-----+---------------------+----------------+
| ID                  | bigint unsigned | NO   | PRI | NULL                | auto_increment |
| user_login          | varchar(60)     | NO   | MUL |                     |                |
| user_pass           | varchar(255)    | NO   |     |                     |                |
| user_nicename       | varchar(50)     | NO   | MUL |                     |                |
| user_email          | varchar(100)    | NO   | MUL |                     |                |
| user_url            | varchar(100)    | NO   |     |                     |                |
| user_registered     | datetime        | NO   |     | 0000-00-00 00:00:00 |                |
| user_activation_key | varchar(255)    | NO   |     |                     |                |
| user_status         | int             | NO   |     | 0                   |                |
| display_name        | varchar(250)    | NO   |     |                     |                |
+---------------------+-----------------+------+-----+---------------------+----------------+
10 rows in set (0.01 sec)

특정 항목만 선택해서 출력하는 쿼리

위에서 조회한 컬럼 목록에서 필요한 항목들만 선택해서 조회할 수 있습니다.

select user_login, user_email from wp_users; 명령처럼 필요한 항목들만 선택해서 출력도 가능합니다.

mysql> select user_login, user_email from wp_users;
+------------------------+-----------------------+
| user_login             | user_email            |
+------------------------+-----------------------+
| esregnet0409@gmail.com | esrgnet0409@gmail.com |
+------------------------+-----------------------+
1 row in set (0.00 sec)

테이블 수정하는 방법

위의 레코드에서 user_email 항목에 오타가 발견되었습니다. 수정을 위해서는 update 쿼리를 사용하면 됩니다.

mysql> update wp_users set user_email = "esregnet0409@gmail.com"
    -> where user_email = "esrgnet0409@gmail.com";
Query OK, 1 row affected (0.07 sec)

세미콜론을 입력하지 않으면 쿼리를 계속 입력할 수 있기 때문에 쿼리가 길어질 때는 여러줄로 표시할 수 있어서 편리합니다.

다시 select 구문을 사용하여 제대로 업데이트 되었는지 확인합니다.

mysql> select user_login, user_email from wp_users;

mySQL 콘솔 종료 방법

quit; 명령을 입력하면 mySQL 콘솔을 종료시킬 수 있습니다.