본 글은 본인이 생활코딩 강의를 듣고 정리한 내용입니다.
https://www.youtube.com/user/egoing2
1. MySQL 실행
환경 변수까지 설정을 하면 cmd창에서 MySQL을 실행할 수 있다.
C:\>mysql -uroot -p
Enter Password:
mysql>
-uroot
는 root라는 user로 시작하겠다는 뜻이고, -p
는 패스워드를 입력하겠다는 뜻이다.
-p
뒤에 바로 비밀번호를 입력해도 실행이 가능하지만 보안 상의 문제가 있으므로 저렇게 입력을 하면 비밀번호를 입력하라고 한다.
비밀번호까지 입력을 하면 mysql>
이라는 커맨드가 나타나게 된다.
2. 스키마의 생성과 제거
먼저 어떤 스키마들이 있는지 확인해보자.
# 스키마 확인
SHOW DATABASES;
# 스키마 확인 2
SHOW SCHEMAS;
여러 목록들이 뜨겠지만 만드는 방법을 알고 거기다가 실습을 해보도록 한다.
# 스키마 생성
CREATE DATABASE opentutorials;
# 스키마 생성 2
CREATE SCHEMA opentutorials;
이렇게 데이터베이스와 스키마는 비슷한 의미로 사용되는 듯 하다.
# 스키마 삭제
DROP DATABASE opentutorials;
# 스키마 삭제 2
DROP SCHEMA opentutorials;
생성한 뒤 삭제 했으니 다시 생성을 해주고 이제 이 데이터베이스를 사용해 보겠다.
USE opentutorials;
# Database changed
3. TABLE 생성
데이터베이스 안에 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));
한 줄로 다 입력할 수도 있지만, 가독성을 위해서 저렇게 나눈다.
코드 색이 영 좋지않게 들어가는 것 같은데 참 마음에 안든다.
coloumn의 이름, 자료형, 추가 속성 순으로 정의 하게 된다.
자료형 뒤의 숫자는 길이를 의미하는데, 내 버전 상 저렇게 입력하면 warning이 뜬다.
이제 INT
는 길이를 정하지 않는다는 말이 나오기에 이제 INT
뒤에는 길이를 입력하지 않을 것이다.
VARCHAR
는 해당 길이 이상의 입력에 대해서는 뒤를 잘라버리는 자료형이다.
NOT NULL
은 데이터에 대해서 이 항목에 NULL
을 허용하지 않겠다는 뜻이고, AUTO_INCREMENT
는 자동 오름차순이다.
PRIMARY KEY
는 반드시 지정해줘야 하는데, 이 테이블의 메인 키를 의미 한다.
TABLE의 여러 성능 측면과 중복처리를 위해서 꼭 필요한 부분이다.
만들어진 Table을 한 번 확인해보자.
# 테이블 확인
DESC topic;
/*
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| title | varchar(100) | NO | | NULL | |
| description | text | YES | | NULL | |
| created | datetime | NO | | NULL | |
| author | varchar(30) | YES | | NULL | |
| profile | varchar(100) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
*/
'DB > MySQL' 카테고리의 다른 글
[MySQL] 데이터베이스 기초 - 3 (0) | 2020.08.29 |
---|---|
[MySQL] 데이터베이스 기초 - 1 (0) | 2020.08.26 |