티스토리 뷰
- SHOW DATABASES: 현재 있는 데이터베이스 목록을 확인할 때 사용한다.
- CREATE DATABASE: 새로운 데이터베이스를 만들 때 사용한다.
- CREATE TABLE: 테이블을 만들 때 사용한다. 각 컬럼에 데이터 타입과 제약 조건을 지정한다.
- DATE와 DATETIME 차이:
- DATE는 날짜만 저장하고,
- DATETIME은 날짜와 시간을 모두 저장한다.
- INSERT INTO: 데이터를 테이블에 추가할 때 사용한다.
- ALTER TABLE: 테이블 구조를 변경할 때 사용한다. 예를 들어, 컬럼을 추가하거나 수정할 수 있다.
- UPDATE: 테이블에 있는 데이터를 수정할 때 사용한다.
- FOREIGN KEY: 외래 키를 설정해서 다른 테이블의 데이터를 참조하게 만든다.
- JOIN: 여러 테이블을 결합하여 데이터를 조회한다. LEFT JOIN은 왼쪽 테이블의 모든 데이터를 포함하고, 오른쪽 테이블에서 일치하는 데이터를 가져온다.
코드 내용
-- board 데이터베이스를 사용합니다.
USE board;
-- 1968년 10월 12일에 태어난 'gongu'라는 이름의 사용자를 users 테이블에 추가합니다.
-- INSERT INTO users (name, job, birth)
-- VALUES ('gongu', 'actor', '1968-10-12');
-- posts 테이블에 새로운 게시물을 추가합니다.
-- INSERT INTO posts (title, content)
-- VALUES ('title1', 'content1');
-- posts 테이블에 updated_at 컬럼을 추가합니다.
-- 이 컬럼은 DATETIME 형식이며, 기본값으로 현재 시간을 저장합니다.
-- 게시물이 업데이트될 때마다 자동으로 현재 시간으로 갱신됩니다.
-- ALTER TABLE posts
-- ADD COLUMN updated_at DATETIME
-- DEFAULT NOW()
-- ON UPDATE NOW();
-- posts 테이블에 두 번째 게시물을 추가합니다.
-- INSERT INTO posts (title, content)
-- VALUES ('title2', 'content2');
-- 게시물의 내용을 업데이트합니다. id가 3인 게시물의 content를 'Updated content.'로 수정합니다.
-- UPDATE posts
-- SET content = 'Updated content.'
-- WHERE id = 3;
-- posts 테이블에 user_id 컬럼을 추가합니다. 이는 users 테이블의 id와 연결될 것입니다.
-- ALTER TABLE posts
-- ADD COLUMN user_id INT;
-- posts 테이블의 user_id 컬럼을 users 테이블의 id와 연결하는 외래 키를 추가합니다.
-- ALTER TABLE posts
-- ADD FOREIGN KEY (user_id)
-- REFERENCES users(id);
-- 이제 id가 3인 게시물의 user_id를 1로 설정합니다. 이는 'gongu' 사용자의 게시물로 연결되도록 합니다.
-- UPDATE posts SET user_id = 1 WHERE id = 3;
-- posts 테이블과 users 테이블을 LEFT JOIN하여, 게시물과 해당 게시물의 작성자 정보를 함께 조회합니다.
-- LEFT JOIN을 사용하기 때문에, users 테이블에 일치하는 데이터가 없더라도 posts 테이블의 데이터는 모두 표시됩니다.
SELECT * FROM posts
LEFT JOIN users ON posts.user_id = users.id;

