/date 24.08.26.
어제 과제하면서 이런 글을 올렸습니다.
어제 작성하였던 ERD에서 살짝 수정을 거쳤고, 이를 바탕으로 데이터베이스를 생성한 다음 해당 테이블에서 사용할 수 있는 입력, 수정, 조회 SQL문을 작성하는 것이 과제입니다.
mariadb 데이터베이스 생성하기
mariadb를 실행해서 showtime이라는 이름의 데이터베이스를 만들어 주었습니다. 그럼 이제 테이블을 하나씩 만들어 주겠습니다.
먼저 User 테이블을 만들어 주었습니다.
show_img 테이블을 만들어 주었습니다. 해당 테이블의 PK인 img_id가 show_info에 FK로 들어가야 해서 순서를 앞당겨 먼저 만들어 주었습니다.
다음으론 show_info 테이블을 만들어 주었습니다. img_id를 외래키로 참조하는 것도 잊지 않았습니다.
다시 show_img 테이블로 돌아와서, show_info를 외래키로 참조하는 컬럼을 하나 추가해 주었습니다. 잘 추가되었는지 궁금해서 SHOW COLUMNS FROM show_img; 명령어로 확인해 보았습니다. 잘 들어왔군요! 참고로 DESCRIBE (테이블명)으로도 확인 가능합니다. 그럼 이제 마지막으로 남은 order 테이블을 생성해 주겠습니다.
어라... 왜 안 될까요? 혹시나 오타가 있었을까 싶어서 한 번 더 시도해 보았지만 동일한 에러 문구를 띄우며 테이블이 생성되지 않았습니다. 어떻게 된 일인지 검색해 본 결과, 제가 테이블 이름으로 사용하였던 order가 SQL 내에서 명령어로 사용되기 때문에 테이블 이름으로 사용하려면 'order'와 같이 따옴표 안에 묶어서 넣어 줘야 한다고 합니다. 저번에도 한 번 이런 문제로 검색을 했던 것 같은데, 또 동일한 부분에 걸려 넘어졌네요. 따옴표를 붙여도 헷갈릴 수 있으니 order_info로 테이블 이름을 바꿔서 생성하겠습니다.
그랬더니 이번엔 무사히 생성되었습니다. SHOW TABLES; 명령어로 확인해본 결과 이제까지 생성한 테이블이 잘 있군요!
SQL문 작성하기
테이블에서 사용할 수 있는 입력, 수정, 조회 SQL 예문을 작성해 보도록 하겠습니다.
상황 | SQL문 |
사용자 kim dev가 회원가입, 사용자 정보를 user 테이블에 삽입 | INSERT INTO user VALUES (1, kim dev, kimdev@dev.com, devcourse11); |
사용자 kim dev가 비밀번호를 변경 | UPDATE user SET user_pw = 'pwdevkim99' WHERE username = 'kim dev'; |
사용자 kim dev가 예매한 공연의 총 금액 조회 | SELECT total_price FROM order_info WHERE user_id ='1'; |
종료된 공연인 LIZZIE의 이미지 삭제 | DELETE FROM show_img WHERE show_id = 'lizzie2023'; |
📌 auto increment로 지정해둔 컬럼 값은 (자동으로 값을 할당하므로) 직접 데이터를 넣지 않아도 됩니다. 저는 SQL문을 작성하는 연습을 하며 활용해 보기 위해 임의로 지정해서 직접 넣었습니다.
아래는 사족입니다.
- 내가 작성한 ERD가 최적의 형태라고 생각되지 않는다. 나는 ERD라는 것을 과제 파일을 통해 처음 접했고, 혼자 공부하며 쌓은 개념 중에 오개념도 있을 수 있다고 생각한다. 무엇보다 아쉬운 점은 어떤 ERD가 잘 짜인 ERD이고 그걸 데이터베이스로 구현한다고 생각했을 때 최고의 효율을 낼 수 있도록 하려면 어떻게 해야 하는지 알지 못해 그런 부분을 적용해 볼 수 없었다는 것이다. 앞으로 추가적인 공부를 통해 해당 부분 지식을 보충할 생각이다.
- 1에 덧붙여) 데이터베이스 관리에 좀 더 정을 붙일 수 있으면 좋겠지만 아직까진 잘 모르겠다. 뒤에서 사부작거리는 이런 일들이 나에게 흥미를 불러일으키질 못한다.
- 피드백 시간에 잘 짜여진 ERD에 대해 알려주셨으면 좋겠다.
'학습 기록 > 데브코스 웹 풀스택 4기' 카테고리의 다른 글
백엔드 기초: node.js, npm (2) | 2024.08.29 |
---|---|
백엔드 기초: API, REST API, URL (0) | 2024.08.27 |
ERD에 대한 이해와 데이터베이스 모델링 (0) | 2024.08.25 |
깃허브 페이지(github pages)로 포트폴리오 웹페이지 만들기 (0) | 2024.08.24 |
웹 서비스의 이해 (4) - 데이터베이스 기초(도커, mariaDB설치)와 쇼핑몰 페이지 완성 (0) | 2024.08.23 |