반응형

1. 첫번째 방법

첫번째 방법 사용 시 주의 사항 :  'my_table.csv' 파일명에 my.ini의 secure-file-priv 경로를 같이 적어야 정상적으로 파일이 export 되는 경우가 있음.

파일명 : MySQL table into CSV file 1.sql

SELECT * FROM my_table
INTO OUTFILE 'my_table.csv'
CHARACTER SET euckr
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'

2. 두번째 방법

파일명 : MySQL table into CSV file 2.sql

SELECT * FROM (
    (
        SELECT
            '필드1' AS 'filed_1',
            '필드2' AS 'filed_2'
    ) UNION (
        SELECT
            filed_1,
            filed_2
        FROM my_table
    )
) AS mysql_query
INTO OUTFILE 'my_table.csv'
CHARACTER SET euckr
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'

3. 세번째 방법 (소량의 데이터 대상)

파일명 : MySQL table into CSV file 3.sh

mysql -p my_db -e "SELECT * FROM my_table" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > my_table.csv

4. 네번째 방법

파일명 : MySQL table into CSV file 4.sh

#!/bin/bash
 
db=YOUR_DB
user=YOUR_USER
pass=YOUR_PASS
 
for table in $(mysql -u$user -p$pass $db -Be "SHOW tables" | sed 1d); do
  echo "exporting $table.."
  mysql -u$user -p$pass $db -e "SELECT * FROM $table" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > $table.csv
done

- 끝 - 

 

출처: https://may9noy.tistory.com/470

반응형
반응형

ctrl+alt+t 눌러서 터미널을 연다


sudo vi /etc/mysql/my.cnf


[client]

default-character-set=utf8


[mysql]

default-character-set=utf8



[mysqld]

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server = utf8


$ service mysql restart



혹은



# client 부분밑에 추가

[client]

default-character-set = utf8


mysqld 부분밑에 추가

[mysqld]

init_connect = SET collation_connection = utf8_general_ci

init_connect = SET NAMES utf8

character-set-server = utf8

collation-server = utf8_general_ci


mysqldump 부분밑에 추가

[mysqldump]

default-character-set = utf8


# mysql 부분밑에 추가

[mysql]

default-character-set = utf8


다 셋팅 하고나서
sudo /etc/init.d/mysql restart로 재시작!


출처: http://bizadmin.tistory.com/entry/우분투-Linux-mysql-한글-설정-하기 [Happy Resource]

반응형
반응형

출처:https://otoong.tistory.com/entry/MYSQL-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%83%80%EC%9E%85-1-column-type


 MySQL의 문자열 타입은 주로 텍스트를 저장하는데 쓰이지만, 임의의 데이터를 담을 수 있는 범용 타입이다. 이 타입들은 최대 길이가 변하는 값들을 담을 수 있고 대 소문자를 구별해서 처리하는 지에 따라 선택할 수 있다.

MySQL 4.1부터 CHAR, VARCHAR 그리고 TEXT 타입에 대해 문자 세트를 특정 칼럼에 적용할 수 있다. 문법은 CHARACTER SET charset 이고, 여기서 charset은 latin1, greek혹은 utf8과 같은 문자 세트 식별자이다. 서버에 의해 지원되는 허용되는 문자 세트는 SHOW CHARACTER SET문을 실행해서 정해질 수 있다. CHAR이나 VARCHAR 칼럼에 대해 문자 세트를 적용하면 보통 이들 타입에 허용되는 BINARY 속성의 사용이 미리 막혀 버린다는 것에 주의하라.

CHAR [ (M) ]

의미 : 0부터 M바이트 길이의 고정 길이의 문자를 가진 문자열. M은 0부터 255이하의 정수 값 이어야 한다. M을 생략하면 1이 기본값으로 주어진다. M문자보다 큰 문자열은 저장할 때 M길이로 잘린다. M보다 짧은 문자열은 저장될 때 오른쪽이  공백문자로 채워진다. 채워진 공백은 값을 가져올 때 제거된다.
가능한 속성 : BINARY, CHARACTER SET
허용되는 길이 : 0부터 M바이트
기본 값 : 칼럼이 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : M바이트
비교 : BINARY속성이 지정되지 않으면, 대소문자를 비교하지 않음
동의어 : 인자 없는 CHAR는 CHAR(1)에 대한 동의어이다.


VARCHAR [ (M) ]


의미 
: 0부터 M바이트 길이의 가변 길이 문자열. M은 0부터 255미만까지의 정수라야 한다. M문자보다 긴 문자열은 저장될 때 길이 M까지로 잘려나간다. 뒤쪽의 공백문자들은 저장될 때 제거된다.
허용되는 속성들 : BINARY, CHARACTER SET
허용되는 길이 : 0부터 M바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기위한 1바이트를 더함
비교 : BINARY 속성이 지정되지 않으면 대소문자 구별하지 않음
동의어 : CHAR VARYING(M). MySQL 3.23.5부터 NCHAR VARYING(M)와 NATIONAL CHAR VARYING(M)는 VACHAR(M)에 대한 동의어이다.


TINYBLOB


의미 
: 작은 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 255바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 1바이트를 더함
비교 : 대소문자 구별함


BLOB


의미 
: 보통 크기의 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 65535바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 2바이트를 더함
비교 : 대소문자 구별함


MEDIUMBLOB


의미 
: 중간 크기의 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 16777215바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 3바이트를 더함
비교 : 대소문자 구별함
동의어 : LONG VARBINARY


LONGBLOB


의미 
: 큰 BLOB값
허용되는 속성들 : 전역 속성 외에는 없음
허용되는 길이 : 0부터 4294967295바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 4바이트를 더함
비교 : 대소문자 구별함


TINYTEXT


의미 
: 작은 크기의 TEXT값
허용되는 속성 : CHARACTER SET
허용되는 길이 : 0부터 255바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 1바이트를 더함
비교 : 대소문자를 구별하지 않음


TEXT


의미 
: 보통 크기의 TEXT값
허용되는 속성들 : CHARACTER SET
허용되는 길이 : 0부터 65535바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 2바이트를 더함
비교 : 대소문자를 구별하지 않음


MEDIUMTEXT


의미 
: 중간 크기의 TEXT값
허용되는 속성 : CHARACTER SET
허용되는 길이 : 0부터 16777215바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 기록하기 위한 3바이트를 더한다.
비교 : 대소문자를 구별하지 않음


LONGTEXT


의미 
: 큰 TEXT값
허용되는 속성들 : CHARACTER SET
허용되는 길이 : 0부터 4294967295바이트
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 문자열)
필요한 저장공간 : 값의 길이에 그 길이를 저장하기 위한 4바이트를 더함
비교 : 대소문자를 구별하지 않음


ENUM ('value1', 'value2', ···)


의미 
: 열거값. 값의 목록 중 정확학 하나의 수에 할당되는 칼럼값
허용되는 속성들 : 전역 속성
디폴트 값 : 칼럼에 NULL이 가능하면 NULL, 그렇지 않으면 첫 번째의 열거 값
필요한 저장공간 : 1부터 255 개의 멤버까지의 열거형에 대해서는 1바이트, 255부터 65536멤버까지의 열거형에 대해서는 2바이트
비교 : 대소문자를 구별하지 않음


SET ('value1', 'value2', ···)


의미 
: 집합. 값 목록 중 영 또는 그 이상의 멤버를 할당할 수 있는 칼럼값
허용되는 속성들 : 전역 속성
디폴트 값 : 칼럼이 NULL이 가능하면 NULL, 그렇지 않으면 ''(빈 집합)
필요한 저장공간 : 1부터 8까지의 멤버가 있는 집합에 대해서는 1바이트, 9부터 16까지의 멤버가 있는 집합에 대해서는 2바이트, 17부터 24까지의 멤버가 있는 집합에 대해서는 3바이트, 25에서 32까지의 멤버가 있는 집합에 대해서는 4바이트, 그리고 33부터 64까지의 멤버가 있는 집합에 대해서는 8바이트
비교 : 대소문자를 구별하지 않음



출처: https://otoong.tistory.com/entry/MYSQL-문자열-타입-1-column-type [OT연구소]

반응형
반응형

출처: https://toma0912.tistory.com/47

 

안녕하세요. 오늘은 제약사항에 대해서 포스팅 해보려고 합니다. 우선 '제약 조건'의 의미에 대해서 알아보고 간단한 예제를 통해 제약 조건에 대해서 알아보겠습니다.

 

제약조건(Constraint)?

 

제약조건(Constraint)이란, 데이터의 무결성을 지키기 위해 제한된 조건을 의미합니다. 즉, 데이터를 삽입할 때 무조건적으로 삽입되는 것이 아니라 어떠한 조건을 만족했을 경우에만 데이터가 삽입되도록 제약을 할 수 있는 것이라고 생각하시면 됩니다.

 

우선 기본적인 제약 조건들의 사용법에 대해서 알아보겠습니다.

// 제약조건 확인하기

DESC 데이터베이스 명.테이블 명;

 

// 제약조건 삭제

ALTER TABLE [테이블 명] DROP CONSTRAINT [제약조건 이름];

ALTER TABLE [테이블 명] DROP FOREIGN KEY [제약조건 이름];

 

// 제약조건 추가

외래키 : ALTER TABLE [테이블 명] ADD CONSTRAINT [제약조건 이름] FOREIGN KEY(컬럼 명)

REFERENCES [부모테이블 명](PK 컬럼 명) [ON DELETE CASCADE / ON UPDATE CASCADE];

 

기본키 : ALTER TABLE [테이블 명] ADD CONSTRAINT [제약조건 이름] PRIMARY KEY(컬럼 명);

 

// NOT NULL 제약 조건 추가

ALTER TABLE [테이블 명] MODIFY [컬럼 명] [데이터 타입] CONSTRAINT [제약조건 이름] NOT NULL;

 

우선, 기본적으로 테이블을 생성할 때 제약 조건을 아래와 같이 추가할 수 있습니다. 그리고 나서 간단한 예제를 통해 위의 제약조건에 대해서 알아보겠습니다.

 

 

제약 정의

 

 

위의 테이블 생성 코드를 살펴보면, a 열에는 NOT NULL  제약이 걸려 있습니다. b 열에는 NOT NULL 제약과 UNIQUE 제약이 걸려 있습니다.

c 열에는 아무런 제약사항이 없는 것을 확인할 수 있습니다. 이처럼 열에 정의하는 제약을 '열 제약'이라 부릅니다.

 

또다른 예제로 테이블에 제약을 정의하는 방법에 대해서 알아보겠습니다.

위 코드를 살펴 보시면, 제약에는 이름을 붙일 수 있습니다. 제약에 이름을 붙이면 나중에 관리하기 쉬워지므로 가능한 한 이름을 붙이도록 합니다. 제약 이름은 CONSTRAINT 키워드를 사용해서 지정합니다.

 

 

제약 추가

 

1) 열 제약 추가

 

ALTER TABLE 구문을 사용해서 c열에 NOT NULL 제약 조건을 추가한 뒤, 테이블을 보면 기본 생성 테이블과 다르게 NULL에 NO라고 제약이 추가된 것을 확인할 수 있습니다.

 

2) 테이블 제약 추가

 

테이블 제약은 ALTER TABLE의 ADD 하부명령으로 추가할 수 있습니다. 기본키는 테이블에 하나만 설정할 수 있으며, PRIMARY KEY 키워드를 사용해서 a를 기본키로 지정했습니다. 그리고, 이미 기본키가 설정되어 있는 테이블에 추가로 기본키를 작성할 수는 없습니다.

 

 

제약 삭제

 

1) 열 제약 삭제

 

기본적으로 열 제약 삭제의 경우에는 제약조건 수정과 마찬가지로 ALTER TABLE 구문을 사용합니다. 위의 코드를 살펴보시면, sample631 테이블의 c열의 NOT NULL 제약조건을 삭제한 것을 확인할 수 있습니다.

 

2) 테이블 제약 삭제

위의 코드를 살펴보시면, DROP 명령어를 통해 삭제할 제약 조건인 PRIMARY KEY를 삭제하는 것을 확인할 수 있습니다.  

 

이것으로 MySQL 제약조건 추가, 수정 및 삭제에 대해 간단히 알아보았고, 포스팅을 마치도록 하겠습니다. : )



출처: https://toma0912.tistory.com/47 [토마's 개발노트]

반응형

+ Recent posts