MySQL, Oracle, SQL Server, PostgreSQL, DB2, Access 등의 제품이 있음
데이터를 표의 형태로 정리 가능
정렬, 검색과 같은 작업을 빠르고 간결하게 할 수 있음
구조화된 쿼리(데이터베이스에 요청하는 개념) 언어
무료, 오픈 소스, 관계형 데이터 베이스의 주요 기능을 가짐
WEB이 발전하면서 위와 같은 장점으로 WEB과 함께 성장함
코드를 통해 데이터를 조작할 수 있음
bitnami 를 통해 설치
설치할 때 password 지정 (이후에 계속 사용되니 잊으면 안된다)
cmd 에서 mySQL이 있는 경로로 이동
cd C:\Bitnami\wampstack폴더명\mySQL(또는 mariadb)\bin
mySQL 실행
uroot
: root 사용자로 접속한다는 의미(u:user)p
: passwordmysql -uroot -p
정보가 증가함에 따라 데이터를 담고 있는 표(table)의 수도 많아짐 -> 정리 필요
서로 연관된 표들을 그룹핑 -> 데이터 베이스(database = schema)
데이터베이스 서버 (database server): 여러 스키마들을 모아놓은 것
보안: 데이터 베이스는 자체 보안 체계가 있어 안전하게 데이터를 보관할 수 있음
권한 기능: 다른 사람이 읽기, 쓰기, 수정, 삭제가 가능하도록 권한 설정 가능
CREATE DATABASE 데이터베이스명;
DROP DATABASE 데이터베이스명;
SHOW DATABASES;
SHOW SCHEMAS;
USE 데이터베이스명;
database는 데이터 타입을 정할 수 있음.
cheat sheet를 참고해서 작성하면 좋다고 함
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));
INT(m)
, VARCHAR(size)
, TEXT
NOT NULL
: 반드시 기입해야하는 정보 ex: id
AUTO_INCREMENT
: 자동으로 1씩 증가
PRIMARY KEY(x)
: 메인키 지정 (x) / 중복을 막아주는 장점
DESC topic;
INSERT INTO topic (title, description, created, author, profile) VALUES('MySQL', 'MySQL is ...', NOW(), 'egoing', 'developer');
SELECT * FROM topic;
DESC
테이블명: 테이블의 구조를 확인할 수 있음
# topic 테이블의 모든 행 출력
SELECT * FROM 테이블명;
SELECT * FROM topic;
# 원하는 행의 정보만 출력
SELECT 행이름, 행이름, 행이름 FROM topic;
SELECT id, title, created FROM topic;
# 특정 요소로 필터
SELECT 행이름, 행이름, 행이름 FROM topic WHERE 행이름='요소';
SELECT id, title, created FROM topic WHERE author='egoing';
# 정렬하기 (내림차순)
SELECT 행이름, 행이름, 행이름 FROM topic WHERE 행이름='요소' ORDER BY DESC;
SELECT id, title, created FROM topic WHERE author='egoing' ORDER BY DESC;
# 보여지는 데이터 수 제한하기
SELECT 행이름, 행이름, 행이름 FROM topic WHERE 행이름='요소' ORDER BY DESC LIMIT 수;
SELECT id, title, created FROM topic WHERE author='egoing' ORDER BY DESC LIMIT 2;
# 특정 내용 변경하기
UPDATE 테이블명 SET 행이름='변경할 내용', 행이름2='변경할 내용2' WHERE 메인 행 이름='기준값';
UPDATE topic SET description='Oracle is ...', title='Oracle' WHERE id='2';
DELETE FROM 테이블명 WHERE 메인 행 이름='기준값';
DELETE FROM topic WHERE id='5';