위로 아래

MySQL monitor 실행

// 실행 및 로그인
cd usr/local/mysql/bin/   // mysql 파일 위치
./mysql -uroot -p      // -u : 유저, root : 아이디, -p : 비밀번호 입력 
비밀번호 입력

// 호스트 로그인 
./mysql -uroot -p -hlocalhost   // h : host
//localhost 자리에 도메인이나 아이피 쓰면 된다

//비밀번호 변경
SET PASSWORD = PASSWORD('1111');

 

 


데이터베이스 

//터미널
CREATE DATABASE 이름;   // '이름'이라는 데이터베이스 생성
DROP DATABASE 이름;   // '이름'이라는 데이터베이스 삭제
USE DATABASE 이름;   // '이름'이라는 데이터베이스 선택

SHOW DATABASES;   // 데이터베이스 목록 보기

 

 

 


CREATE 테이블 생성

//테이블 생성
CREATE TABLE topic(   // topic 이라는 테이블 생성
id INT(11) NOT NULL AUTO_INCREMENT,   // id 라는 col 생성, 11자리 숫자까지 입력 가능, 빈칸 금지, 자동으로 1씩 증가
title VARCHAR(100) NOT NULL,   // title 이라는 col 생성, 100자리 문자 입력 가능, 빈칸 금지
description TEXT NULL,   //desciption 이라는 col 생성, 문자, 빈칸 가능
created DATETIME NOT NULL,   // created라는 col 생성, 생성 시간, 빈칸 금지
author VARCHAR(30) NULL,   //authior라는 col 생성, 30자리 문자 입렵 가능, 빈칸 가능
profile VARCHAR(100) NULL,   //profile라는 col 생성, 100자리 문자 입력 가능, 빈칸 가능
PRIMARY KEY(id));   //id col을 프라이머리 키로 선정. 가장 중요한 col. 중복 금지.

//테이블 확인
SHOW TABELS;

//테이블 구조 확인
DESC topic;

 

 

 


INSERT 데이터 입력 

// INSERT
INSERT INTO topic   // topic 테이블에 INSERT (row 행 추가)
(title, description, created, author)   // 사용할 col 선택 (id는 알아서 1씩 더해지게 선택 안 한다)
VALUES ('mySQL', 'mySQL is ...', NOW(), 'GAESOL');   // 선택한 col에 맞는 데이터 입력
// NOW()는 현재 시간을 나타내는 함수

 

 

 

 


SELECT 데이터 조회

// 조회
SELECT * FROM topic;   // topic 테이블의 모든 데이터 선택 조회

// 선택 조회
SELECT id, title, author FROM topic   // topic 테이블에서 id, title, author col만 선택
WHERE author != 'GAESOL'   // author 열의 데이터가 GAESOL이 아닌 데이터만 선택
ORDER BY id DESC   // id 값으로 내림차순 선택
LIMIT 2;   // 두 개의 행만 선택 조회

 

 

 


UPDATE 데이터 수정

//데이터 수정
UPDATE topic SET   // topic 테이블의 데이터 수정
description='ORACLE IS ...', title='Oracle'   // description 열의 데이터는 대문자로, title 열의 데이터는 소문자로 변경
WHERE id=5;   // id 값이 5인 행의 결과 변경
// WHERE을 빠트리면 모든 행의 결과가 변경된다! 안 빠트리도록 조심!

 

 

DELETE 데이터 삭제

//데이터 삭제
DELETE FROM topic WHERE id = 5;   // topic 테이블에서 id 열의 값이 5인 행 삭제

 

 

 


JOIN 테이블 합치기

RDBMS의 가장 큰 장점, 테이블을 분리하고 합쳐서 중복을 줄일 수 있다!

게시판 데이터베이스에서, 한 저자가 여러 글을 쓰면 데이터베이스에 그 저자의 이름이 달린 게시글들이 생긴다. 

이때 저자가 닉네임을 바꾸면 이제껏 저자가 쓴 모든 게시글의 데이터를 모두 바꿔주어야 한다.

그러나 게시판 테이블과 저자 테이블을 나눠 놓으면, 저자 테이블만 한 번만 수정하면 된다.

그런데 이때 게시판을 두 개로 나눠서 봐야하는데, 이 두 게시판을 하나로 합쳐서 보여주는 게 join 이다.

 

// 테이블 합치기
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;

// topic LEFT JOIN author   // topic 테이블에 author 테이블 합치기
// ON topic.author_id = author.id;
// 합치는 기준은, topic 테이블의 author_id 열과 author 테이블의 id 열이 일치하는 지점

 

중복되는 열 숨기기

// 중복되는 열 숨기기
SELECT topic.id AS topic_id, title, description, created, name, profile FROM topic LEFT JOIN author ON topic.auth
or_id = author.id;

// topic.id AS topic_id   // topic 테이블의 id만 있으면 이름을 알아보기 힘드니까, topic_id로 바꿔서 출력
// id, title, description, created, name, profile FROM topic
// id, title, description, created, name, profile 열만 출력