본문 바로가기

옛날

4-1.[Console] 테이블(Table) 생성

사용버전 :

Windows 7 Ultimate K 64bit

MySQL Community Server 5.7.17 <GPL> 

MySQL Workbench 6.3 CE


참고사이트 :

https://opentutorials.org/ ← 최고의 사이트!



일단 `table` 데이터베이스를 만들어보자.

(테이블뿐만 아니라 전반적인 MySQL에 대한 지식은 https://opentutorials.org/course/195 에서 참고하자.)



이제 `introduce` 라는 테이블을 만들어보겠다. 테이블을 만들기에 앞서 내가 어떤 데이터베이스에 명령을 내릴 것인지

명령어로 지정해줘야한다. 쉽게말해 내가 데이터를 삽입하거나 조회 할 것인데, 어떤 데이터베이스 안을 들여다 볼 것인지

선택해 주는 것이다.


먼저 show databases;를 입력한 후 내가 선택하고픈 데이터베이스를 선택해볼것이다.


(table 데이터베이스를 선택(?) 성공한 화면)


USE 데이터베이스명;

ex) use table;


당연히 이 명령어를 실행하지않으면 데이터베이스를 조회할 수도 없고 테이블을 생성할 수도 없다.

테이블을 생성하기에 또! 앞서 이제 테이블 안에 어떤 내용물(테이블)이 있는지 살짝 들여다보자.


(비어있는 모습)


지금까지 한 것을 요약하자면,


① CREATE DATABASE `table`; 으로 table이라는 데이터베이스를 만들었으며,

② USE table; 으로 table이라는 데이터베이스를 사용하도록 선택했다.

③ 지금은 SHOW TABLES; 라는 명령어로 table 데이터베이스의 테이블 목록을 보았다.


그 결과 Empty set이라는 결과가 나왔는데, table 데이터베이스에는 테이블이 없다는 뜻이다.


SHOW TABLES;

현재 use(선택)한 데이터베이스의 테이블 목록을 나열한다. (데이터베이스 이름이 `table`인데.. 헷갈리면안된다.. 잘못만든듯)


그럼 이제 진짜로 테이블을 만들어보자.


(introduce라는 테이블을 생성하고, age,name이라는 행을 만드는데 성공)


참고로 테이블을 생성할 땐 꼭 하나 이상의 열을 만들어줘야한다.

관계를 글로 설명하자면... 데이터베이스(Database) 안에 테이블(Table)들이 있고 테이블 안에는 그 내용물들이 있다.

내용물에는 행(Row),열(Column)이 있으며, 행과 열이 맞물리는곳에 필드(Field)가 있다. 결론적으로

age(나이)라는 열을 만들었고, 내가 19세라는 데이터를 입력하면 1행에 19세 라는 필드가 입력된다.. 라고할까나..


https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/module/98/320.png ← 관계를 나타낸 사진


결론적으로..


CREATE TABLE 테이블명 (

칼럼(Column)명 데이타형,

칼럼명2 데이타형

);


(한줄마다 콘솔상에서 엔터를 쳐주고 계속 이어서 치면 된다. 마지막에 세미콜론이 명령을 최종적으로 보낸다

한줄에 다 쓸수있으나 가독성을 위해서 연이어 줄을 이어서 타이핑한다)


`테이블명` 테이블을 만들고, `칼럼명`행을 `데이타형` 형으로 생성한다. 라고 해석하면 되겠다.

데이타형 표 : https://opentutorials.org/course/195/1537


ex) CREATE TABLE `introduce` (

`age` tinyint,

`name` char(4)

);


뒤에 붙은 NOT NULL과 PRIMARY KEY는 나중에 알게되지만.. 의미만 해석하자면

NOT NULL - 해당 열의 필드가 비워지면 안된다.

PRIMARY KEY - 기본키로 설정한다.


이제 다시 SHOW TABLES;를 입력해 테이블들의 목록을 보자..

(introduce 테이블이 만들어진 것을 확인할 수 있다.)