관리 메뉴

한다 공부

[Web] MySQL 본문

Dev/Web

[Web] MySQL

사과당근 2021. 11. 22. 18:39

데이터의 양이 기하급수적으로 증가하면서 file만으로는 데이터의 정리가 힘들어졌다. 그래서 database 라는 소프트웨어가 생겨났다.

 

MySQL은 오픈소스인 관계형 데이터베이스이다. 오픈소스이며 무료라는 장점으로, Web과 함께 기하급수적으로 성장하게 되었다. MySQL과 같은 관계형 데이터베이스의 특징은 데이터를 표의 형태로 나타낼 수 있다는 것이다.

 

codeanywhere을 이용하면 설치없이 database 실습을 할 수 있다.

Cloud IDE · Online Code Editor · Codeanywhere

 

Cloud IDE · Online Code Editor · Codeanywhere

Save time by deploying a development environment in seconds. Collaborate, code, learn, build, and run your projects directly from your browser.

codeanywhere.com

 

mysql -uroot 명령어를 입력해 관리자로 mysql을 시작한다.

mysql -uroot

 

표(table)들을 grouping 한 것을 데이터베이스 = 스키마(schema)라고 한다. 스키마를 통해 연관된 데이터들을 grouping 할 수 있다. 그리고 이것들이 저장되는 곳을 데이터베이스 서버라고 한다.

 

mysql -uroot -p

를 이용하면 비밀번호를 설정할 수 있다. 보안 강화

 

CREATE DATABASE 이름;

을 통해 데이터베이스를 생성할 수 있다.

 

DROP DATABASE 이름;

을 통해 데이터베이스를 삭제할 수 있다.

 

SHOW DATABASES;데이터베이스를 보여준다.

database 생성

USE 이름;

지금부터 해당이름을 가진 데이터베이스를 사용하겠다는 뜻이다.

 

이제 table을 만들어보자.

아래와 같은 코드로 만들 수 있다.

CREATE TABLE tb (
	id INT(11) NOT NULL AUTO_INCREMENT,
	#id는 정수이고, 11만큼 보여주고, null이면 안되고, 자동으로 증가한다.
	#(id 1번 다음은 2번.. 이런식으로)
	title VARCHAR(100) NOT NULL,
	description TEXT NULL, #본문은 null이어도 된다. 즉 필수 입력이 아님
	created DATETIME NOT NULL,
	author VARCHAR(30) NULL,
	profile VARCHAR(100) NULL,
	PRIMARY KEY(id)); #기본키는 id라는 의미

실행하고 테이블을 확인하면 아래와 같이 나타난다.

table 생성

 

 

CRUD

Create Read Update Delete 의 약자이다.

 

Create

먼저 create 해보자

INSERT INTO tb (title, description, created, author, profile) VALUES('MySQL', 'MySQL is ...', NOW(), 'won', 'developer');

title = MySQL

description = MySQL is ...

created = 현재시간

author = won

profile = developer

를 입력한 것과 같다.

 

Read

데이터를 보려면? read 해보자

실행결과는 위와 같다.

 

create 3번을 한 결과

데이터를 조금 더 추가하여 위와 같이 만들었다.

이 중에서 일부만 추출하려면 어떻게 해야할까?

SELECT id, title FROM tb;

id, title만 보이도록

위의 코드를 이용해서 우리가 원하는 id, title만을 추출해냈다.

이 중에서 특정한 조건의 data만 꺼내오고 싶다면 FROM 뒤에 WHERE를 추가하면 된다. 아래의 코드는 author가 won인 사람만 꺼내온 예시이다.

id, title만 보이는데 그중 won인 사람의 것만

 

ORDER BY를 이용해서 원하는 순서대로 정렬할 수 있다.

SELECT * FROM tb ORDER BY author;

 

author 순으로 정렬

 

Update

내용을 수정해보자

id가 2인 항목의 description을 Oracle is... 로 바꾸는 코드이다.

UPDATE tb SET description='Oracle is...' WHERE id=2;

ORACLE is... 를 Oracle is... 로 변경

 

Delete

tb 테이블의 id가 1인 항목을 지우는 코드는 아래와 같다.

DELETE FROM tb WHERE id=1;

 

 

관계형 데이터베이스

위와 같은 표에서 author의 이름이 egoing에서 이고잉으로 바꾸면 많은 수정이 필요하다.

위와 같이 하나의 표를 두 개의 표로 변경하면 egoing을 이고잉으로 바꾸는데 단 한 번의 수정만 필요하다.

하지만 데이터를 볼 때 두 개의 표를 비교해가면서 봐야하기 때문에 불편함이 있다. 두 표를 합쳐서 출력하는 방법을 알아보자.

 

JOIN

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

JOIN을 통해 두 table을 합쳤다. topic table의 author_id와 author table의 id가 일치하도록 합쳤다.

 

 

 

 

 

 

 

 

[참고자료] 생활코딩 DATABASE2 - MySQL

'Dev > Web' 카테고리의 다른 글

[Web] Cookie, Session  (1) 2023.05.13
[Web] JavaScript  (0) 2021.11.09
[Web] Git  (0) 2021.11.02
[Web] CSS  (0) 2021.10.12
[Web] HTLM & Internet  (0) 2021.10.12