티스토리 뷰
mysql
외부키 걸기
테이블을 생성할 때 다른 테이블에서 참조하는 외부키를 설정해줄 수 있다. 보통 부모 테이블을 참조하는 자식 테이블을 만들 때 사용한다. 외부키를 걸어줄 컬럼과 참조할 테이블과 컬럼을 순서대로 적어준다. 외부키가 여러 개라면 똑같이 하나 더 적어주면 된다.
CREATE TABLE posts
(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
content VARCHAR(2000) NULL,
user_id INT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users (id) # 여기
);
테이블 변경
컬럼 추가
# ALTER TABLE 테이블이름 ADD 컬럼이름 자료형 제약조건
ALTER TABLE users ADD age INT NOT NULL;
컬럼 삭제
# ALTER TABLE 테이블이름 DROP 컬럼이름
ALTER TABLE users DROP profile_image;
컬럼 수정
# ALTER TABLE 테이블이름 MODIFY 컬럼이름 자료형 제약조건
ALTER TABLE posts MODIFY content TEXT NULL;
테이블 내의 특정행의 데이터만 삭제
# DELETE FROM 테이블이름 WHERE 컬럼이름
DELETE FROM posts WHERE condition;
테이블 내의 데이터 모두 삭제
# TRUNCATE TABLE 테이블이름
TRUNCATE TABLE posts;
데이터 변경
데이터 추가
INSERT INTO 테이블이름 (컬럼이름1, 컬럼이름2) VALUES (값1, 값2)
데이터를 이런 식으로 추가할 수 있다. 부모 테이블을 참조하고 있는 자식 테이블은 잊지 말고 참조 테이블에 존재하는 값을 넣어주어야 한다. 그렇지 않으면 에러가 난다.
# 현재 users 테이블에는 1번~40번까지 유저만 등록되어 있는 상황
# user_id = 100을 참조하도록 INSERT문을 실행
INSERT INTO posts (title, content, user_id) VALUES ("저스트코드 1일차", "HTML과 CSS 익숙해지기..", 100);
Query 1 ERROR: Cannot add or update a child row: a foreign key constraint fails..
데이터 수정
UPDATE를 사용해서 데이터를 수정할 수 있다.
# UPDATE 테이블이름 SET 컬럼이름='값' [WHERE 조건]
UPDATE posts SET content='위코드 3개월 과정을 시작하며...' WHERE id=1;
데이터 삭제
DELETE를 사용해서 데이터를 삭제할 수 있다.
# DELETE FROM 테이블이름 [WHERE 조건]
DELETE FROM posts WHERE user_id = 1;
데이터 조회
WHERE 절과 조건문을 사용해서 특정 범위의 데이터를 가져올 수도 있다.
# user_id가 1이면서 created_at이 '2022-04-15 00:00:00'이전의 데이터
SELECT * FROM posts WHERE user_id = 1 AND created_at < '2022-04-15 00:00:00';
NOT을 사용할 수 도 있다.
# user_id가 1이면서 created_at이 '2022-04-15 00:00:00'이전이 아닌 데이터
SELECT SELECT * FROM posts WHERE NOT(user_id = 1 AND created_at < '2022-04-15 00:00:00');
728x90
'공부 노트' 카테고리의 다른 글
[HTML] hidden 속성 (0) | 2022.09.16 |
---|---|
[Vite] Vite (0) | 2022.09.16 |
[JS] switch문 (0) | 2022.08.19 |
HTTP 메소드와 리소스 (0) | 2022.08.10 |
웹서비스의 역사와 발전 (0) | 2022.08.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 저스트코드
- 코딩앙마
- React
- 자바스크립트
- javascript
- TS
- CSS
- 비주얼스튜디오코드
- vue
- 코드잇
- vscode
- 김버그
- 구름에듀
- Typescript
- js
- 회고
- map
- scss
- html
- 스파르타코딩클럽
- 드림코딩
- 깃
- 타입스크립트
- 제이쿼리
- Til
- 제로초
- 파이썬
- 리액트
- git
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함