MySQL Workbench에서 작업을 시작해보자.
엑셀을 써봤던 사람이라면,
테이블의 개념에 익숙할 것이다.
DB는 데이터를 저장할 논리적인 장소와 규격이 필요하다.
좌측하단의 SCHEMAS 메뉴를 선택하자.
sys라는 DB가 자체적으로 생성된 스키마가 있으나,
디렉토리의 빈부분을 우클릭해서 Create Schema를 수행해주자.
위의 원통+아이콘을 통해서도 같은 기능을 수행할 수 있다.
스키마의 이름을 지정해주고
밑의 Charset/Collation 을 설정해줄 수 있다.
저장할 문자들의 포맷을 설정해줄 수있는 칸인디,
우리가 처음 배우는 포맷인 ASCII코드를 넘어서서
한글이나 특수 이모티콘, 한자나 다른 나라 언어를 표현하기 위한 UTF-8양식은
미리 알아놓으면 좋다.
자세한건 SQL document를 보고 따로 배우고
우리는 Default로 설정하고 넘어가자.
APPLY 를 눌러주면
실제로 새로운 DB를 생성하는 과정에서 스키마를 정의하기 위해
실행될 SQL script를 작성해줘야 한다.
SQL syntax는 정보처리기사에서 많이 하고 왔다.
DDL이라고 해서.. CREATE나 DROP 등등.. 아마 기억날것이다.
뭐 기억안나고 처음이라도 그냥 보면 뭔소리하는지 감이 잡히는 수준이다.
짚고 넘어갈 것은..
이러한 SQL문법은 명령어에 해당하는 단어들은 대문자로 작성해주는게 관례라는 점이다.
Apply, Execute, Finish해서 새로운 스키마를 만들어줄 수 있다.
sys와 함께 restaurant_finder라는 스키마가 생성된 것을 확인할 수 있다.
---
스키마란 DB의 구조를 정의하는 틀이라고 했다.
우리가 코드를 작성할때, 변수를 선언하거나 클래스를 선언하는 과정을 거치고
거기에 값을 넣고 계산을 해왔다.
특히 청사진(blue print)의 개념에서 클래스와 비슷한 느낌이 든다.
클래스를 정의해줬으니 클래스 내부에 들어갈 멤버와 메소드를 정의하듯이
스키마 내부에 들어갈 테이블을 정의해주도록 하자.
이제 restaurant_finder라는 스키마를 생성했으니
해당 스키마에서 Table을 선택하고 우클릭하여 Create Table을 수행해주자.
테이블의 이름은
restaurants로 설정해주자.
네이밍의 컨벤션은
(1)공백이 없고 공백을 써야한다면 '_' 를 쓰며
(2)소문자로 쓰며
(3)복수형(plural form)으로 쓰기
이다.
옆에 DB의 Engine을 선택하는 칸이 있는데
모르겠으면 걍 디폴트값 쓰면 된다. 우리는 InnoDB 그대로 쓰자.
엑셀과 같은 스프레드 시에서 엑셀파일을 만들고, 처음 테이블을 만들었을때 무엇을 했었나?
저장할 데이터의 속성(Attribute)들을 설정해주는 것이었다.
DB에서도 똑같다. 표를 만들기 위한 속성을 정의해주면 된다.
어떠한 객체에 대한 데이터가 들어온다면..
ID라는 속성에 정수값 데이터를 받고 Primary Key로 설정하여 고유성을 가지도록 하며
Name에는 varchar타입으로, 20자 내로 입력할 수 있게 하고
Location에는 varchar타입으로 100자 내로 입력하고, NULL값은 허용하지 않고...
처음 VSC익스텐션으로 할 때는 그냥 일일이 다 쳐야했는데
워크벤치쓰니까 편하네..
---
테이블을 만들고 나면, 위의 사진처럼
restaurants 테이블이 만들어지고
Columns에 id, name, type 속성이 생긴 것을 확인할 수 있다.
---
이제 테이블을 만들었으니, 테이블에 데이터를 삽입해보자.
(1) 좌측 상단에 SQL+ 아이콘을 클릭해주면 새로운 SQL script파일이 생성되고
(2) 원하는 SQL 스크립트를 작성하여
(3) 번개(Flash)마크를 눌러 스크립트를 실행해줄 수 있다.
기본적으로 restaurents 테이블이 셀렉트 되어있는 상태라
INSERT INTO restaurants (name, type) VALUES('name1','type1') 같이 입력해주면 되고
INSERT INTO restaurant_finder.restaurants (name, type) VALUES('name1','type1')로 입력해줄 수도 있다.
VALUES에 입력해주는 varchar들은 'name1처럼 작은 따옴표를 사용해도 되고
"name1"처럼 큰 따옴표를 사용해도 된다.
번개아이콘을 눌러 SQL Script를 실행했으나..
아까 테이블을 만들때, ID에 Auto Increment속성과 Default값=0을 안 넣어줘서
에러가 발생했다.
테이블에 가서 스패너 아이콘을 눌러서 테이블 속성을 변경해주자.
아래와 같이 ALTER 명령어를 이용해서 테이블의 속성을 변경하는 것을 확인할 수 있다.
돌아가서 ID에 디폴트값과 AI 속성을 넣어주고
다시 INSERT INTO ~ 문을 넣어주면
초록색 체크박스가 뜨며 제대로 작업이 수행되었음을 확인할 수 있다.
SELECT * FROM restaurants를 통해 테이블을 확인할 수 있다.
'지식이 늘었다 > 웹개발' 카테고리의 다른 글
DB (5) MySQL 튜토리얼 (3) - 뷰와 조인 (1) | 2024.12.06 |
---|---|
DB (4) MySQL 튜토리얼 (2) UPDATE, DELETE, 테이블 생성 및 데이터 삽입 (1) | 2024.12.05 |
DB (2) MySQL 설치 (0) | 2024.12.04 |
DB (1) 데이터베이스 개념, SQL과 NoSQL (0) | 2024.12.03 |
NodeJS (6) JS 개념 심화, ...연산자, 비동기함수와 프로미스, async/await (0) | 2024.12.02 |