Database

[Database] MariaDB - Select, Insert, Update, Delete(1)

Richard.Ryu 2024. 3. 14. 12:10
반응형

Test 환경용으로 제공되는 test database 를 사용할 예정입니다.

 

1에서는 select 와 insert 먼저 알아보겠습니다.

 

1. 접속

[root@localhost system]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]> use test;
Database changed
MariaDB [test]> show tables;
Empty set (0.00 sec)

 

Empty 인걸 확인하고, 아래와 같이 하나의 test 테이블을 만듭니다.

 

2. 데이터베이스 선택 / 테이블 생성

MariaDB [test]> CREATE TABLE users (
    ->     id INT AUTO_INCREMENT PRIMARY KEY, --id 는 1~자동 생성
    ->     username VARCHAR(50) NOT NULL, --Name
    ->     email VARCHAR(100) NOT NULL, --email
    ->     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP --생성 시간
    -> );
Query OK, 0 rows affected (0.00 sec)

 

3. 데이터 Insert

테이블을 생성하고 데이터가 없으므로, 신규 데이터를 넣어줍니다.

insert into > 형식으로 사용해야합니다.

단일 value : insert into "테이블명"("Column1", "Column2") Values("Column1에 넣을 값", "Column2에 넣을 값");

 

복수 value : insert into "테이블명"(Coulmn1", "Column2") Values

("Column1에 넣을 값", "Column2에 넣을 값"), -- 1번

("Column1에 넣을 값", "Column2에 넣을 값"), -- 2번

("Column1에 넣을 값", "Column2에 넣을 값");  -3번

 

예시) insert into users(username, email) values('ryu', 'ryu@test.com');

MariaDB [test]> desc users;
+------------+--------------+------+-----+-------------------+----------------+
| Field      | Type         | Null | Key | Default           | Extra          |
+------------+--------------+------+-----+-------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL              | auto_increment |
| username   | varchar(50)  | NO   |     | NULL              |                |
| email      | varchar(100) | NO   |     | NULL              |                |
| created_at | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+------------+--------------+------+-----+-------------------+----------------+
4 rows in set (0.00 sec)

MariaDB [test]> insert into users(username, email) values('ryu', 'ryu@test.com');
Query OK, 1 row affected (0.01 sec)

MariaDB [test]> select * from users;
+----+----------+--------------+---------------------+
| id | username | email        | created_at          |
+----+----------+--------------+---------------------+
|  1 | ryu      | ryu@test.com | 2024-03-13 22:14:42 |
+----+----------+--------------+---------------------+
1 row in set (0.00 sec)

 

위와 같이 정상적으로 데이터가 들어간 것을 확인할 수 있습니다.

 

여러 값을 예시로 넣어서 아래 select 확인해보겠습니다.

 

4. 데이터 select

select 는 데이터 검색하는 용도로 사용합니다.

-전체 데이터 검색

select * from "table" ; > table 데이터 모든 결과

 

-특정 열 데이터 검색

select "column1" from "table";

select "column1", "column2" from "table";

MariaDB [test]> insert into users (username, email) VALUES('kim', 'kim@test.com'), ('joe', 'joe@test.com'), ('choi', 'choi@test.com');
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0
MariaDB [test]> select * from users;
+----+----------+---------------+---------------------+
| id | username | email         | created_at          |
+----+----------+---------------+---------------------+
|  1 | ryu      | ryu@test.com  | 2024-03-13 22:14:42 |
|  2 | kim      | kim@test.com  | 2024-03-13 22:54:12 |
|  3 | joe      | joe@test.com  | 2024-03-13 22:54:12 |
|  4 | choi     | choi@test.com | 2024-03-13 22:54:12 |
+----+----------+---------------+---------------------+
4 rows in set (0.00 sec)

MariaDB [test]> select id from users;
+----+
| id |
+----+
|  1 |
|  3 |
|  4 |
|  5 |
+----+
4 rows in set (0.00 sec)

 

5. 조건에 맞는 데이터 검색

where, where like 형식으로 사용합니다.

select Column or * from TABLE where Coulmn = 'Value';

select Column or * from TABLE where like Column = '%value'%;

--%는 Linux에서 *과 같은 와일드 카드입니다.

MariaDB [test]> select * from users where id = 1; --id 값이 1인 데이터 검색
+----+----------+--------------+---------------------+
| id | username | email        | created_at          |
+----+----------+--------------+---------------------+
|  1 | ryu      | ryu@test.com | 2024-03-13 22:14:42 |
+----+----------+--------------+---------------------+

MariaDB [test]> select * from users where username='ryu'; --username ryu 인 데이터 검색
+----+----------+------------------+---------------------+
| id | username | email            | created_at          |
+----+----------+------------------+---------------------+
|  1 | ryu      | ryu@test.com     | 2024-03-13 22:14:42 |
|  5 | ryu      | ryutest@test.com | 2024-03-14 00:39:07 |
+----+----------+------------------+---------------------+

MariaDB [test]> select * from users where username like '%k%'; --username에서 k가 들어간 데이터 검색
+----+----------+--------------+---------------------+
| id | username | email        | created_at          |
+----+----------+--------------+---------------------+
|  2 | kim      | kim@test.com | 2024-03-13 22:54:12 |
+----+----------+--------------+---------------------+

MariaDB [test]> select age, count(*) as age_count from age_users where age = 20 group by age; --age group, count값, age 20 인 사람만 데이터 검색
+-----+-----------+
| age | age_count |
+-----+-----------+
|  20 |         2 |
+-----+-----------+

 

반응형