본문 바로가기
개발/database

mysql 기본 문법

by ujin2021 2020. 7. 31.

mysql은 가장 널리 사용되고 있는 관계형 데이터베이스 관리시스템(RDBMS)입니다.

관계형 데이터베이스란 table로 이루어져 있으며, 이 테이블은 key와 value의 관계를 나타냅니다.

mysql에서 db에 대한 작업명령은 sql구문을 이용하여 처리하는데, 간단하고 많이 쓰이는 구문을 알아보겠습니다!

 

mysql은 대소문자를 구분하지 않지만(테이블, 필드 명은 구분함) 대문자로 쓰는게 관례입니다.

 

1. db 생성하기(CREATE)

mysql> CREATE DATABASE market;

market이라는 데이터베이스를 하나 만들었습니다.

 

2. db선택하기(USE)

mysql> SHOW databases;
+--------------------+
| Database           |
+--------------------+
| closet             |
| information_schema |
| market             |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
8 rows in set (0.03 sec)

mysql> USE market;
Database changed

SHOW databases;를 입력하면, 존재하는 모든db가 뜹니다. 그중 market db를 사용하기위해 USE [db_name]; 명령어를 입력해 줍니다.

 

3. table 생성하기(CREATE)

mysql> CREATE TABLE price
    -> (
    -> ID INT,
    -> Name VARCHAR(30),
    -> Price VARCHAR(30)
    -> )
    -> ;
Query OK, 0 rows affected (0.15 sec)

mysql> SHOW tables;
+------------------+
| Tables_in_market |
+------------------+
| price            |
+------------------+
1 row in set (0.01 sec)

CREATE TABLE 구문을 이용하여 필요한 컬럼과 타입을 지정해줍니다. (varchar:string이라고 생각하면됩니다)

SHOW databases;와 마찬가지로 SHOW tables;를 입력하여 테이블들을 볼 수 있습니다.

 

이제 데이터를 처리하는 문법에 대해 알아보겠습니다. 보통 CRUD라고 많이 애기하는데,

C(Create) : INSERT - 삽입

R(Read) : SELECT - 조회

U(Update) : UPDATE - 수정

D(Delete) : DELETE - 삭제

입니다. 

 

4. INSERT

mysql> INSERT INTO price(ID, Name, Price) VALUES(1, 'coffee', '5000');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM price;
+------+--------+-------+
| ID   | Name   | Price |
+------+--------+-------+
|    1 | coffee | 5000  |
+------+--------+-------+
1 row in set (0.00 sec)

INSERT INTO [table_name] (필드이름) VALUES (데이터);

SELECT 로 확인하면 잘 들어간걸 알 수 있습니다.

 

5. SELECT

위의 예제처럼 SELECT * FROM [table_name]; 으로 작성하면 해당 테이블의 모든 data를 조회하겠다는 뜻입니다.(* : 모두)

자신이 찾고 싶은 데이터만 찾을 수 있습니다.

만약 Name이 coffee인것을 찾고싶다면

mysql> SELECT * FROM price WHERE Name='coffee';
+------+--------+-------+
| ID   | Name   | Price |
+------+--------+-------+
|    1 | coffee | 5000  |
+------+--------+-------+
1 row in set (0.00 sec)

WHERE 뒤에 조건을 적어주시면 됩니다. 그러면 Name이 coffee 인 모든 data들을 볼 수 있습니다. ,(콤마)를 사용해 조건을 여러가지로 줄 수 있습니다.

SELECT 뒤에 * 대신 필드 이름을 적으면 조건에 맞는 해당 필드만 볼 수 있습니다.

mysql> SELECT ID FROM price WHERE Name='coffee';
+------+
| ID   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

 6. UPDATE

데이터를 수정하고 싶을 때 UPDATE구문을 사용합니다.

mysql> UPDATE price SET Price='6000' WHERE Name='coffee';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM price;
+------+--------+-------+
| ID   | Name   | Price |
+------+--------+-------+
|    1 | coffee | 6000  |
+------+--------+-------+
1 row in set (0.00 sec)

UPDATE [table_name] SET [바꿀 필드명]=[바꿀 데이터] WHERE [필드]=[데이터];

수정할 것을 SET뒤에 넣어주고(역시 콤마를 사용해 여러 데이터를 수정할 수 있습니다.) where로 바꾸고 싶은 레코드를 선택할 수 있습니다.

SELECT로 확인해보면 아까 5000원이었던 값이 6000으로 수정된 것을 알 수 있습니다.

 

7. DELETE

데이터를 삭제하고 싶을 때 DELETE 구문을 사용합니다.

mysql> DELETE FROM price WHERE ID=1;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM price;
Empty set (0.00 sec)

DELETE FROM [table_name] WHERE [조건];

으로 해당조건에 맞는 레코드들을 삭제해 줍니다.

 

8. DROP

DROP을 사용하여 table, db를 삭제할 수 있습니다.

mysql> DROP price;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'price' at line 1
mysql> DROP TABLE price;
Query OK, 0 rows affected (0.07 sec)

mysql> SHOW TABLES;
Empty set (0.00 sec)

mysql> DROP DATABASE market;
Query OK, 0 rows affected (0.04 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| closet             |
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)

테이블 삭제시 DROP TABLE [table_name];

db 삭제시 DROP DATABASE [db_name];

을 입력하면 테이블과 데이터베이스가 삭제됩니다.

 

아주 기초적인 문법에 대해서만 알아보았는데요 직접 쿼리문을 사용하지 않고도, 프로그램을 사용하여 데이터를 넣거나 수정할 수 있습니다(저는 dbeaver를 사용합니다) 그래도 위의 기본 문법정도는 알고있어야 코드에서 db를 참조하거나 그런 코드를 짤 때 편합니다.

 

그럼 포스팅을 마치도록 하겠습니다.

감사합니다~!!

'개발 > database' 카테고리의 다른 글

[programmers]sql-입양 시각 구하기(1)  (0) 2021.02.26
[programmers]sql-Null 처리하기  (0) 2021.02.26
ubuntu mysql 비밀번호 설정하기  (0) 2021.01.24
ubuntu mysql 외부 접속하기  (2) 2020.08.07
ubuntu 에 mysql 설치하기  (0) 2020.07.30