[MySQL] MySQL 기본

CRUD, JOIN

Posted by dongjune on March 13, 2021

1. MySQL 의 구조

표들을 그룹핑 → 데이터베이스(스키마)

_2021-03-04__9 07 00

스키마들을 저장 → 데이터베이스 서버

_2021-03-04__9 08 26

  • MySQL을 설치한 것은 데이터베이스 서버를 설치한 것

2. MySQL 서버 접속

1
mysql -uroot -p

이후 설정한 비밀번호를 입력하면 mysql 서버에 접속 가능합니다.

3. CRUD

1. DATABASE 생성

아래 명령어를 통해 dbname이라는 이름의 데이터베이스를 생성할 수 있다.

1
CREATE DATABASE dbname;

2. DATABASE 삭제

아래 명령어를 통해 dbname이라는 이름의 데이터베이스를 삭제할 수 있다.

1
DROP DATABASE dbname;

3. DATABASE 선택

데이터베이스를 사용하기 위해서는 해당 데이터베이스를 선택해야 한다.

1
USE dbname;

4. Table 생성

1
2
3
4
5
CREATE TABLE topic(
	id INT(11) NOT NULL AUTO_INCREMENT,
	title VARCHAR(100) NOT NULL,
	description TEXT,
);

칼럼 이름이 처음으로 오고, 그 뒤에 데이터 타입이 온다.

NOT NULL 과 같은 옵션을 지정할 수 있다.

5. INSERT

다음과 같이 행을 삽입할 수 있다.

1
INSERT INTO topic (title, description) VALUES('MySQL', 'My SQL is...');

6. SELECT

table 전체를 읽기

1
SELECT * FROM topic;

특정 칼럼만 불러오기

1
SELECT id,title FROM topic;

조건 지정해서 불러오기 (WHERE)

1
SELECT * FROM topic WHERE author='egoing';

id를 기준으로 내림차순 불러오기 (ORDER BY)

1
SELECT * FROM topic WHERE author='egoing' ORDER BY id DESC;

불러오는 table의 행 개수 지정하기 (LIMIT)

1
SELECT * FROM topic LIMIT 2;

7. UPDATE

id가 2인 행의 description과 title 수정하기

1
UPDATE topic SET description='Oracle is...', title='Oracle' WHERE id=2;

8. DELETE

id=5인 행 삭제하기

1
DELETE FROM topic WHERE id=5;

4. JOIN

topic 테이블과 author 테이블을 JOIN 해보자.

topic

_2021-03-11__9 19 37

author

_2021-03-11__9 20 30

위의 topic 테이블과 author 테이블을 JOIN 하기

1
SELECT * FROM topic LEFT JOIN author ON topic.author_id=author.id;

_2021-03-11__9 21 44

원하는 칼럼만 보이게 JOIN 하기

1
SELECT topic.id,title,description,created,name,profile FROM topic LEFT JOIN author ON topic.author_id=author.id;

_2021-03-11__9 22 54

이때 id는 topic과 author 테이블에 둘다 존재하기 때문에 topic.id와 같이 어느 테이블의 칼럼인지 특정해줘야 한다.