반응형

MySQL도 행과 열이 구분된 형태로 데이터를 저장할 수 있게 됩니다(excel의 행과 열과 같음)


# 데이터베이스를 만든 후에 그 안에 테이블을 만들 수 있습니다.

# 데이터베이스를 원하면 필요에 따라서 여러개 만들 수도 있습니다.

# 해서 의미가 비슷한 테이블들을 하나의 데이터베이스에 만들어서 관리하게 됩니다

# 데이터베이스를 MySQL에서는 스키마라고도 합니다.


# 컬럼네임 : 해당되는 컬럼에 어떤 값을 저장하는 지를 의미시키는 용도로 붙여놓는 이름입니다

컬럼네임 == 필드네임

컬럼 == 필드

로우 == 레코드




# 만들어져있는 정보 보기 ( show )

- database보기

mysql>show databases;


* 기본으로 만들어져있는 3개의 데이터베이스는 설정에 관련된 데이터베이스이므로 건들이지 말자!

* MySQL Workbench에서는 3개의 데이터베이스는 가려져 있습니다.



#schema 생성 

( mysql에서는 스키마 == 데이터베이스라고 볼수 있습니다. )


-Linux


mysql> CREATE SCHEMA `스키마 이름` ;

mysql> CREATE DATABASE `데이터베이스 이름`;



*작은따옴표가 아니고 esc밑에 있는 `키입니다



-Workbench




위에서 생성된 test1,test2 스키마들이 보이는걸 알 수 있습니다


여기서 오른쪽클릭을 하여서 create schema를 선택해줍니다




계속 apply를 눌러주면 생성이됩니다





리눅스에서도 workbench에서도 test3 스키마가 잘 생성된 것을 볼 수 있습니다.



*table 생성


 -Linux

-스키마 선택    >> 데이터베이스를 선택해야 table에 대한 정보를 볼 수 있다.

mysql> USE 스키마 이름;



-테이블 만들기

mysql> CREATE TABLE `test1`.`newtable` ( `id` CHAR NOT NULL, `age` INT NULL, PRIMARY KEY (`id`));




-Workbench



tables에 오른쪽클릭하여 create table을 선택합니다




colum name을 설정하고 apply합니다



*설명 


Column Name : 컬럼 이름

DataType : 컬럼 자료형


[자료형]
Char : 문자하나 ( 2BYTE )    >> 괄호안에 들어가는 수는 몇글자를 나타낸다 
INT : 정수형 ( 비트 ) >> 괄호안에 들어가는 수는 비트(용량)을 나타내며 기본값으로 11비트를 사용한다.

 기호

용어 

내용 

PK

 PRIMARY KEY

 기본키로 설정한다.(중복 가능 X)

NN

 NOT NULL

 빈 값을 허용하지 않는다.

UQ

 UNIQUE INDEX

 유일키로 설정한다

BIN 

 BINARY

 바이나리값으로 저장한다.

UN 

 UNSIGNED

 숫자 형식일 경우 0과 양수만 사용한다.

ZF 

 ZEROFILL

 입력한 값의 자리수에 여유가 있으면 

그 부분을 모두 0으로 채운다.

AI

 AUTO_INCREMENT

  새로운 레코드가 입력될 때 자동으로 1씩 증가

Default 

 

 컬럼에 입력값이 없을 경우, 

자동으로 입력되는 기본값을 지정한다.


*테이블은 각각의 컬럼마다 데이터 자료형 (타입)을 지정해야 한다.




linux에서도 workbench에서도 table 2개가 잘 생성 된걸 볼수 있습니다.



SCHEMAS에 있는 스키마를 더블클릭 하게 되면 폰트가 굵어지면서 [test1]스키마가 선택되었습니다

이때 information에 선택된 스키마가 표시된다. ( 테이블을 선택하면 테이블 속성도 표시된다. )




*workbench 기능



Create Table : 테이블 생성

 

Alter Table : 테이블 속성 변경

 

Drop Table : 테이블 삭제


예)


CREATE DATABASE TEST

CREATE TABLE `test1`.`newtable2` ( `id` CHAR NOT NULL, `age` INT NULL, PRIMARY KEY (`id`));


 

ALTER TABLE `test1`.`newtable2` CHANGE COLUMN `id` `id` CHAR(5) NOT NULL ;

 

DROP TABLE newtable1;


DROP DATABASE test 2;




*table 입력

 

workbench에서 char형에 한글입력이 안됩니다.

 

mysql을 처음 설치했을 때는 한글을 사용할 수 없습니다.


mysql에 기본 인코딩이라는 것이 라틴어로 되어 있습니다.

 

인코딩 : 문자를 표현하는 방식

 

UTF8 인코딩 : 전 세계에 있는 모든 문자를 전부 표현할 수 있는 방식입니다.

-> 전세계 주요 국가의 언어

 

alter table newtable convert to character set utf8;

-> newtable라는 테이블에 인코딩을 UTF8로 변경하겠습니다.


* 테이블에 기본인코딩을 변경하는 방법

-> test1마우스 우클릭 alter 스키마

-> utf8 - default collation

-> apply하면

-> alter schema test1 default character set utf8 가 뜹니다.

-> test1라는 데이터베이스에 기본인코딩을 utf8로 변경하는 쿼리입니다다.



 위에 쿼리를 통해 데이터베이스에 기본 인코딩을 변경했다고해서 이미 만들어져 있던 테이블의 인코딩이 변경되지는 않습니다.

 

이미 만들어져 있는 테이블에 인코딩은 alter table로 변경작업을 해야합니다


alter table test1.newtable convert to character set utf8;

-> test1 데이터베이스안에 newtable 테이블에 설정을 한글이되는 utf8로 설정합니다


alter schema test2 default character set utf8;
->test2 데이터베이스자체를 한글이 되는 utf8로 설정



* Mysql Server의 기본 인코딩을 변경하는 방법


-> mysql 서버에 접속


-> vi /etc/my.cnf ( my.cnf 는 mysql설정파일 )


-> [mysqld] 밑에 character-set-server = utf8


-> systemctl restart mysqld



위에 설정을 진행하면 설정 후 부터 만들어지는 데이터베이스의 기본 인코딩이 utf8로 설정 됩니다.


읽어주셔서 감사합니다.


'Web development > DB' 카테고리의 다른 글

[DB]2.MYSQL 시작 및 Workbench  (0) 2017.08.04
[DB]1.MySQL 설치  (0) 2017.08.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기