정보보안공부

DBMS_day10 본문

데이터베이스

DBMS_day10

Steady_sp 2017. 7. 24. 23:05

# workbench에서
-> use mysql;
-> select * from korea; ( korea table에 모든것을 보여주라는 뜻 )
-> error발생 mysql안에 korea가 있지 않기 때문이다.

-> use test;
-> select * from korea; ( korea table에 모든것을 보여주라는 뜻 )
-> 실행 가능test안에 korea가 있다.

 

# select 쿼리를 통해 지정한 테이블에 데이터를 출력해서 확인 할 수 있다.

 

# select 쿼리는 지정한 데이터베이스를 대상으로 쿼리를 전송하게 된다.
-> use mysq;
-> select * from test.korea ( test라는 데이터베이스안에 있는 korea라는 테이블의 데이터출력 )
-> 실행 가능

 

# test.korea
-> use를 사용 안해도 된다.
-> 데이터 베이스를 매번 선택한다는 것이 불편하기 때문에 use로 데이터베이스를 선택 한번 해 놓고 그 후에 전송하는 모든 select의 대상 데이터 베이스를 지정해 놓고 편하게 사용할 수 있다.

 

# select쿼리 등 데이터베이스를 지정하고 테이블을 지정해서 사용하는 쿼리를 쓸 때 여러 데이터 베이스에 있는 여러 테이블을 대상으로 하나의 쿼리를 전송할 때가 있다.

 

# 그 때는 어쩔 수 없이 데이터베이스를 직접 쿼리에서 지정해야 한다.( use사용 안하고 )

 

# korea 마우스 우클릭 select rows = select * from test.korea

 

# korea테이블안에 값을 작성
-> aaa 20
-> bbb 25
-> 에러
-> korea 마우스 우클릭 Alter table ( 설정들을 변경하는 창 )

 

# 테이블을 만들 때 여러가지 정보를 지정해서 만들게 된다.
-> 테이블이름 , 컬럼네임 , 컬럼 자료형 , PK , NN 등등

 

# workbench에서 테이블을 만든 후에 만들 때 지정했던 설정들을 변경하기 위해서는 Alter Table 메뉴에서 변경 할 수 있다.
-> 수정 또는 설정 된 사항들을 확인하기 위해서도 사용

 

# 자료형
- char : 문자
- int : 숫자

 

# 데이터베이스를 만들 때 해당 컬럼에 자료형을 char로 지정하면 그 컬럼에 문자 몇 글자까지 저장 가능한지 사이즈를 지정하게 된다.
-> char로 사이즈 5로 설정하면 그 컬럼에는 문자 5글자만 저장 가능하다. : CHAR(5)

 

# int 자료형에 지정하는 수는 해당 컬럼에 용량을 지정하는 것이다. INT(5) : 이 저장 공간에 5bit 만큼을 저장하겠다.
-> int 기본값 11 : int(11)

 

# char에 글자 제한, 사이즈를 100으로 설정하고 그 컬럼에 10글자만 저장하면 90만큼 컴퓨터 용량이 낭비된다.
-> 한글자에 2바이트

 

# 불필요하게 크게잡을 경우 용량이 낭비된다.

 

# char 사이즈 100으로 설정 된 컬럼에 데이터를 1억개를 저장한다고 했을 때 용량을 1억 * 2 * 100이 컴퓨터 용량에서 사용하게 된다.
-> 200억 Byte가 용량에서 사용되어진다.

 

# 회원가입을 할 때 한국 사이트에 경우 이름이 5글자가 넘는 경우는 없을 경우 이름을 저장하는 컬럼에 괜히 10글자를 설정하게 된다면 저장할 때 마다 5글자 ( 10Byte )씩 낭비가된다.

 

# 게시판에 게시글의 내용 몇 글자를 사용자가 저장하게 될지 전혀 예상안된다.
-> 자료형이 따로있다. ( 저장하려는 글자수에 맞게끔 사이즈를 자동으로 잡아주는 자료형이 존재, 느려서 좋지는 않다 )

 

# Ctrl + w : 열려있는 창 닫는 단축키

 

# workbench에서 GUI로 데이터 입력할때
-> korea table에서 id와 age입력

 

# workbench에서 char형에 한글입력이 안된다.

 

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

 

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

 

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

 

# UTF8 인코딩 : 전 세계에 있는 모든 문자를 전부 표현할 수 있는 방식이다.
-> 전세계 주요 국가의 언어

 

# alter table korea convert to character set utf8;
-> korea라는 테이블에 인코딩을 UTF8로 변경하겠다.
-> alter table test.korea convert to character set utf8;

 

# 데이터베이스의 기본 인코딩을 설정하면 그 데이터베이스에서 만들어지는 모든 테이블에 인코딩의 기본 값을 라틴이 아닌 다른 것으로 지정할 수 있다.

 

# 테이블에 기본인코딩을 변경하는 방법
-> test마우스 우클릭 alter 스키마
-> utf8 - default collation
-> apply하면
-> alter schema test default character set utf8 가뜬다.
-> test라는 데이터베이스에 기본인코딩을 utf8로 변경하는 쿼리이다.

 

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

 

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

alter table test.korea convert to character set utf8;
alter schema test default character set utf8;

 

# table korea3만들기

 

# schema test2만들면 utf8을 다시설정해야한다.

 

# Server 기본 인코딩 : 데이터 베이스를 만들었을 때 설정되는 기본 인코딩을 의미한다.

 

# Server의 기본 인코딩을 변경하는 방법
1. mysql 서버에 접속 ( PuTTY로 접속 )
2. vi /etc/my.cnf ( my.cnf 는 mysql설정파일 )
3. [mysqld] 밑에 character-set-server = utf8
4. systemctl restart mysqld

 

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

 

# workbench다시 로그인후 스키마를 하나더 만든다.

 

# 드롭스키마 drop now
-> 다지운다.

 

# vmware에 지금상태 저장하기
-> MySQL 서버 인코딩 UTF8 설정 후

 

# workbench에 스키마 aaa
-> bbb테이블
-> name char(5)
-> age int
-> mobile char(15)
-> select * from bbb;

 

# aaa 데이터베이스에 있는 bbb 테이블을 가지고 PK, NN, 즉정 컬럼 조회예정

 

 

-> alter table test.korea convert to character set utf8;

-> test데이터베이스안에 korea 테이블에 설정을 한글이되는 utf8로 설정

-> alter schema test1 default character set utf8;

-> test1데이터베이스자체를 한글이 되는 utf8로 설정

 

 

-> test1 스키마  생성

 

-> vi /etc/my.cnf 창에 mysqld밑에 character-set-server=utf8 작성

-> systemctl restart mysql 실행

-> 다시 workbench에 접속하면 workbench프로그램자체를 한글이되게 적용

'데이터베이스' 카테고리의 다른 글

DBMS_day12  (0) 2017.07.26
DBMS_day11  (0) 2017.07.25
DBMS_day09  (0) 2017.07.23
DBMS_day08  (0) 2017.07.20
DBMS_day07  (0) 2017.07.19
Comments