MySQL command 메모입니다🤓
그때 그때 사용해본 command를 기재 중입니다.
부족한 내용은 상시 추가 예정.
mysql -u [유저명] -p
mysql > \q
mysql > quit
mysql > exit
SHOW databases;
CREATE DATABASE [DB명];
DROP DATABASE [삭제할 DB명];
USE [선택할 DB명];
SHOW TABLES;
DESC [테이블명];
DESC categories;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(45) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
CREATE TABLE [table명] (
[column1] [datatype] [option],
[column2] [datatype] [option],
[column3] [datatype] [option],
...
PRIMARY KEY ([PK로 지정할 column명]),
FOREIGN KEY ([FK로 지정할 column명]) REFERENCES [참조할 table명] ([참조할 PK명])
);
※ foreign key는 필요한 경우에만 입력
CREATE TABLE drinks (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(45) NOT NULL,
image_url VARCHAR(2000) NOT NULL,
description VARCHAR(500) NOT NULL,
is_new TINYINT,
category_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (category_id) REFERENCES categories (id)
);
+-------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(45) | NO | | NULL | |
| image_url | varchar(2000) | NO | | NULL | |
| description | varchar(500) | NO | | NULL | |
| is_new | tinyint | YES | | NULL | |
| category_id | int | NO | MUL | NULL | |
+-------------+---------------+------+-----+---------+----------------+
DROP TABLE [table명];
ALTER TABLE [table명] ADD [추가할 column명] [type] [필요한 option];
ALTER TABLE nutrition ADD drink_id INT NOT NULL;
ALTER TABLE [table명] MODIFY [column명] [변경할 type];
ALTER TABLE drinks MODIFY english_name varchar(200);
SELECT * from [조회할 table명];
mysql> SELECT * from categories;
+----+----------------------+
| id | name |
+----+----------------------+
| 1 | 콜드 브루 커피 |
+----+----------------------+
SELECT * from [조회할 table명]\G
데이터가 길어서 표가 깨져서 가독성이 좋지 않을 때
;
대신 \G
라는 meta command를 사용하면 데이터를 표가 아닌 목록 형태로 표시할 수 있다.
SELECT * from drinks\G
*************************** 1. row ***************************
id: 1
name: 나이트로 바닐라 크림
image_url: https://image.istarbucks.co.kr/upload/store/skuimg/2021/04/[9200000002487]_20210426091745609.jpg
description: 부드러운 목넘김의 나이트로 커피와 바닐라 크림의 매력을 한번에 느껴보세요!
is_new: 1
category_id: 1
*************************** 2. row ***************************
id: 2
name: 아이스 커피
image_url: https://image.istarbucks.co.kr/upload/store/skuimg/2021/04/[106509]_20210430111852999.jpg
description: 깔끔하고 상큼함이 특징인 시원한 아이스 커피
is_new: 0
category_id: 2
특정 데이터를 조회하기 위해 WHERE
을 사용.
다양한 연산자를 사용하여 조건을 다양하게 표현할 수 있다.
WHERE
절의 자세한 내용은 아래 링크 참고.
https://www.w3schools.com/sql/sql_where.asp
SELECT * FROM [table명] WHERE [column명][연산자][값];
SELECT * FROM users WHERE email='hello@gmail.com';
+----+-------------------------+-----------------+-------+----------+----------+
| id | created_at | email | name | password | favorite |
+----+-------------------------+-----------------+-------+----------+----------+
| 2 | 2021-06-24 23:05:39.871 | hello@gmail.com | hello | gmail123 | NULL |
+----+-------------------------+-----------------+-------+----------+----------+
SELECT [column명] FROM [table명];
SELECT kcal, caffeine FROM nutrition;
+------+----------+
| kcal | caffeine |
+------+----------+
| 75 | 245 |
| 5 | 140 |
| 10 | 150 |
| 600 | 0 |
| 190 | 0 |
| 105 | 110 |
| 205 | 60 |
| 500 | 15 |
+------+----------+
INSERT INTO [table명] ([column명]) VALUES ([값]);
INSERT INTO categories (name) VALUES ('브루드 커피');
+----+----------------------+
| id | name |
+----+----------------------+
| 1 | 콜드 브루 커피 |
| 2 | 브루드 커피 |
+----+----------------------+
INSERT INTO drinks (name, image_url, description, is_new, category_id) VALUES ('나이트로 바닐라 크림', 'https://image.istarbucks.co.kr/upload/store/skuimg/2021/04/[9200000002487]_20210426091745609.jpg', '부드러운 목넘김의 나이트로 커피와 바닐라 크림의 매력을 한번에 느껴보세요!', 1, 1);
*************************** 1. row ***************************
id: 1
name: 나이트로 바닐라 크림
image_url: https://image.istarbucks.co.kr/upload/store/skuimg/2021/04/[9200000002487]_20210426091745609.jpg
description: 부드러운 목넘김의 나이트로 커피와 바닐라 크림의 매력을 한번에 느껴보세요!
is_new: 1
category_id: 1
UPDATE [table명] SET [column명]=[수정할 값] WHERE [조건식];
UPDATE drinks SET name="제주 까망 크림 프라푸치노" WHERE id = 4;
DELETE FROM [table명] WHERE [조건식];
DELETE FROM drink_allergy WHERE id = 11;
ALTER TABLE [table명] ADD FOREIGN KEY ([FK로 설정할 column명]) REFERENCES [참조할 table명(참조할 PK명)];
※ FK로 설정할 column에 값이 있어야 추가 가능.
ALTER TABLE nutrition ADD FOREIGN KEY (drink_id) REFERENCES drinks(id);
SELECT [column명] FROM [table명] WHERE [table명.column명] LIKE [pattern];
LIKE
연산자를 사용하면, 특정 column에 문자열을 검색할 수 있다.
SQL에서는 LIKE
연산자에 %
와 _
라는 와일드 카드를 사용하여 임의의 패턴에 일치하는 문자열을 찾을 수 있다.
- The percent sign (%) represents zero, one, or multiple characters
- The underscore sign (_) represents one, single character
자세한 내용은 아래 링크 참조.
https://www.w3schools.com/sql/sql_like.asp
SELECT name, description FROM drinks WHERE drinks.description LIKE '%음료%'\G
*************************** 1. row ***************************
name: 제주 까망 크림 프라푸치노
description: [제주지역 한정음료] 제주 까망 라떼의 프라푸치노 버전으로 쫄깃한 국내산 흑임자 떡과 블랙 소보로 토핑으로 컵빙수처럼 먹는 음료. 고소한 국내산 흑임자와 쫄깃한 국내산 흑임자 떡, 달콤한 블랙 소보로 토핑으로 제주의 돌 하르방 길을 느낄 수 있는 음료
*************************** 2. row ***************************
name: 쿨 라임 피지오
description: 그린 빈 추출액이 들어간 라임 베이스에 건조된 라임 슬라이스를 넣고 스파클링한 시원하고 청량감 있는 음료입니다. (카페인이 함유된 탄산음료입니다)
*************************** 3. row ***************************
name: 시그니처 핫 초콜릿
description: 깊고 진한 초콜릿과 부드러운 휘핑크림이 입안에서 사르르 녹는 프리미엄 초콜릿 음료
mysql --version
mysql > select version();
잘못된 내용이 있으면 지적 부탁드립니다🙇♀️