MySQL

:: 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS).

:: 데이터베이스를 관리하거나 자료를 관리하기 위한 GUI 관리툴은 내장되어 있지 않고 오로지 명령어로만 동작

따라서 MySQL 프론트엔드 데스크톱 소프트웨어나 웹 애플리케이션을 사용해야 함

MySQL Workbench : 공식적 MySQL 프론트엔드 툴

MySQL과 같은 관계형 데이터베이스의 중요한 특징은 스프레드시트와 마찬가지로 데이터를 표의 형태로 표현해준다. 

 

 

MySQL의 구조

- 표(table)에 저장됨 -> 표가 늘어남 -> 정리정돈(디렉토리)의 필요성 증대

- 스키마? 서로 연관된 표들을 서로 그룹핑할 때 사용하는 일종의 폴더.

- 스키마들이 모인 것 = 데이터베이스 서버(database server)

데이터베이스 서버> 데이터베이스(스키마)> 표(table)

 

효용 

1. 보안 (자체적 보안 체계를 가지고 있어 안전한 보관 가능)

2. 권한 (다양한 사용자들이 관리할 수 있음 + 차등적 권한을 줄 수 있음)

 

SQL

(Structed Query Language)

:: 데이터를 관리하기 위한 쿼리 언어

:: 데이터베이스 종류와 상관 없이 모든 데이터베이스는 SQL을 통해서만 관리가 가능함

:: 기본적으로는 ANSI 표준이며 데이터베이스 회사별로 조금씩 차이가 있음

 

 

그리고 다양한 MySQL 명령들

(※ 주의 : 공부한 것을 까먹지 않도록 간단하게 적어놓은 것이므로 설명 등이 매우 부실함)

 

1. 데이터베이스 생성

CREATE DATABASE 데이터베이스명;

2. 데이터베이스 목록보기

SHOW databases;

3. 데이터베이스 선택

USE 데이터베이스명;

4. 테이블 생성

CREATE TABLE 테이블명(
-> 필드1 데이터타입 NULL수용여부(사용하지 않으면 기본적으로 NULL),
-> 필드2 데이터타입 NOT NULL,
...
-> PRIMARY KEY(필드1)); // PRIMARY KEY 부여 


예를 들어
CREATE TABLE opentutorials(
-> id INT(11) NOT NULL AUTO_INCREMENT,
-> title VARCHAR(30) NOT NULL,
-> description TEXT NULL,
-> created DATETIME NOT NULL,
-> profile VARCHAR(100) NULL,
-> PRIMARY KEY(id));

3. 테이블 목록보기

SHOW tables;

4. 테이블 구조 확인

DESC 테이블명;

5. 특정 칼럼에 키 부여

ALTER TABLE 테이블명 ADD PRIMARY KEY(필드명);

6. 데이터 입력

INSERT INTO //모든 필드에 데이터 추가 
-> 테이블명
-> VALUES(데이터1, 데이터2, 데이터3,,,);

예를 들어
INSERT INTO 
->opentutorials
->VALUES("SQL","SQL is....",NOW(),'kkami','developer');
INSERT INTO 테이블명(필드1, 필드2) VALUES(데이터1,데이터2);

예를 들어
INSERT INTO opentutorials(title,description,created,author,profile) 
->VALUES("SQL","SQL is....",NOW(),'kkami','developer');

7. 데이터 조회

SELECT * FROM 테이블명; // 전체 필드 데이터 검색

SELECT 필드명1, 필드명2 FROM 테이블명; // 특정 필드 데이터 검색

SELECT 필드명1, 필드명2 FROM 테이블명 WHERE 조건식; // 조건에 맞는 레코드 검색 명령

SELECT 필드명1, 필드명2 FROM 테이블명 WHERE 검색필드 LIKE 조건식 // 특정 문자열이 포함된 레코드 검색 명령

SELECT 필드명1, 필드명2 FROM 테이블명 ORDER BY 필드명; // 레코드 정렬 명령 -오름차순
SELECT 필드명1, 필드명2 FROM 테이블명 ORDER BY 필드명 DESC; // 레코드 정렬 명령 -내림차순

SELECT 필드명1, 필드명2 FROM 테이블명 ORDER BY 필드명 LIMIT 숫자;// 오름차순으로 해당 숫자만큼만 출력

SELECT * FROM 테이블명 LEFT JOIN 붙일 테이블명 ON 조건; // 테이블 합치기
ex) SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id; 

8. 데이터 수정

UPDATE 테이블명 SET 필드명='바꾸고자 하는 값' WHERE 조건;

예를 들어
UPDATE opentutorials SET id=3 WHERE id=1;

9. 데이터 삭제

DELETE FROM 테이블명 WHERE 조건;

10. 이름 변경

RENAME TABLE 테이블명 TO 바꾸고자 하는 값;

 

+ Recent posts