안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.
엑셀과 데이터베이스 비교
데이터베이스의 테이블은 엑셀과 비슷한 구조로 되어 있습니다.
테이블을 만드는 방법
1) 마우스로 클릭을 해서 만드는 GUI 방식이 있다.
2) SQL로 만들기
테이블 설계
집을 짓기 전에 설계도를 그려야 한다.
첫번째 테이블은 회원이고
두번째 테이블은 구매이다.
실습
CREATE DATABASE naver_db; 명령어를 통해 naver_db 데이터베이스를 만듭니다.
그리고 SCHEMAS창에 우클릭을 하고 Refresh All 버튼을 클릭합니다.
naver_db가 생성되었는지 확인합니다.
SCHEMAS창에서 naver_db를 더블클릭하여 naver_db를 사용합니다.
왼쪽에는 데이터베이스 구성도 그리고 오른쪽에는 풀화면으로 테이블들을 만들 예정입니다.
SCHEMAS창에서 naver_db를 우클릭하고 Create Table 버튼을 클릭하여 위 화면과 같이 만듭니다.
PK는 중복을 절대 허용 않기.
Not Null은 반드시 입력하기.
마지막에 생성된 행은 우클릭 후 'Delete Selected'를 통해 삭제를 할 수 있다.
완료된 후 Apply 버튼을 클릭을 하면
그러면 GUI환경에서 테이블을 만들었지만, 실제 SQL로 만든 것과 동일한 효과가 되는 것이다.
익숙하다면 SQL문을 사용하셔도 되고,
익숙하지 않다면 GUI환경에서 테이블을 만들면 된다.
Apply 버튼을 클릭을 하고 다음 화면에서 Finsih 버튼을 클릭을 하면
SCHEMAS창에서 naver_db > Tables > member 테이블이 만들어진 것을 확인할 수 있다.
동일한 방법으로 buy 테이블을 만든다.
이후 SQL이 만들어지는 창에서 자동으로 만들어준 쿼리문을 수정해야 한다.
관계를 맺어주어야 하기 때문이다. FOREIGN KEY(mem_id) REFERENCES member(mem_id) 를 추가한다.
member 테이블의 pk를 buy 테이블이 참조하므로, member 테이블과 buy 테이블은 서로 1:N의 관계를 형성한다.
이렇게 관계 형성을 마친다.
이후 SCHEMAS 창을 통해서
다음과 같이 buy 테이블 또한 만들어진 것을 확인한다.
다음으로 데이터 입력을 해주어야 한다.
SCHEMAS 창에서 member 테이블을 우클릭 하고 'Select Rows - Limit 1000'을 클릭하여 데이터를 조회한다.
입력된 정보가 있는지 확인하기 위함이다.
result 창에 행들을 더블 클릭하여 직접 데이터를 입력해본다.
완료되면 result 창에 'Apply' 버튼을 클릭하여 반영한다.
SQL 문을 통해서 직접 확인해 본다.
자료형이 숫자인 컬럼도 데이터를 문자의 형태로 입력을 해주는 것을 볼 수 있다.
'Apply' 버튼을 클릭한다.
표를 참고하여
다음으로 buy 테이블에 데이터를 입력해보겠다.
순번은 AUTO INCREMENT 이므로 입력을 하지 않고 데이터를 입력하겠다.
다음과 같이 result 창에 행을 더블클릭하여 직접 데이터를 3건 입력해주고
'Apply' 버튼을 클릭해보겠다.
하지만 오류가 발생하는 것을 볼 수 있다.
1:N 관계이기 때문에 구매 테이블에 없는 회원을 데이터로 입력하려고 하였기 때문이다.
일대다의 관계가 이와 같은 의미이다.
회원에 데이터가 있어야만 구매에 데이터를 입력할 수 있다.
회원이 있어야 구매도 가능하기 때문이다.
'Cancel' 버튼을 클릭을 하고
result 창에서 삭제할 행을 우클릭 하고 'Delete Row(s)'를 클릭하면 된다.
다음과 같이 데이터 입력을 성공한 것을 확인할 수 있다.
앞에서 3건의 실패가 있었으므로
num값이 4부터 시작한 것을 알 수가 있다.
이렇게 직접 GUI로 테이블을 만들고, 데이터를 입력해보았다.
직접 SQL문으로 테이블을 만들고, 데이터를 입력하길 권장한다.
SQL로 테이블 만들기
실제로 CREATE문은 굉장히 복잡하다.
실습을 통해서 알아보겠다.
DROP DATABASE IF EXISTS naver_db; 명령어를 통해서 만일 naver_db가 존재한다면 데이터베이스를 삭제한다.
그리고 CREATE DATABASE naver_db; 명령어를 통해서 다시 naver_db 데이터베이스를 삭제한다.
다시 naver_db를 사용하기 위해 USE naver_db; 명령어를 사용한다.
SQL로 작성을 한 결과
GUI 환경에서 실행한 것과 동일한 결과가 발생하는 것을 볼 수 있다.
감사합니다.
https://www.youtube.com/watch?v=DMNpkj_bZIs&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=13
'SQLD' 카테고리의 다른 글
[혼자 공부하는 SQL] 가상의 테이블: 뷰(생성, 수정, 삭제) (0) | 2024.10.26 |
---|---|
[혼자 공부하는 SQL] SQL 테이블 제약조건 (기본키, 외래키, 고유키) (0) | 2024.10.26 |
[혼자 공부하는 SQL] SQL 프로그래밍 (IF문, CASE문, WHILE문, 동적 SQL) (0) | 2024.10.25 |
[혼자 공부하는 SQL] 두 테이블을 묶는 JOIN(INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN) (0) | 2024.10.25 |
[혼자 공부하는 SQL] MySQL의 데이터 형식 (정수형, 문자형, 실수형, 날짜형)과 형 변환 (0) | 2024.10.25 |