폭발적으로 증가하는 정보의 수와 다양성으로 인해 파일만으로는 정보를 효과적으로 입력,저장,출력하는것이 어려워진다. 이러한 필요로 인해 탄생한 데이터베이스 프로그램중 그중에서 MySQL을 알아보자
구조화된 질의 언어(Structured Query Language)
관계형 데이터 베이스(Relational database)
관계형 데이터 베이스의 특징은 데이터를 표의 형태로 표현해준다.
terminal 실행후
cd /usr/local/mysql/bin/
./mysql -uroot -p
이렇게 화면이 나오면 성공
mysql>
3개정도의 구성요소: Table, Schema, Database Server
표(table)
관계형데이터베이스는 엑셀과 같은 스프레드시트와 비슷한 구조를 가지고 있다. 즉, 정보는 표에 저장이된다.
스키마(schema)
많아지는 표들을 그룹화하기위해 사용하는 폴더이다
데이터베이스 서버(database server)
스키마(schema)로 이루어진 데이터베이스 서버
*MySQL은 기본적으로 권한기능을 지원한다. 데이터베이스에 접속한 유저들에게 각각의 테이블, 스키마에 대해서 읽기,쓰기 권한을 차등적으로 부여해줄수있다.
표(table)을 사용하기전에 스키마(schema)를 먼저 만들어야한다.
스키마 생성.
mysql> CREATE DATABASE 스키마이름;
create database test character set utf8mb4 collate utf8mb4_general_ci;
스키마 삭제.
DROP DATABASE 스키마이름;
스키마 보기.
SHOW DATABASES;
사용할 스키마 선택
USE 스키마이름;
id | title | description | created |
---|---|---|---|
1 | MySQL | MySQL is... | 2020-09-02 |
2 | Oracle | Oracle is ... | 2020-09-03 |
x: row | record | 행 | == 데이터가 2개가 있다.
y: column | 열 | == 데이터의 타입
CREATE TABLE topic(
id INT(11) 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)
);
생성하기전 중요한 명령어.
SHOW TABLES;
스키마안에서 테이블 보기
DESC 테이블이름;
테이블 구조 보기
레코드 생성, 삽입, 추가
INSERT INTO topic(title, description, created, author, profile) VALUES('MySQL', 'MySQL is...', NOW(), 'Amuse', 'developer');
레코드 읽기
SELECT * FROM topic;`
`SELECT id, title, created, author FROM topic;
i. 조건기능 WHERE
SELECT id, title, created, author FROM topic WHERE author='Amuse';
ii. 정렬기능 ORDER BY 이름 | ORDER BY 이름 DESC
SELECT id, title, created, author FROM topic WHERE author='Amuse' ORDER BY id DESC;
iii. 데이터 개수제한
SELECT id, title, created, author FROM topic WHERE author='Amuse' ORDER BY id DESC LIMIT 2;
레코드 수정
UPDATE topic SET description='Oracle is...', WHERE id=2;
레코드 삭제
DELETE FROM topic WHERE id=5;