생활코딩 - SQL 강의 이어서 정리
CRUD
UPDATE : 테이블 수정할 때 사용한다
UPDATE topic(테이블 이름) SET description='Oracle is ...', title='Oracle' WHERE id=2;
WHERE id=2; ->수정할 아이디 지정
DELETE : 테이블을 삭제할 때 사용한다
DELETE FROM (테이블이름) WHERE id=숫자;
DELETE FROM topic WHERE id = 5;
*****WHERE문으로 지정하는 것을 잊지말것*****
관계형 데이터베이스가 아닌경우
데이터가 중복되는 것이 천만개일 때 (용량을 많이 차지할 때) 같은 데이터임을 확신하기 어렵다
관계형 데이터베이스의 장점
큰 규모의 데이터를 테이블에 담고, 테이블간의 관계를 통해 여러개의 테이블을 분산 저장할 수 있다
중복데이터가 존재하지 않아 저장공간을 절약할 수 있고, 데이터 수정이 용이하다
SHOW TABLES; : 테이블을 볼 때 사용한다
RENAME TABLE topic TO topic_backup; : 테이블의 이름 변경하기
SELECT * FROM topic_backup;
JOIN
각각 독립적인 분리된 테이블을 읽을 때 하나의 테이블처럼 읽을 수 있다
-> 2개의 테이블을 서로 묶어서 하나의 결과를 출력한다
->관계형 데이터베이스를 관계형으로 만드는 명령어
테이블 합치기
SELECT * FROM topic(테이블이름) LEFT JOIN author(다른테이블 이름) ON topic.author_id = author.id;
원하는 형태의 테이블 만들기
SELECT * FROM comment LEFT JOIN author ON comment.author_id = author.id;
-> ON을 포함한 밑줄은 어떤 컬럼을 기준으로 할지 붙이는 것이다
중복되는 id 테이블 이름 변경 (중복제거)
SELECT topic.id As topic_id ,title,description,created,name,profile FROM topic LEFT
JOIN author ON topic.author_id = author id;
테이블 안 데이터의 이름변경
UPDATE author SET profile=’database administrator’ WHERE id = 2;
->하나를 바뀌면 전부 바뀜 author 테이블을 기준으로 변경
mysql 서버와 클라이언트는 별도로 존재한다
우리는 sql문을 생성하여 서버에 전송한다
***mysql 모니터나 워크벤치나 모든 클라이언트는 결국 sql을 mysql 서버에 전송함으로써 데이터베이스를 제어한다 ***
[추가 정리]
JOIN
INNER JOIN : 조인하고자 하는 두 개의 테이블에서 공통된 요소들을 통해 결합하는 방식이다
JOIN이라고 써도 INNER JOIN으로 인식한다
OUTER JOIN : 두 테이블을 조인할 때 한 개의 테이블에만 데이터가 있어도 결과가 나온다
left outer join/ right outer join/ full outer join 이 있으며 FROM절에 적은 테이블이 left JOIN절에 적은 테이블이 right가 된다
CROSS JOIN : 특정 기준없이 두 테이블간 가능한 모든 경우의 수에 대한 결합을 결과로 보여주는 방식이다
기준이 없기 때문에 ON절을 사용하지 않는다
SELF JOIN : 자기 스스로를 결합시키는 조인이다 기본 테이블 이외에 참조하는 테이블이 자기자신이다
셀프 조인시에는 별칭을 필수로 입력해야 한다
'백엔드 > Database' 카테고리의 다른 글
TIL 정리_113(데이터베이스&SQL 문법) (0) | 2022.06.29 |
---|---|
TIL 정리_55(인덱스) (0) | 2022.04.12 |
TIL 정리_44 (0) | 2022.03.31 |
TIL 정리_43(Oracle) (0) | 2022.03.30 |
TIL 정리_34(MySql) (0) | 2022.03.21 |