백엔드/Database

TIL 정리_35

ran4 2022. 3. 22. 19:59

생활코딩 - 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 모니터나 워크벤치나 모든 클라이언트는 결국 sqlmysql 서버에 전송함으로써 데이터베이스를 제어한다 ***

 

[추가 정리]

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