위로
아래
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 열만 출력