Written by
xi-jjun
on
on
Database(생활코딩) - 1
공부를 시작하며
https://covenant.tistory.com/108?category=773722
위 사이트를 보고 어떤 공부를 해야할지 정한 다음 데이터베이스 공부를 시작했다.
MySQL install
https://linuxhint.com/install_mysql_ubuntu_2004/
여기를 보고 설치를 진행하였다. 나의 Ubuntu20.04 system이 MySQL database의 host가 되기 위해서 MySQL Server를 설치해야한다.
$ sudo apt update
$ sudo apt install mysql-server
$ sudo systemctl status mysql
$ sudo mysql_secure_installation
MySQL 시작
$ sudo mysql -u root -p
를 입력하면
mysql>
가 나타날 것이다.
기본사용법
먼저 database를 만들고 어떤 database를 사용할 것인지 선택해야 한다.
CREATE DATABASE "DatabaseName";
생활코딩 강의를 따라했기 때문에 mysql>CREATE DATABASE opentutorials;
로 이름을 정해주었다.
만약 현재 내 계정이 접근 가능한 database를 보고싶다면,
SHOW DATABASES;
를 해주면 된다.
이제 우리가 만든 database에서 작업하기 위해선, ‘어떤’ database를 사용할 것인지 정해야한다.
USE "DatabaseName";
이제 본격적으로 table을 생성해보자.
CREATE TABLE "TableName"(
column-1 datatype NULL AUTO_INCREMENT,
column-2 datatype NOT NULL,
...
);
으로 table을 생성하면 된다. 생활코딩에서 보여준 예제를 그대로 따라해보면, (밑의 그림에 나온 표를 구성하기 위함이다.)
CREATE TABLE topic(
id INT(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
created DATETIME NOT NULL,
author VARCHAR(30) NULL,
profile VARCHAR(100) NULL,
PRIMARY KEY(id)
);
AUTO_INCREMENT
: data가 입력될 때 자동으로 값이 1개씩 증가되는 column속성이다. 중복을 발생시키지 않기 위해 쓴다.- MySQL datatype
- String Datatypes
- CHAR(N) : 고정 길이를 갖는 문자열을 저장. 지정된 길이(N)보다 짧은 데이터 입력 시 나머지 길이는 공백으로 채워짐. 0~255byte.
- VACHAR(N) : 가변길이를 갖는 문자열을 저장. 지정된 길이(N)보다 짧은 데이터 입력 시 실제로도 그만큼의 기억장소를 차지. 0~65,535byte.
- TEXT(N) : 문자열 datatype. BLOB와 같은 길이값을 저장 가능(차이점: 저장될 때 Nonbinary string으로 저장). 0~65,5353byte.
- 숫자형
- INT(N) : 정수형 데이터타입. 4byte. unsigned 사용가능. 0~4,294,967,295 or - 2,147,483,648~2,147,483,647 수 표현 가능.
- TINYINT(N) : 정수형 데이터타입. 1byte. 0~255 수 표현 가능.
- BIGINT(N) : 정수형 데이터타입(LONG). 8byte. 2^64-1 표현 가능.
- 날짜형
- DATE : 3byte. 날짜(년도, 월, 일) 형태의 기간 표현 데이터. YYYY-MM-DD 형식.
- 길이 : 1000-01-01 ~ 9999-12-31
- DATATIME : 8byte. 날짜와 시간 형태의 기간 표현 테이터. YYYY-MM-DD hh:mm:ss 형식.
- 길이 : 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
- DATE : 3byte. 날짜(년도, 월, 일) 형태의 기간 표현 데이터. YYYY-MM-DD 형식.
- String Datatypes
- Primary key : 각각의 값들이 중복되면 안될 때 사용.
현재 나의 ‘Database’에 어떤 Table이 있는지 보기 위해선,
SHOW TABLES;
를 입력해주면 된다. 아마 topic
이라는 table이 보일 것이다. topic의 구조를 보고 싶다면,
DESC "TableName";
에서 “TableName”을 topic으로 해주면 된다.