mysql 기본 명령어
MySQL의 기본 명령어들을 정리한다. 생성, 삽입, 조회, 수정, 삭제
MySQL 접속
ubuntu 및 centos를 주로 사용하기에 그에 관한 기본 명령어를
다시한번 공부삼아 적어본다.
mysql -u root -p
root는 mysql 접속이 가능한 계정명을 치면 되며 -p를 입력하면 비밀번호
입력창이 비번을 친 후 접속하면 된다.
Database 조회
mysql> SHOW DATABASES;
데이터베이스 목록을 볼 수 있다.
생성 (CREATE)
Database 생성
예시로 testdb 라는 데이터베이스 생성
CREATE DATABASE 명령어 사용
mysql> CREATE DATABASE testdb;
testdb 사용설정 USE 명령어 사용
mysql> USE testdb;
Table 생성
예시로 testtable 이라 하는 테이블 생성
이 table 에 id, name, phone 이라는 컬럼 생성
mysql> CREATE TABLE testtable (
-> id int NOT NULL auto_increment primary key,
-> name VARCHAR(15) NOT NULL,
-> phone VARCHAR(15) NOT NULL
-> );
INT: 정수형
DOUBLE: 실수형
VARCHAR 문자형
NOT NULL: 빈 값일 수 없음
AUTO_INCREMENT: 숫자가 자동으로 증가
PRIMARY KEY:
생성된 테이블 상세정보 확인
DESCRIBE 나 EXPLAIN 명령어 사용
삽입 (INSERT)
Table 데이터 삽입
id 는 자동으로 숫자가 하나씩 올라가니, 생략하고 name, phone 데이터를 입력한다.
INSERT INTO 테이블명 (컬럼명1, 컬럼명3, ...) VALUES (값1, 값3, ...);
mysql> INSERT INTO testtable (name, phone) VALUES ('Andy', '010-1234-5678');
mysql> INSERT INTO testtable (name, phone) VALUES ('Brian', '010-4321-8765');
mysql> INSERT INTO testtable (name, phone) VALUES ('Emily', '011-4321-5678');
조회 (SELECT)
결과 확인하려면 SELECT 명령어 사용
SELECT 컬럼명1, 컬럼명2, .. FROM 테이블명;
mysql> SELECT id, name, phone FROM testtable;
+----+-------+---------------+
| id | name | phone |
+----+-------+---------------+
| 1 | Andy | 010-1234-5678 |
| 2 | Brian | 010-4321-8765 |
| 3 | Emily | 011-4321-5678 |
+----+-------+---------------+
mysql> SELECT name FROM testtable;
+-------+
| name |
+-------+
| Andy |
| Brian |
| Emily |
+-------+
전체 컬럼 선택시, id, name 등 전부 입력하기 보다, *로 대체 한다.
mysql> SELECT * FROM testtable;
+----+-------+---------------+
| id | name | phone |
+----+-------+---------------+
| 1 | Andy | 010-1234-5678 |
| 2 | Brian | 010-4321-8765 |
| 3 | Emily | 011-4321-5678 |
+----+-------+---------------+
조건 사용하여 조회
WHERE 명령어를 사용하여 조건설정 가능
mysql> SELECT * FROM testtable WHERE name='Emily';
+----+-------+---------------+
| id | name | phone |
+----+-------+---------------+
| 3 | Emily | 011-4321-5678 |
+----+-------+---------------+
mysql> SELECT name, phone FROM testtable WHERE phone LIKE '%5678';
+-------+---------------+
| name | phone |
+-------+---------------+
| Andy | 010-1234-5678 |
| Emily | 011-4321-5678 |
+-------+---------------+
위 커맨드는 LIKE 명령어로 phone 컬럼 value가 5678로 끝나는 데이터만 골라 출력한 결과.
같은 방식으로 010으로 시작하는 데이터 출력한 결과
mysql> SELECT * FROM testtable WHERE phone LIKE '010%';
+----+-------+---------------+
| id | name | phone |
+----+-------+---------------+
| 1 | Andy | 010-1234-5678 |
| 2 | Brian | 010-4321-8765 |
+----+-------+---------------+
오름차순, 내림차순 정렬 조회
ASC : 오름차순
DESC : 내림차순
ORDER BY 명령어를 사용하여 정렬 조건 입력
mysql> SELECT * FROM testtable ORDER BY id DESC;
mysql> SELECT * FROM testtable ORDER BY id DESC;
+----+-------+---------------+
| id | name | phone |
+----+-------+---------------+
| 3 | Emily | 011-4321-5678 |
| 2 | Brian | 010-4321-8765 |
| 1 | Andy | 010-1234-5678 |
+----+-------+---------------+
mysql> INSERT INTO testtable (name, phone) VALUES ('Charlie', '017-1234-8389');
mysql> SELECT * FROM testtable ORDER BY name DESC;
+----+---------+---------------+
| id | name | phone |
+----+---------+---------------+
| 3 | Emily | 011-4321-5678 |
| 4 | Charlie | 017-1234-8389 |
| 2 | Brian | 010-4321-8765 |
| 1 | Andy | 010-1234-5678 |
+----+---------+---------------+
mysql> SELECT * FROM testtable ORDER BY name ASC;
+----+---------+---------------+
| id | name | phone |
+----+---------+---------------+
| 1 | Andy | 010-1234-5678 |
| 2 | Brian | 010-4321-8765 |
| 4 | Charlie | 017-1234-8389 |
| 3 | Emily | 011-4321-5678 |
+----+---------+---------------+
(번외) 데이터가 있는 테이블에 컬럼 추가 (ALTER)
데이터를 세분화하고 싶어서 컬럼을 추가하고 싶을 때, ALTER TABLE 명령어 사용
ALTER TABLE 테이블명 ADD 컬럼명 컬럼속성 AFTER 컬럼명
mysql> ALTER TABLE testtable add role VARCHAR(15) NOT NULL after phone;
mysql> describe testtable;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(15) | NO | | NULL | |
| phone | varchar(15) | NO | | NULL | |
| role | varchar(15) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
수정 (UPDATE)
UPDATE 명령어로 기존 데이터에 추가 가능하다
UPDATE 테이블명 SET 컬럼명=값 WHERE 조건
mysql> UPDATE testtable SET role='student' WHERE id=2;
mysql> SELECT * FROM testtable;
+----+---------+---------------+---------+
| id | name | phone | role |
+----+---------+---------------+---------+
| 1 | Andy | 010-1234-5678 | |
| 2 | Brian | 010-4321-8765 | student |
| 3 | Emily | 011-4321-5678 | |
| 4 | Charlie | 017-1234-8389 | |
+----+---------+---------------+---------+
위처럼 WHERE 뒤의 조건을 만족하는 row의 데이터를 수정할 수 있다.
mysql> UPDATE testtable SET role='student' WHERE phone LIKE '010%';
mysql> UPDATE testtable SET role='teacher' WHERE phone NOT LIKE '010%';
mysql> SELECT * FROM testtable;
+----+---------+---------------+---------+
| id | name | phone | role |
+----+---------+---------------+---------+
| 1 | Andy | 010-1234-5678 | student |
| 2 | Brian | 010-4321-8765 | student |
| 3 | Emily | 011-4321-5678 | teacher |
| 4 | Charlie | 017-1234-8389 | teacher |
+----+---------+---------------+---------+
위 예시는 전화번호가 010으로 시작하는 사람은 student, 아닌 사람은 teacher로 role 을 정해준 예시
삭제 (DELETE)
DELETE명령어로 데이터 삭제
DELETE FROM 테이블명 WHERE 조건
mysql> DELETE FROM testtable WHERE id=3;
mysql> SELECT * FROM testtable;
+----+---------+---------------+---------+
| id | name | phone | role |
+----+---------+---------------+---------+
| 1 | Andy | 010-1234-5678 | student |
| 2 | Brian | 010-4321-8765 | student |
| 4 | Charlie | 017-1234-8389 | teacher |
+----+---------+---------------+---------+
전체삭제
DROP TABLE, DROP DATABASE 명령어로 전체 삭제
mysql> DROP TABLE testtable;
mysql> DROP DATABASE testdb;
마무리
MySQL 기본 사용법에 대해 정리했습니다. phpmyadmin같은 gui 클라이언트를 이용하면 훨씬 직관적이고 편하게 볼 수 있지만, php와의 연동 등을 하려면 기본 명령어는 숙지하고 있어야 해서 정리해 보았습니다.
빠른 시일내에 select, update 등 각각 나눠서 다양한 예제와 함께 추가로 작성하겠습니다.
'IT이야기 > DB' 카테고리의 다른 글
mysql] select문의 사용법과 예제! (0) | 2020.03.03 |
---|