성장에 목마른 코린이

[DB] 헷갈리는 DB 조작 (INSERT, UPDATE, JOIN) 본문

데이터베이스

[DB] 헷갈리는 DB 조작 (INSERT, UPDATE, JOIN)

성장하는 코린이 2022. 4. 9. 03:55
728x90

INSERT INTO _ VALUES

데이터베이스의 테이블/열에 값(VALUES)을 추가합니다.

// 컬럼이름과 값을 지정해주는 방법
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

// 모든 값을 추가 할때 컬럼 이름을 안 써도 됩니다.
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

// SQL Part 4_2
// user 테이블에 데이터를 추가하기 위한 SQL을 작성해주세요. 
// 원하는 name, email을 사용하시면 됩니다.
INSERT INTO user (name, email)
VALUE ('minhyuk','mhp4718@gmail.com');

// SQL Part 4_10
// content의 데이터를 추가하기 위한 SQL을 작성해주세요.
// duhyunkim이 작성한 컨텐츠를 추가해주세요. 제목과 본문은 자유입니다. 
// (참고: duhyunkim의 아이디는 1입니다.)
INSERT INTO content (title, body, userId)
VALUES ('database sprint','database is very easy', 1)

UPDATE SET

업데이트 시키고싶은 테이블을 SET을 이용해 업데이트 합니다.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

UPDATE Customers
SET ContactName = 'MinHyuk', City= 'Pangyo'
WHERE CustomerID = 1;

// SQL Part4_9
// content의 데이터를 수정하기 위한 SQL을 작성해주세요.
// title이 database sprint인 content 데이터에서 body를 database is very easy로 수정해야합니다.

UPDATE content 
SET body = 'database is very easy' WHERE title='database sprint

JOIN

INNER JOIN / JOIN

// 둘 이상의 테이블을 서로 공통된 부분을 기준으로 연결합니다.
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

LEFT JOIN

// 둘 이상의 테이블을 왼쪽 테이블과 서로 공통된 부분을 기준으로 연결합니다.
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

RIGHT JOIN

// 둘 이상의 테이블을 오른쪽 테이블과 서로 공통된 부분을 기준으로 연결합니다.
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

FULL OUTER JOIN / FULL JOIN

// 왼쪽, 오른쪽 테이블 레코드에 일치하는 항목이 있는 모든 레코드를 반환합니다.
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;

SQL Part 5 SPRINT

// JiSungPark이 작성한 content의 category name을 찾기위한 SQL을 작성해주세요.

const PART5_2_6 = 
    `SELECT category.name FROM category
     LEFT JOIN content_category
     ON category.id = content_category.categoryId
     LEFT JOIN content
     ON content_category.contentId = content.id
     LEFT JOIN user
     ON content.userId = user.id
     WHERE user.name = 'jiSungPark'`;

// category의 name이 soccer인 content의 title, body, created_at을 찾기위한 SQL을 작성해주세요.

const PART5_2_7 = 
    `SELECT content.title, content.body, content.created_at FROM content
     LEFT JOIN content_category
     ON content.id = content_category.contentId
     LEFT JOIN category
     ON content_category.categoryId = category.id
     WHERE category.name = 'soccer'`;

// category의 name이 soccer인 
// content의 title, body, created_at, user의 name을 찾기위한 SQL을 작성해주세요.

const PART5_2_8 = 
    `SELECT content.title, content.body, content.created_at, user.name FROM user
     LEFT JOIN content
     ON user.id = content.userId
     LEFT JOIN content_category
     ON content.id = content_category.contentId
     LEFT JOIN category
     ON content_category.categoryId = category.id
     WHERE category.name = 'soccer'`;

// duRiCha가 작성한 글의 개수 (컬럼명: ContentCount)를 출력하기 위한 SQL을 작성해주세요.

const PART5_2_9 = 
    `SELECT COUNT(*) AS ContentCount FROM content
     LEFT JOIN user
     ON user.id = content.userId
     WHERE user.name = 'duriCha'`;

// 각 user(컬럼명: name)가 작성한 글의 개수 (컬럼명: ContentCount)를 출력하기 위한 SQL을 작성해주세요.

const PART5_2_10 = 
    `SELECT user.name AS name, COUNT(content.id) AS ContentCount FROM user
     LEFT JOIN content
     ON user.id = content.userId
     GROUP BY user.name`;

 

Comments