데이터베이스는 표(table)을 가지고 있다.
row: 데이터 하나하나 데이터 자체를 얘기한다. 위의 표에서 row는 2개
column: 데이터의 구조 (type) 을 얘기한다. 위의 표에서 column은 4개
서로 연관된 데이터(table)들을 grouping할 때 사용되는 일종의 폴더이다.
스키마들을 가지고 있는 전체를 데이터베이스 서버 라고한다.
CREATE DATABASE 데이터베이스명;
DROP DATABASE 삭제할 데이터베이스명;
SHOW DATABASS;
USE 사용할 데이터베이스명;
CREATE TABLE 테이블명(
column명 과 데이터 타입
column명 과 데이터 타입
)
CREATE TABLE topic(
id INT(11) NOT NULL AUTO_INCREMENT, // id INT(노출될 값)/ 반드시 있어야 될 값 / 자동으로 증가한다.
title VARCHAR(100) NOT NULL,
description TEXT NULL, // NULL 은 값이 없는걸 허용함
created DATETIME NOT NULL,
author VARCHAR(30) NULL,
profile VARCHAR(100) NUL,
PRIMATRY KEY(id)); // id 는 primary key 라는걸 알려준다. 중복 불가
CRUD
INSERT INTO 데이터를 추가할 테이블명 (cloumn1, coloumn2) VALUES(value1, value2)
SELECT *FORM 테이블명;
SELECT id,title,created,author FORM topic;
SELECT id,title,created,author FORM topic WHERE author='egoing';
SELECT id,title,created,author FORM topic WHERE author='egoing' ORDER BY id DESC; // DESC 큰 숫자 순으로 정렬
SELECT id,title,created,author FORM topic WHERE author='egoing' ORDER BY id DESC LIMIT 2;
UPDATE 테이블명 SET 수정을 원하는 column='수정내용' WHERE id=수정을 원하는 id;
DELETE FROM 테이블명 WHERE id=삭제를 원하는 id;
JOIN
데이터의 중복을 피하기위해서 다른 테이블에서 부터 데이터를 참조하는 방식이다.
member_of 라는 column을 int로 넣는다.
이 member_of 에 들어간 숫자는 team의 team_id에 해당한다.
SELECT *FROM infoTable LEFT JOIN team ON infoTable.member_of = team.team_id
SELECT id,first_name,last_name,email,team FROM infoTable LEFT JOIN team ON infoTable.member_of = team.team_id
* AS 를 사용하여 cloumn명 바꿔서 표시 하기
SELECT id,first_name,last_name,email,team AS member_of FROM infoTable LEFT JOIN team ON infoTable.member_of = team.team_id
team AS member_of : team -> member_of로 바뀜