File에서 벗어나 전문적인 소프트웨어 개발 1960년대부터
1970년 IBM 관계형 데이터 베이스를 만들었다.
데이터를 표의 형태로 검색을 빠르고 편리하고 안전하게 가능하다.
오픈 소스
웹이 폭발적으로 성장하면서, 데이터 베이스 찾게 됨.
자연스럽게 mySQL를 사용하면서 동반성장을 하게 됨.
스프레스 시트에서 필터로 정렬가능하다.
데이터 베이스는 컴퓨터 언어를 통해서 제어가 가능하다.
토픽에서 author 라는 행에서 sekwang이라는 것만 찾아줘
SELECT * FROM topic WHERE author = 'sekwang';
id가 큰 수부터 해줘!
SELECT * FROM topic WHERE author = 'sekwang' ORDER BY id DESC;
데이터 베이스를 통해 저장된 것, 웹, 앱으로 공유가능, 인공지능으로 분석 가능하다.
연관된 표들을 고통
표에 저장이 된다.
연관된 데이터를 그룹핑하는 것 ⇒ 스키마
이미지참조: 생활코딩
# 데이터 베이스 생성
CREATE DATABASE '데이터베이스명';
# 데이버 베이스 삭제
DROP DATABASE '데이터베이스명';
# 데이버 베이스 확인
SHOW DATABASES;
# 데이터 베이스 사용하기
USE '데이터베이스명';
## 핵심은 검색해서 하나씩 찾으면 된다.
Structured, 정리정돈
Query, 요청한다, 질의한다.
Language, 공통의 약속, 언어
SQL 쉽고 중요하다.
수평 : row, record 행 ⇒ 데이터 자체
수직 : columns, 열 ⇒ 데이터의 구조
참조: 생활코딩
create table in mysql cheat sheet
id 값은 숫자로 결정해 놓는다.
## 테이블 만들기 id 생성 칼럼이름, 데이터 타입, 보여줄것
CREATE TABLE topic(
-> id INT(11) NOT NULL AUTO_INCREMENT, # 값이 없는 걸 허용하지 않겠다. / 자동으로 ID값 생성
-> title VARCHAR(100) NOT NULL,
-> description TEXT NULL,
-> created DATATIME NOT NULL,
-> author VARCHAR(30) NULL,
-> profile VARCHAR(100) NULL,
-> PRIMARY KEY(id)
PRIMARY KEY는 고유한 값을 가지는 것!
에러 노트
첫번째 에러
두번째 에러
두 철자 에러가 발생하여 에러가 발생했다.
CREATE TABLE topic(
id INT(11) NOT NULL **AUTO INCREMENT**,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
created **DATATIME** NOT NULL,
author VARCHAR(30) NULL,
profile VARCHAR(100) NULL,
PRIMARY KEY(id));
두개를 수정해주고 정상적으로 작동하였다.
**AUTO INCREMENT => AUTO_INCREMENT**
**DATATIME => DATETIME**
SET PASSWORD = PASSWORD('변경할 비밀번호')
# mysql 접속
./mysql -uroot -p
# 데이터 베이스를 보기
SHOW DATABASES;
# 데이터 베이스를 사용하기
USE '데이터베이스명'
# 데이터 베이스의 테이블 보기
SHOW TABLES;
# 테이블의 구조 확인
DESC '테이블명';
DESC topic
# 데이터 베이스의 테이블에 값을 추가한다.
INSERT INTO '테이블명' (title,description,created,author,profile) VALUES('MySQL','MySQL is ....',NOW(),'michael','Data Scientist')
# 현재시간 작성됨
NOW()
# 추가된 데이터 베이스 보기
SELECT * FROM topic;
# 각각 칼럼들을 확인
SELECT title, id, description, created, author, profile FROM topic;
# 필요한 데이터가 가져오고 싶을 때
WHERE author = '작가명'
# 정렬하기
ORDER BY id DESC;
# 제한을 걸어서 몇개 볼지 생각
LIMIT 2;
# topic 테이블에서 title 칼럼에서 'oracle'인 데이터를 id 순서 대로, 2개만 가져와라!
SELECT * FROM topic WHERE title='oracle' ORDER BY id DESC LIMIT 2;
# UPDATE하기
## topic 테이블의 id=3에서 title 칼럼을 'MySQL'로 수정하고, description 칼럼은 'MySQL is ...'으로 수정한다.
UPDATE topic SET title='MySQL', description='MySQL is ...' WHERE id=3;
# DELETE FROM topic WHERE
## topic 테이블의 title이 oracle인 것 삭제
DELETE FROM topic WHERE title='oracle';