MySQL :: 쿼리문, 명령어 모음

Hayoung·2021년 6월 22일
3

MySQL

목록 보기
1/1
post-thumbnail

MySQL command 메모입니다🤓
그때 그때 사용해본 command를 기재 중입니다.
부족한 내용은 상시 추가 예정.

MySQL 접속

로그인

mysql -u [유저명] -p

로그아웃

mysql > \q
mysql > quit
mysql > exit

Database

데이터베이스 목록 표시

SHOW databases;

데이터베이스 생성

CREATE DATABASE [DB명];

데이터베이스 삭제

DROP DATABASE [삭제할 DB명];

데이터베이스에 접근(선택)

USE [선택할 DB명];

Table

테이블 목록 표시

SHOW TABLES;

테이블 설계 정보 확인

DESC [테이블명];
  • sample
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는 필요한 경우에만 입력

  • sample
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];

테이블에 column 추가

ALTER TABLE [table] ADD [추가할 column] [type] [필요한 option];
  • sample
ALTER TABLE nutrition ADD drink_id INT NOT NULL;

column의 type 변경

ALTER TABLE [table] MODIFY [column] [변경할 type];
  • sample
ALTER TABLE drinks MODIFY english_name varchar(200);

Records (Row, Data)

테이블 내의 전체 데이터 조회

SELECT * from [조회할 table];
  • sample
mysql> SELECT * from categories;
+----+----------------------+
| id | name                 |
+----+----------------------+
|  1 | 콜드 브루 커피          |
+----+----------------------+

테이블 내의 전체 데이터를 목록 형태로 조회

SELECT * from [조회할 table]\G

데이터가 길어서 표가 깨져서 가독성이 좋지 않을 때
;대신 \G라는 meta command를 사용하면 데이터를 표가 아닌 목록 형태로 표시할 수 있다.

  • sample
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][연산자][];
  • sample
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     |
+----+-------------------------+-----------------+-------+----------+----------+

지정 column의 전체 데이터 조회

SELECT [column] FROM [table];
  • sample
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 ([]);
  • sample
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 [조건식];
  • sample
UPDATE drinks SET name="제주 까망 크림 프라푸치노" WHERE id = 4;

데이터 삭제

DELETE FROM [table] WHERE [조건식];
  • sample
DELETE FROM drink_allergy WHERE id = 11;

Foreign Key 추가

ALTER TABLE [table] ADD FOREIGN KEY ([FK로 설정할 column]) REFERENCES [참조할 table(참조할 PK명)];

※ FK로 설정할 column에 값이 있어야 추가 가능.

  • sample
ALTER TABLE nutrition ADD FOREIGN KEY (drink_id) REFERENCES drinks(id);

Operators

LIKE

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

  • sample
SELECT name, description FROM drinks WHERE drinks.description LIKE '%음료%'\G
*************************** 1. row ***************************
       name: 제주 까망 크림 프라푸치노
description: [제주지역 한정음료] 제주 까망 라떼의 프라푸치노 버전으로 쫄깃한 국내산 흑임자 떡과 블랙 소보로 토핑으로 컵빙수처럼 먹는 음료. 고소한 국내산 흑임자와 쫄깃한 국내산 흑임자 떡, 달콤한 블랙 소보로 토핑으로 제주의 돌 하르방 길을 느낄 수 있는 음료
*************************** 2. row ***************************
       name: 쿨 라임 피지오
description: 그린 빈 추출액이 들어간 라임 베이스에 건조된 라임 슬라이스를 넣고 스파클링한 시원하고 청량감 있는 음료입니다. (카페인이 함유된 탄산음료입니다)
*************************** 3. row ***************************
       name: 시그니처 핫 초콜릿
description: 깊고 진한 초콜릿과 부드러운 휘핑크림이 입안에서 사르르 녹는 프리미엄 초콜릿 음료

MySQL 버전 확인

  • 접속 전
mysql --version
  • 접속 후
mysql > select version();

잘못된 내용이 있으면 지적 부탁드립니다🙇‍♀️

profile
Frontend Developer. 블로그 이사했어요 🚚 → https://iamhayoung.dev

0개의 댓글