개발새발
Mysql 본문
Mysql
sql : Struectured Query Language의 약자로 구조화된 질의 언어
- DBMS가 DB server에게 데이터의 삽입, 삭제, 조회, 갱신 데이터 접근 권한, 등의 다양한 요청사항을 보낼 때 사용
- 가장 널리 사용되고 있는 관개형 데이터베이스 관리 시스템
- 오픈 소스이며, 다중 사용자와 다중 스레드를 지원
장점
- 오픈 소스이다
- 다양한 운영체제에서 사용할 수 있으며, 여러가지 언어를 지원한다
- 크기가 큰 데이터 집합도 빠르고 효과적으로 처리할 수 있다
데이터 베이스
데이터베이스 목록 표시
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 | |
+-------+-------------+------+-----+---------+----------------+
테이블 생성
[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);
레코드
테이블 내의 전체 데이터 조회
SELECT * from [조회할 table명];
sample
+----+----------------------+
| id | name |
+----+----------------------+
| 1 | 콜드 브루 커피 |
+----+----------------------+
테이블 내의 전체 데이터를 목록 형태로 조회
SELECT * from [조회할 table명]
특정 테이블 내의 특정 데이터만 조회
특정 데이터를 조회하기 위해 WHERE을 사용.
다양한 연산자를 사용하여 조건을 다양하게 표현할 수 있다.
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 ('브루드 커피');
데이터 값 수정
UPDATE [table명] SET [column명]=[수정할 값] WHERE [조건식];
데이터 삭제
DELETE FROM [table명] WHERE [조건식];
이외에 엄청 많다 옵션기능들도 있다
참조 -https://www.w3schools.com/sql/
더 많은 자료들이 있고 연습도 할 수 있고 퀴즈도 있다