본문 바로가기

DB/MySQL

[MySQL] 데이터베이스 기초 - 2

본 글은 본인이 생활코딩 강의를 듣고 정리한 내용입니다.

 

https://www.youtube.com/user/egoing2

 

생활코딩

일반인에게 프로그래밍을 알려주는 온라인/오프라인 활동 입니다.

www.youtube.com

 

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