1. 데이터베이스의 의의
: 여러 사람에 의해 공유되어 사용될 목적으로 통합되어 관리되는 데이터의 집합을 말하는 개념이다. 줄여서 DB라고 하며, 특 정 다수에게 필요한 정보를 제공한다던지 조직 내에서 필요로 하는 정보를 체계적으로 축적하여 그 조직 내의 이용자에게 사용되는 것이다. -> 데이터를 row와 column으로 나눠진 표 형태로 저장하는 관계형 데이터베이스가 주로 사용되고 있다.
2. MySQL의 구조
: 일단 TABLE은 엑셀의 스프레드 시트와 비슷한 구조를 가지고 있다. 회원정보, 댓글 정보 등을 저장하는 표등으로 활용 할 수 있다. -> 또한 비슷한 데이터를 가진 표들을 그룹핑 해 놓은 일종의 폴더와 같은 역할을 하는 것을 데이터베이스 라고 한다. (= Schema와 같은 용어이다.)
3. MySQL 접속 방법
: 데이터베이스를 통해 얻을 수 있는 장점
- 보안: 데이터를 안전하게 보관할 수 있다.
- 권한기능: 데이터베이스를 사용하는 여러 유저들을 각자의 접근 레벨을 적용하여 관리할 수 있다.
: mysql -uroot -p 로 접속 할 수 있다. (CMD로 접속할 시에는 시스템 속성에서 환경변수를 설정해줘야 한다.)
4. MySQL Schema 의 사용
-> 테이블을 만들고, 삭제하고, 검색할 수 있다.
create database 데이터베이스명;// 스키마를 만드는 명령어
drop database 'dbname';// 스키마를 삭제하는 명령어
show databases;// 데이터베이스 목록 출력하기
use 'dbname'; // 내가 만든 데이터베이스에 접속하기
// 이제 서버에서 내리는 명령어는 선택한 데이터베이스에 적용된다.
5. SQL과 테이블 구조
: SQL 이란 Structed Query Language 로, 데이터베이스에게 질의를 날려서 데이터를 요청하는 언어이다.
: 많은 데이터 시스템이 SQL을 통해서 관리되고 있다.
: 테이블은 행과 열로 이루어진 표 형태로 이루어져 있다.
6. MySQL 테이블의 생성
-> 해당하는 테이블을 만들어 보자.
use 'dbname' //어떤 데이터베이스를 사용할지 선택한다.
create table topic(
id INT(11) NOT NULL AUTO_INCREMENT),
//한 컬럼을 만든다. 그렇지만 한 컬럼에 같은 자료형만 들어갈 수 있다. cheatsheet 에서 확인가능.
// NOT NULL: 값이 없는 것을 허용하지 않음(꼭 입력해야하는 데이터인경우)
// AUTO_INCREMENT: 자료를 입력하면 따로 하지 않아도 한 행을 자동으로 늘린다.
title VARCHAR(100) NOT NULL,
description TEXT NULL,
created DATETIME NOT NULL,
author VARCHAR(30) NULL,
profile VARCHAR(100) NULL,
PRIMARY KEY(id));
//primary key-> 메인 키임을 알려준다. 또한 값이 중복되면 안된다는 것 을 알려준다.
7. CRUD (CREATE, READ, UPDATE, DELETE)
1) CREATE: 데이터 집어넣기
DESC topic
INSERT INTO topic(id,title,description,created,author,profile)
VALUES(1,'MySQL', 'MySQL is..',NOW(),'egoing','developer');
INSERT INTO topic(id,title,description,created,author,profile)
VALUES(2,'ORACLE', 'ORACLE is..',NOW(),'egoing','developer');
2) READ: SELECT 구문 알아보기
https://dev.mysql.com/doc/refman/5.5/en/select.html
-> 원하는 데이터만 골라서 읽을 수가 있다.
SELECT * FROM 'DBNAME';
//모든 데이터를 출력하게 된다.
SELECT (표시하고 싶은 COLUMN의 이름) FROM 'DBNAME';
//예를 들어서
SELECT id,title, author FROM topic;
SELECT id FROM topic WHERE author='egoing';
//select, from, where 순으로 순서가 정해져있다.
+) 응용
SELECT id,title,created,author FROM topic WHERE author='egoing' ORDER BY id DESC;
//정렬 순서가 역전되게 할 수 있다.
SELECT * FROM TOPIC;
//이것은 정보의 양이 너무 많아서 컴퓨터에 렉을 발생시킬수 있다.
SELECT id,title,created,author FROM topic WHERE author='egoing' ORDER BY id DESC LIMIT 2;
//정보의 양을 2개로 제한할 수 있다.
3) UPDATE
UPDATE 'dbname' SET description='ORACLE IS...',title='Oracle' WHERE id=2;
//set-> 바꿀 내용, where-> 바꿀 내용의 위치
4) DELETE
DELETE FROM topic WHERE id=5;
//where 구문 안넣으면 아예 전체 디비가 삭제될 수 있다.
8. 인터넷과 데이터베이스
: 인터넷을 사용하기 위해서는 최소 두대의 컴퓨터가 필요하다. (정보를 요청하는 쪽과 정보를 제공하는 쪽이다)
: 데이터베이스 역시 데이터베이스 클라이언트와 제공하는 서버가 존재한다. 비슷한 구조를 갖고 있다고 생각하자.
(MySQL 모니터가 데이터베이스 클라이언트이다.)
: 데이터베이스와 인터넷이 결합하면 그 힘이 좀더 강력해진다. 데이터베이스 서버에 전세계의 클라이언트들이 수많은 정보를 저장하고 삭제하는 등 여러가지 정보를 주고받고 관리하는 게 가능해지기 때문이다.
'Web > Database' 카테고리의 다른 글
논리적 데이터베이스 모델링 (0) | 2022.02.23 |
---|---|
Amazon RDS 데이터베이스 구축(MySQL) (0) | 2022.02.22 |
ERD, 어떻게 설계하는 걸까? (2) | 2022.02.21 |
Python으로 SQLite, MongoDB 접근해보기 (0) | 2020.05.25 |