생활코딩 강의 링크 : 생활코딩 DATABASE2, 생활코딩 SQL JOIN
mysql -uroot -p
그 다음 비밀번호 입력 → 접속 완료
CREATE DATABASE name;
CREATE SCHEMA name;
DROP DATABASE name;
SHOW DATABASES;
USE name;
CREATE TABLE table_name(
c1 datatype(length)
c2 datatype(length)
c3 datatype(length)
...
PRIMARY KEY(c1)
);
PRIMARY KEY : 각각의 값들이 고유하게 존재하게 하기 위해 설정하는 값 (주로 index)
SHOW TABLES;
DESC table_name;
INSERT INTO topic(c1, c2, c3, ...) VALUES(C1, C2, C3,...);
c1 ~ c3 : 열, 항목(Field)
C1 ~ C3 : 행, 정보
SELECT문 문법 자세히 알아보기 → GOOGLE에 "mysql select syntax" 검색
SELECT * FROM table_name;
UPDATE table_name SET assignment_list WHERE where_condition;
assignment_list → col_name1 = value1, col_name2 = value2 ...
where_condition → 어떤 행을 삭제할 것인가? ex) id = 2
DELETE FROM table_name WHERE where_condition;
where_condition → 어떤 행을 삭제할 것인가? ex) id = 2
SELECT * FROM table1 LEFT JOIN table2 ON table1.id1 = table2.id2;
SELECT * FROM table1 LEFT JOIN table2 ON table1.id1 = table2.id2
LEFT JOIN table3 ON table2.id2 = table3.id3;
SELECT table1.id1,table1.topic1 FROM table1 LEFT JOIN table2 ON table1.id1 = table2.id2;
→ table1.id1과 table1.topic1 열만 출력된다.
SELECT * FROM table1 LEFT JOIN table2 ON table1.id1 = table2.id2 WHERE table1.id1 = 1;
→ table1.id1이 1인 행만 출력된다.
SELECT * FROM table1 INNER JOIN table2 ON table1.id1 = table.id2;
SELECT * FROM table1 INNER JOIN table2 ON table1.id1 = table2.id2
INNER JOIN table3 ON table2.id2 = table3.id3;
(SELECT * FROM table1 LEFT JOIN table2 ON table1.id1 = table.id2) UNION
(SELECT * FROM table1 RIGHT JOIN table2 ON table1.id1 = table.id2)
아쉽게도, 대부분의 관계형 데이터베이스에서 FULL OUTER JOIN이라는 문법을 지원하지 않는다.
대신 UNION이라는 문법을 사용하여 이를 수행할 수 있다.
(SELECT * FROM table1 LEFT JOIN table2 ON table1.id1 = table.id2) UNION DISTINCT
(SELECT * FROM table1 RIGHT JOIN table2 ON table1.id1 = table.id2)
위의 코드에서 괄호는 생략해도 된다.
EXCLUSIVE JOIN은 한 쪽 표에만 있는 데이터(행)을 합성하는 방법이다.
왼쪽 테이블에 있는 것만 출력
SELECT * FROM table1 LEFT JOIN table2 ON table1.id1 = table2.id2
WHERE table2.id2 is NULL;
SELECT * FROM table1 RIGHT JOIN table2 ON table1.id1 = table2.id2
WHERE table1.id1 is NULL;