개인 공부를 위해 작성했습니다
매우 방대한 기능을 가지고 있는 정보 도구
1994년 스웨덴에서 개발
무료이면서, 오픈소스이고, 3대 데이터베이스 중에 하나인 MySQL
./mysql -uroot -p
root라는 유저로 접속하며 패스워드를 묻는다CREATE DATABASE databaseName;
✨참고✨ 명령어가 끝나면 ;(세미콜론)을 붙힌다
CREATE DATABASE testDB;
✨참고✨ 명령어 입력 커서에서 화살표"↑"를 입력하면 이전 명령어를 찾을 수 있다
(데이터베이스 생성할 때 에러발생하면 지우고 다시하면 된다!!!)
DROP DATABASE databaseName;
(database를 생성했다면 학인해보자!)
SHOW {DATABASES | SCHEMAS};
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| testdb |
+--------------------+
5 rows in set (0.01 sec)
USE testDB;
CREATE TABLE tableName();
CREATE TABLE topic(
-> id INT(11) NOT NULL AUTO_INCREMENT,
// 컬럼(열)의 이름 | 데이터타입(길이) | 공백을 허용하지 않겠다 | 자동으로 증가(중복x)
-> title VARCHAR(100) NOT NULL,
-> description TEXT NULL,
-> created DATETIME NOT NULL,
-> author VARCHAR(30) NULL,
-> profile VARCHAR(100) NULL,
-> PRIMARY KEY(id));
// 데이터베이스야! id값은 각각의 값이 중복되지 않은 고유의 값이어야 해! 라고 명령
SHOW TABLES;
만들어진 테이블을 확인할 수 있다DESC topic;
topic 이라는 데이블의 구조를 볼 수 있다+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| title | varchar(100) | NO | | NULL | |
| description | text | YES | | NULL | |
| created | datetime | NO | | NULL | |
| author | varchar(30) | YES | | NULL | |
| profile | varchar(100) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
🚩집중! 데이터베이스는 여러가지 정책과 규제를 가지고 있고,
그러한 규제, 정책 덕분에 데이터들을 우리가 원하는 형식으로 깔끔하게 유지하는 데에 큰 도움을 준다
INSERT INTO tableName (column1, column2, column3, ...) VALUES (value1, value2, value3, ...)
INSERT INTO topic (title, description, created, author, profile) VALUES(' MySQL', ' MySQL is ...', NOW(), 'april', 'developer');
🚩집중! SELECT 가장 많이 사용되는 명령어
두 번째로 많이 사용되는 명령어는 CREATE
그 다음으로 많이 사용되는 명령어는 INSERT
SELECT * FROM topic;
topic이라는 테이블의 데이터를 보여줘mysql> SELECT * FROM topic;
+----+--------+---------------+---------------------+--------+-----------+
| id | title | description | created | author | profile |
+----+--------+---------------+---------------------+--------+-----------+
| 1 | MySQL | MySQL is ... | 2021-04-04 21:18:42 | april | developer |
+----+--------+---------------+---------------------+--------+-----------+
1 row in set (0.00 sec)
mysql> SELECT * FROM topic;
+----+------------+--------------------+---------------------+--------+----------------+
| id | title | description | created | author | profile |
+----+------------+--------------------+---------------------+--------+----------------+
| 1 | MySQL | MySQL is ... | 2021-04-04 21:18:42 | april | developer |
| 2 | ORACLE | Oracle is ... | 2021-04-04 00:00:00 | user1 | developer |
| 3 | SLQ Server | SQL Server is ... | 2021-04-04 21:24:32 | user2 | |
| 4 | PostgreSQL | Postgre SQL is ... | 2021-04-04 21:25:51 | april5 | data scientist |
| 5 | MongoDB | MongoDB is ... | 2021-04-04 21:26:36 | YURIM | developer |
+----+------------+--------------------+---------------------+--------+----------------+
5 rows in set (0.00 sec)
SELECT column1, column2 FROM topic;
SELECT id, title, created, author FROM topic;
+----+------------+---------------------+--------+
| id | title | created | author |
+----+------------+---------------------+--------+
| 1 | MySQL | 2021-04-04 21:18:42 | april |
| 2 | ORACLE | 2021-04-04 00:00:00 | user1 |
| 3 | SLQ Server | 2021-04-04 21:24:32 | user2 |
| 4 | PostgreSQL | 2021-04-04 21:25:51 | april5 |
| 5 | MongoDB | 2021-04-04 21:26:36 | YURIM |
+----+------------+---------------------+--------+
5 rows in set (0.00 sec)
SELECT id, title, created, author FROM topic WHERE author='april';
+----+--------+---------------------+--------+
| id | title | created | author |
+----+--------+---------------------+--------+
| 1 | MySQL | 2021-04-04 21:18:42 | april |
+----+--------+---------------------+--------+
1 row in set (0.00 sec)
ORDER BY
SELECT id, title, created, author FROM topic WHERE author='april' ORDER BY id DESC;
id값을 기준으로 큰 숫자부터 나오도록 명령+----+---------+---------------------+--------+
| id | title | created | author |
+----+---------+---------------------+--------+
| 6 | MongoDB | 2021-04-04 21:39:36 | april |
| 1 | MySQL | 2021-04-04 21:18:42 | april |
+----+---------+---------------------+--------+
2 rows in set (0.00 sec)
LIMIT
최대 1개까지만 보여줘!SELECT id, title, created, author FROM topic WHERE author='april' ORDER BY id DESC LIMIT 1;
+----+---------+---------------------+--------+
| id | title | created | author |
+----+---------+---------------------+--------+
| 6 | MongoDB | 2021-04-04 21:39:36 | april |
+----+---------+---------------------+--------+
1 row in set (0.00 sec)
MySQL을 잘한다? = SELECT문을 잘 사용한다!
UPDATE tableName SET 변경할 내용들
UPDATE topic SET description='Oracle is ...', title='Oracle' WHERE id=2;
🚩집중! WHERE 를 지정하지 않으면 모든 row값들이 변경된다!
DELETE FORM tableName;
DELETE FROM topic WHERE id = 5;
🚩집중! WHERE 를 지정하지 않으면 모든 row값들이 삭제되므로 주의!!!!!
✅ 목표!