티스토리 뷰
또 한동안 아르바이트 시기를 보내며... 프로젝트 PPT를 중점으로 정리도 하고 작업을 하는 중이다!
이제 깃허브에도 코드 파일 업로드 할 준비를 해야겠다. 또 계정이 잘못 올라가서 VSCode 내 코드 파일 설정이 잘못될까봐 조금 걱정이다. 그때도 원인은 잘 모르겠다.
이번에는 SQL 관련해서 정리해본다. 프로젝트 코딩 전에 열심히 고민해서 짰지만, 역시 중간에 바꿔주어야 하는 설정이나 추가해야 하는 필드가 생겨버렸다.
나는 저번 글
2024.12.26 - [리액트로 웹 개발 A to Z] - 카카오 로그인 API 구현하기 : Login failed 정의되지 않은 profile을 읽을 수 없습니다 + scope
에서 카카오 프로필 이미지를 선택 동의하게 짰는데, MyPage에서 카카오 프로필 이미지를 넣을 생각이 없었다.
그런데 마이페이지에 대해서 프로필 이미지를 가져와보는 경험이 도움이 될 것 같아보이고 없는 게 막상 허전해보여서의 이유로 프로필 이미지를 추가하기로 했다.
server.js에서 프로필 관련 response.data만 넣는다고 사용자의 프로필 이미지를 저장하거나 가져올 수 있는 게 아니니까, users 테이블에 users_img라는 컬럼을 넣기로 했다!
주제
- Users 테이블에 새로운 컬럼을 추가하기
- 컬럼을 추가로 넣는 일을 잘 해보지 않아서 찾아보고 add column과 modify column에 대해 정리해본다.
이유
마이페이지에 카카오 프로필 이미지를 띄우기 위해서
방법
Add 컬럼으로 새 컬럼을 만들고 > Change 컬럼으로 컬럼명을 바꾼 후 > Modify 컬럼으로 Default값을 설정한다.
리액트에서의 행보
사용자의 프로필 사진(Null 허용)이 있다면 추가해서 내보내고, 프로필 사진이 없다면 Users의 users_img 컬럼에 추가는 안하되 디폴트 사진을 지정해놓기로.
실행

이 프로필 사진 컬럼을 만들 때 깊은 생각을 하지 않아 3번의 단계를 걸쳐서 만들었다..
그래도 덕분에 알게된 점이 있다!
ADD, CHANGE, MODIFY 컬럼을 모두 사용해보았다는 것.
세 예약어는 어떤 차이가 있나.
| alter OOO 문은 스키마(테이블 구조)의 속성을 변경할 때 사용한다고 한다 (SQLD) | |||
| Column | ADD | MODIFY | CHANGE |
| 목적 | 새로운 컬럼을 추가하기 | 기존의 컬럼의 속성을 수정하기 | 기존의 컬럼의 이름 + 속성 수정하기 |
| 용도 | 기존에 없던 컬럼을 테이블에 추가할 때 사용 | - 데이터 타입 - Default 값 - No null과 같은 제약 조건 추가, 변경 |
- 컬럼 이름 수정 - 컬럼 데이터 타입 - Default 값 - 제약 조건 추가, 변경 |
| 기능 차이 | |||
| 컬럼 이름 변경 | ❌ | ⭕ | |
| 데이터 타입 변경 | ⭕ | ⭕ | |
| Default값 설정, 변경 | ⭕ | ⭕ | |
| 제약 조건 변경 | ⭕ | ⭕ | |
| 차이 | 컬럼이 없을 때 사용 | 컬럼이 있을 때 사용 컬럼 이름 유지할 때 사용 |
컬럼이 있을 때 사용 컬럼 이름 수정할 때 사용 |
| 주의점 | 항상 컬럼 이름을 두 번 명시해야 함 (1번은 기존 컬럼명, 2번은 새 컬럼명이나 기존 컬럼명) |
||
| 사용 예시는 아래 사진을 봐주세요~ | |||
정리

1. 새 컬럼을 만듦
2. 컬럼명을 바꿈
3. 바꾼 컬럼명에 Default값을 추가(change는 컬럼명을 두 번 명명해야 하는 단점이 있음)
이렇게 새 컬럼을 만들었다!
25/04/24
SQLD 과목을 잠깐 공부해봤었는데
속성 = 컬럼
인스턴스 = 행
속성값 = 실제 데이터값, 속성값은 // 인스턴스 한 개 당 > 속성 하나 > 속성값 하나만 가질 수 있다~ 라는 것 같다.
alter modify의 경우와 update set 문의 차이는 테이블 구조(스키마)를 변경하느냐, 테이블 내 데이터만 변경하느냐의 차이라고 한다..
'리액트로 웹 개발 A to Z' 카테고리의 다른 글
| 카카오 로그아웃 API 구현하기 : (해결!) 왜 로그아웃이 안되냐고오오 + fetch와 await (0) | 2025.02.18 |
|---|---|
| 깃허브에 푸시하기 : 깃허브에 최초로 올리기 (add, commit, push) (0) | 2025.02.11 |
| 리액트 컴포넌트에서 페이지를 이동하는 다양한 방법 (with. mypage → login 페이지로 이동하기, 예외처리) (0) | 2025.01.15 |
| 정적 서버와 동적 서버 (with. 비동기 작업) (0) | 2025.01.14 |
| 카카오 로그인 API 구현하기 : 카카오 로그인 로직을 정리해보기 (0) | 2025.01.09 |