본 게시글은 유튜브 생활코딩 온라인강의를 시청한 후 학습한 정보를 기록하는 목적의 게시글입니다.
생각의 흐름에 따라 작성된 게시글입니다. 가독성이 떨어질 수 있습니다.
생활코딩 WEP3 PHP & MySQL을 수강하기 위한 선수과목인
WEB2 - PHP와 DATABASE2 - MySQL에 대한 수강 기록입니다.
수강 일정은 야학의 수강계획표에 따릅니다.
#1.
Structured Query Language
데이터베이스가 이해할 수 있는 약속으로 요청하는 구조화된 언어가 SQL이다.
SQL은 쉽고, 중요하다.
관계형 데이터베이스는 우리가 흔히 사용하는 표(테이블)와 그 구조가 매우 흡사하다.
테이블에서의 행이 SQL에서 row, 데이터 하나하나를 일컫는다.
테이블에서의 열이 SQL에서 column, 데이터의 속성을 일컫는다.
#2.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
해당 코드로 MySQL에서 데이터베이스를 생성할 수 있다.
여기서 TABLE 이전에 TEMPORARY를 추가하여 TEMPORARY TABLE을 생성할 수 있는 것을 알 수 있는데,
TEMPORARY TABLE은 휘발성이 강한 테이블이란 것 정도만 알아두고,
` CREATE TABLE "테이블 이름" ` 으로 테이블을 생성할 수 있단 것을 기억하자.
이후 create_definition, table_options, partition_options등을 설정할 수 있는데 먼저 테이블의 틀을 만드는 부분인
create_definition에 대해 살펴보자. (다른 옵션에 대한 설명이 궁금하다면 링크 클릭)
#2-2.
테이블의 구성을 정하기 위해서 MySQL에서 지원되는 데이터 타입에 대하여 알 필요가 있다.
그런데, 공식문서는 내용이 산재되어 있고 한 눈에 보기 너무 어려워서
혹시 데이터타입에 익숙치 않다면 생활코딩 강의를 천천히 참조해보도록 하자.
참고로 이번 실습에서 완성된 코드는 아래와 같다.
( USE 명령어로 DataBase를 지정하는 것 역시 잊지 말자 )
mysql> CREATE TABLE topic(
-> id INT(11) NULL AUTO_INCREMENT,
-> title VARCHAR(100) NOT NULL,
-> description TEXT NOT NULL,
-> created DATETIME NOT NULL,
-> author VARCHAR(30) NULL,
-> profile VARCHAR(100) NULL,
-> PRIMARY KEY(id));
그렇다면 아래와 같은 에러 메세지를 볼 수 있다.
ERROR 1171 (42000): All parts of a PRIMARY KEY must be NOT NULL;
문장을 해석해보면 그대로 알 수 있지만, 이제 더이상 PRIMARY KEY에 NULL값을 부여할 수 없다.
공식문서는 이 곳, 해결방법은 스텍 오버플로우에 잘 나와있다.
mysql> CREATE TABLE topic(
-> id INT(11) AUTO_INCREMENT,
-> title VARCHAR(100) NOT NULL,
-> description TEXT NOT NULL,
-> created DATETIME NOT NULL,
-> author VARCHAR(30) NULL,
-> profile VARCHAR(100) NULL,
-> PRIMARY KEY(id));
간단하다. 그냥 id에 부여했던 NULL만 없애주면 된다.
생활코딩의 영상 다음 부분에서는 1820 Error message에 대한 설명이 나오는데,
사실 영상에서 설명이 그러하듯, 에러메세지는 마주하고 나서 너무 마이너한 에러가 아닌 이상
대부분 구글링으로 손쉽게 해결할 수 있다.
즉 우리는 ID 컬럼을 PRIMARY KEY로 하는,
100자까지 받을 수 있는 titie 컬럼과, profie 컬럼, 30자 까지 받을 수 있는 author 컬럼,
'YYYY-MM-DD HH:MM:SS' 형식으로 표현되는 DATTIME으로 구성된 Table을 생성하였다.
최근댓글