ddodoi 님의 블로그
5주차-파트04: CLI로 데이터베이스 관리, ALTER, JOIN 본문
CHAPTER 1. MYSQL workbench 설치(CLI로 데이터베이스 다루기)
https://dev.mysql.com/downloads/workbench/
CHAPTER 2. DB 테이블 생성 실습
DESC 데이터베이스이름.테이블 이름
->해당 테이블의 구조를 확인할 수 있다.
posts테이블을 만들 때 id 옆에
AUTO_INCREMENT를 넣어 테이블에 값 입력시 id값을 주지 않아도 자동으로 숫자가 증가한다.
✔️MYSQL(mariadb)날짜 / 시간 타입
1. DATE
-날짜만
-YYYY - MM - DD
2. DATETIME
-날짜 + 시간
-YYYY-MM-DD HH:MM:SS(24시간제)
3. TIME
-시간
-HH:MM:SS
4. TIMESTAMP:자동입력
-날짜 + 시간
-YYYY-MM-DD HH:MM:SS(24시간제)
시스템 시간대 정보에 맞게 일시를 저장한다.
cf. UTC : 한국시간 - 9
✔️NOT Null vs Default
Not Null
-직접 null 이라고 작성해서 넣는 것도 안 되어요!
Default : 값이 안 들어올 때 기본 값으로 세팅
-공란으로 insert -> Default 설정 해둔 기본 값이 insert
-직접 null이라 작성해서 넣음 -> null setting
✔️ALTER 명령어
컬럼의 이름을 바꾸거나 / 제약조건을 변경하거나 / 컬럼을 추가 또는 삭제하는 등의 다양한 테이블 변경 기능을 수행
컬럼 추가(ADD)
ALTER TABLE 테이블명 ADD COLUMN 컬럼명 컬럼자료형 NOT NULL;
컬럼 변경(Modify)
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 컬럼자료형 NULL;
컬럼 삭제(Drop)
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
테이블 이름 변경(RENAME)
ALTER TABLE 테이블명 RENAME 새테이블명;
user테이블의 id칼럼(primary키값)을 참조해오는 user_id칼럼을 posts테이블에 만들어보자.(외래키)
먼저 posts테이블에 user_id칼럼을 추가한뒤
ALTER TABLE posts
ADD COLUMN user_id INT;
연결시켜준다.
ALTER TABLE posts
ADD FOREIGN KEY(user_id)
REFERENCES users(id);
다음은 users 테이블이다.
users테이블의 primary키인 id값에 없는 데이터를 추가 시키면 다음과 같은 에러가 뜬다.
users테이블의 primary키인 id값에 있는 데이터를 추가 시키면 잘 반영된다.
CHAPTER 3. JOIN
데이터의 중복을 피하기 위해 테이블을 2개로 분리하면서 직관성이 떨어지게 되었다. 이를 해결하기 위해 SELECT할 경우에만 임시로 두 테이블을 붙여주도록 join을 이용해보자(원래의 테이블이 변경되거나 새로운 테이블이 만들어지는 것이 아니다).
다음 명령어를 이용하여 posts테이블을 기준으로 user_id와 id가 같은 값을 이어붙여보자.
SELECT * FROM 테이블1 LEFT
JOIN 테이블2 ON 조건;
다음처럼 원하는 칼럼값만 지정해서 뽑아낼수도 있다.
SELECT 뽑고싶은칼럼명 FROM 테이블1 LEFT
JOIN 테이블2 ON 조건;
cf. auto_increment_lock_mode
'웹풀스택 일일정리' 카테고리의 다른 글
6주차-파트01: DB 모듈화, DB모듈을 이용해 기존 코드 수정 및 리팩토링, 단축 평가 (0) | 2024.09.24 |
---|---|
5주차-파트05: Workbench(GUI)로 데이터베이스 다루기, Timezone (1) | 2024.09.15 |
5주차-파트03: DBMS, SQL, DB에서의 연관관계 (1) | 2024.09.12 |
5주차-파트02: 라우팅, vs code에서 변수명 한번에 바꾸기 (0) | 2024.09.10 |
5주차-파트01: Object.keys(), API설계 (0) | 2024.09.09 |