Create
Read
Update
Delete
Create
INSERT INTO User (id, age, name, email, phoneNumber)
VALUES (1, 20, 'John', 'john@gmail.com', "01012345678");
// 일부만 넣고 싶을 때 (not NULL로 설정되어있으면 오류남)
INSERT INTO User (name, email, phoneNumber)
VALUES ('John', 'john@gmail.com', "01012345678");
만들어둔 테이블에 SQL 문법 적용해보기


SQL 스크립트 실행하면 데이터 저장됨

Update
UPDATE User
SET age = 21
WHERE name = 'John';
UPDATE User
SET age = 21
WHERE id = 1;
UPDATE 테이블 이름
SET 무엇을 바꿀지
WHERE 조건 (조건 여러 곳에 해당되면 모두 업데이트 됨)
DELETE
// User로부터 id가 1인 것 삭제
DELETE FROM User WHERE id = 1;
GET
GET - 기본
// User에서 모든 걸 불러옴
SELECT *
FROM User;
// User 중 id가 1인 것만 Id, age, name 불러옴
SELECT id, age, name
FROM User
WHERE id = 1;
GET - count
// User에서 해당 핸드폰 번호인 유저 몇 명인지 세어줌
SELECT count(*)
FROM User
WHERE phoneNumber = "01012345678";
Get - orderBy
SELECT *
FROM User
ORDER BY age ASC;
SELECT *
FROM User
ORDER BY age DESC;
ASC: ascend, 오름차순 정렬
DESC: descend, 내림차순
Get - 페이징
SELECT *
FROM User
ORDER BY age ASC LIMIT 1;
SELECT *
FROM User
ORDER BY age DESC
LIMIT 2 OFFSET 1;
SELECT *
FROM User
ORDERS age ASC LIMIT 1; // ORDER BY 대신 ORDERS
LIMIT: 얼마나 가져올지
OFFSET: 어디서부터 가져올지


User의 id와 Post의 userId에 관계를 부여
이 때 이런 id들을 'Key' 라고 함
PK(Primary Key)
Unique Key
FK(Foreign Key)


Constraints > Create New Constraint

User와 Post의 id를 Primary Key로 설정
Foreign Key > Create foreign key

INSERT INTO Post (id, title, content, userid)
VALUES ("id1", "title1", "content1", "id3")

Post 테이블에 데이터 생성됨

Inner Join

일정 부분(ex. User의 id와 Post의 userId)이 일치하는 것만 뽑아오는 것

SELECT u.id, u.name
p.id as postId, p.title
FROM User AS u
JOIN Post AS p
ON u.id = p.userId;
AS는 별칭 부여하는 것
ON이라는 키워드 뒤에 어디에 대해 교집합을 만들지에 대한 조건 붙음
User에 있는 id와 Post에 있는 userId Join 하겠다는 의미
📌


일 때
SELECT u.id, u.name, p.id as postId, p.title
FROM User as u
JOIN Post as p
ON u.id = p.userId;

Left Join

Left Join 하는 대상의 왼쪽에 있는 것들만 다 불러옴
SELECT u.id, u.name, p.id as postId, p.title
FROM User as u
LEFT JOIN Post as p
ON u.id = p.userId;

Post에 없는 것들도 불러와짐
LEFT를 한 것을 기준으로 왼쪽!
Right Join
LEFT와 똑같음, 여기서는 Post쪽
SELECT u.id, u.name, p.id as postId, p.title
FROM User as u
RIGHT JOIN Post as p
ON u.id = p.userId;

🗣️ LEFT RIGTH는 거의 사용하지 않는다. 주로 INNER JOIN을 사용함!