DB/Mysql

DataBase

JUNGKEUNG 2021. 11. 6. 16:28
반응형

엔티티 Entity


엔티티는 현실 세계에 존재하는 것을 데이터베이스 상에서 표현하기 위해 사용하는 추상적인 개념이다. 

일종의 비유라고 할 수 있다.

 

릴레이션(relation)


데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 엔티티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리한다. 즉 릴레이션은 하나의 테이블 이라고 생각하면 된다.

 

필드와 레코드


필드 Field는 열 (column)에 해당하는 가장 작은 단위의 데이터를 의미한다. 

레코드 (Record)는 논리적으로 연관된 필드의 집합을 의미하며, 엑셀의 행(row)에 해당한다. 

 

스키마 Schema


데이터베이스의 골격 구조를 나타내는 일종의 도면이다. 어떤 타입의 데이터가 어느 위치에 적재되어야 하는지, 다른 테이블이나 엔티티와 어떠한 관계를 맺는지 정의하게 된다.

 

 

DML 방식


정의된 데이터베이스에 입력된 레코드를 조회,수정,삭제 등의 역할

종류 :Insert, Select, update, delete

 

 

 

DDL방식


데이터베이스를 정의하는 언어이며, 데이터리를 생성,수정,삭제하는 등의 데이터의 전체의 골격을 결정하는 역할

종류 : Create, ALTER, DROP, TRUNCATE

 

 

 

1. SELECT


(1) SELECT * FROM [테이블명]    -- [테이블명]의 모든 필드, 모든 데이터를 조회한다

(2) SELECT * FROM [테이블명]    -- [테이블명]의 모든 필드, [필드명]이 [필드값]인 데이터를 조회한다

WHERE [필드명] = [필드값]

 

 

 

2. INSERT


(1) INSERT INTO[테이블명] (필드명1, 필드명2, ... ) VALUES(필드값1, 필드값2, ... )

  • [테이블명]에 필드값1을 필드명1에, 필드값2를 필드명2에 삽입한다
  • INSERT문을 실행하면 결과에 따라 레코드의 수가 추가된다.

 

 

 

3. UPDATE


(1) UPDATE [테이블명] SET [필드명1] = [수정할값]

    • [테이블명]의 필드명1의 모든 필드를 [수정할값]으로 수정한다.

(2) UPDATE [테이블명] SET [필드명1] = [수정할값] WHERE [필드명2] = [필드값2]

    • [테이블명]의 필드명2가 필드값2인 필드명1의 필드를 [수정할값]으로 수정한다.
    • SELECT 절과 동일하게 WHERE 절을 사용하여 수정할 값의 조건을 설정할 수 있다,

 

 

 

4. DELETE


(1) DELETE FROM [테이블명]

    • [테이블명]의 모든 데이터를 삭제한다

(2) DELETE FROM [테이블명]

WHERE [필드명2] = [필드값2]

AND [필드명3] = [필드값3]]

    • 필드명2가 필드값2이고, 필드명3이 필드값3인 [테이블명]의 데이터를 삭제한다

 

 

 

Join 이란?


2개 이상의 테이블을 연결하여 데이터를 검색하는 방법이다

보통 공통된 값인 PK 및 FK 값을 사용하여 조인한다.

 

 

 

join 종류


join은 관계형을 따라 간다

filter : 필요없는 조건을 가져오는것이 filter조건이다

LEFT OUTER Join, RIGHT OUTER Join, FUll OUTER Join, INNER Join

 

출처 : https://javarevisited.blogspot.com/2012/11/how-to-join-three-tables-in-sql-query-mysql-sqlserver.html

 

How to join three tables in SQL query – MySQL Example

Joining multiple tables in SQL is always a tricky task, It can be more difficult if you need to join more than two tables in single SQL query, worry not. This article explains how to join three tables in Single SQL Query which will work in MySQL, SQL Serve

javarevisited.blogspot.com

 

 

 

1. LEFT JOIN


A, B 두 테이블 중에 A의 값 전체와, A의 해당 key 값과 B의 해당 key 값이 같은 경우 그 값을 SELECT 해온다.

SELECT <id> FROM <A> LEFT JOIN <B> ON <A.key> = <B.key>

 

 

 

2. LEFT JOIN & IS NULL


A, B 두 테이블 중에 A의 값을 SELECT 해오는데, 그중 A의 해당 key 값과 B의 해당 key 값이 같지 않은 경우에만 SELECT 해온다.

SELECT <id> FROM <A> LEFT JOIN <B> ON <A.key> = <B.key> WHERE <B.key> IS NULL

 

 

 

3. INNER JOIN


A의 해당 key 값과 B의 해당 key 값이 같은 경우 그 값을 SELECT 해온다.

SELECT <key1> FROM <A> INNER JOIN <B> ON <A.key2> = <B.key2>

 

 

 

4. FULL OUTER JOIN


A, B 두 테이블의 값 전체를 SELECT 해온다. 참고로 MySQL에는 FULL OUTER JOIN 사용이 불가하다. LEFT JOIN과 RIGHT JOIN을 사용하는 것으로 대체할 수 있다. (FULL OUTER JOIN과 무관한 내용이지만, JOIN을 여러 번 사용할 수 있으므로 2개뿐 아니라 3개 이상의 테이블을 엮는 것 역시 가능하다.)

SELECT <key1> FROM <A> FULL OUTER JOIN <B> ON <A.key2> = <B.key2>

MySQL의 경우,

SELECT <key1> FROM <A> LEFT JOIN <B> ON <A.key2> = <B.key2> 
UNION 
SELECT <key1> FROM <A> RIGHT JOIN <B> ON <A.key2> = <B.key2>

 

 

 

5. FULL OUTER JOIN & IS NULL


A, B 두 테이블 값을 SELECT 해오는데, 그중 A의 해당 key 값과 B의 해당 key 값이 같지 않은 경우에만 SELECT 해온다.

SELECT <id> FROM <A> FULL OUTER JOIN <B> ON <A.key> = <B.key>
WHERE <A.key> IS NULL OR <B.key> IS NULL

'DB > Mysql' 카테고리의 다른 글

[SQL] ERROR 1146 (42S02): Table doesn't exist 에러  (0) 2022.10.03