# MySQL 접속
C:\> mysql -h호스트 -u계정 -p비밀번호 데이터베이스명

예) mysql -hlocalhost -uroot -pdbpass mysql
* -h는 생략하셔두 됩니다.

# 데이터베이스 생성
mysql> create database 데이터베이스명;

# 데이터베이스 보기
mysql> show databases;

# 데이터베이스 변경 및 접근
mysql> use 데이터베이스명;

# 데이터베이스 삭제
mysql> drop database 데이터베이스명;

* mysql을 접속 안한 상태
C:\> mysqladmin -u계정 -p비밀번호 drop 데이터베이스명

# 테이블 생성
mysql> create table 테이블명 (필드명 필드속성(필드길이) 기타옵션);

예)
create table test (
num int(11) NOT NULL auto_increment,
member varchar(50),
system int(2) DEFAULT '0',
tdate datetime,
PRIMARY KEY (num) );

# 테이블 보기
mysql> show tables;

# 테이블 구조 보기
mysql> desc 테이블명;

# 테이블 구조 추가
mysql> alter table 테이블명 add 필드명 필드속성(필드크기) 옵션;

예) alter table test add subject varchar(50) NOT NULL DEFAULT 'No';

# 테이블 구조 수정
mysql> alter table 테이블명 change 필드명 변경할필드명 필드속성(필드크기) 옵션;

예) alter table test change subject content text;

# 테이블 구조 삭제
mysql> alter table 테이블명 drop 필드명;

# 테이블 복사
mysql> create table 사본테이블명 as select * from 원본테이블명;

# 테이블 삭제
mysql> drop table 테이블명;

# 데이터베이스 백업
C:\> mysqldump -u 유저아이디 -p DB명 > 저장할파일명

[테이블 백업]
C:\> mysqldump -u 유저아이디 -p DB명 테이블명 > 저장할파일명

# 데이터베이스 복원
C:\> mysql -u 유저아이디 -p DB명 < 백업파일명

'개발지식창고 > DataBase' 카테고리의 다른 글

MySQL : Data Type (1 of 2)  (0) 2010.08.31
MFC MYSQL 연동  (0) 2010.08.31
[MySQL] 데이타베이스명령어  (0) 2010.08.31
[MySQL]MySQL 테이블수정  (0) 2010.08.31
[MySQL] MySQL 기본 명령어 정리  (0) 2010.08.31
Posted by 모과이IT
,
############## mysql 데이타 베이스 명령어 ##############
작성자: w0rm9 (허접해도 이해해주기~)

1. mysql에 초기 접속하기
먼저, root 로 /usr/local/mysql/bin/mysql 에 접속한다.

# mysql -u root mysql
// 초기엔 mysql관리자 root(서버의 root가 아님!)의 패스워드가 등록되어 있지 않기 때문에 패스워드 없이 접속 할 수 있다.



2. mysql관리자 root 패스워드 설정
mysql을 설치하고 나면 mysql이라는 데이터베이스가 기본적으로 생성되어 있다. (show databases; 로 확인 ;-)
즉, mysql 관리용 데이타베이스라고 생각하면 된다. 즉, mysql관리자인 root도 이 데이터베이스의 user라는 테이블내에
등록되어 있다. root 패스워드 변경은 user라는 테이블에서 변경해주면 된다.

mysql> update user set password = password('w0rm9') where user = 'root';
// root의 패스워드를 w0rm9 으로 설정했다.

그런 다음 exit; 명령어로 빠져나와서 데이터베이스를 재시작해준다.
# mysqladmin -u root reload

다음 접속시 부터는 패스워드를 입력해야 한다.
# mysql -u root -p
Enter password: 패스워드 입력



3. mysql 새로운 사용자 계정 설정법
# mysql -u root -p
Enter password:
....어쩌구 저쩌구.......

mysql> use mysql;
....어쩌구 저쩌구.......
Database changed

// w0rm9이란 데이터베이스를 만들었다.
mysql> create database w0rm9db;

// mysql 데이터베이스의 user 테이블에 새로운 사용자를 생성한다.
mysql> insert into user (host, user, password) values('localhost','w0rm9',password('1234')); 또는
mysql> insert into user values('localhost','w0rm9',password('1234'),'Y','Y','Y',Y''Y','N','N','N','N','N','N','N','N','N');

// user라는 테이블에 생성된 mysql사용자(w0rm9)가 입력되었는지 확인힌다.
mysql> select * from user where user = 'w0rm9';

// db 테이블에 w0rm9사용자가 사용할 데이터베이스 연동시킨다.
mysql> insert into db values('localhost','w0rm9db','w0rm9','y','y','y','y','y','y','y','y','y','y');

// db 테이블에 w0rm9db라는 db가 연동되었는지 확인한다.
mysql> select * from db where db = 'w0rm9db';

// 생성된 데이터베이스를 확인한다.
mysql> show databases;

// 빠져나온다.
mysql> exit

// 새로운 사용자나 데이터베이스 생성 후에는 반드시 reload를 해줘야 적용된다.
# mysqladmin -u root -p reload
Enter password:

-보안을 위한 일반사용자의 권한 설정-
user에서 localhost, user, password만 빼고 나머지는 다 N
db에서 localhost, Db, user 만 빼고 나머지는 다 Y



4. mysql 기존 데이터베이스 삭제
// 데이터베이스를 확인한 후 삭제한다.
mysql> show databases;
mysql> drop database w0rm9db;

// 사용자를 삭제한다.
mysql> delete from user where user='w0rm9';
mysql> delete from db where user='w0rm9';



5. table 관련 명령어
// table 생성하기
mysql> create table table_w0rm9 (
         -> name varchar(12),
         -> contents text
         -> );

mysql> show tables;
     +--------------------+
     | Tables_in_babyhack |
     +--------------------+
     | table_w0rm9        |
     +--------------------+

mysql> desc table_w0rm9;
     +---------+-----------------------+------+-----+---------+----------------+
     |  Field  | Type                  | Null | Key | Default | Extra          |
     +---------+-----------------------+------+-----+---------+----------------+
     name   | varchar(12)           |      |     |         |                |
     |contents | text                  |      |     |         |                |
     +---------+-----------------------+------+-----+---------+----------------+

//table 삭제하기
mysql> drop table table_w0rm9;

//table 이름 바꾸기
mysql> alter table old_w0rm9 rename new_w0rm9;

// 필드 추가하기, varchar(40)이라는 타입의 homepage라는 필드가 추가된다.
mysql> alter table table_w0rm9 add column homepage varchar(40);

// 필드명 변경하기, 생성했던 homepage 필드를 age로 변경한다. 속성까지 변경 가능
mysql> alter table table_w0rm9 change column homepage age varchar(3);

// 필드 삭제하기, 생성했던 homepage 필드가 삭제된다.
mysql> alter table table_w0rm9 drop column homepage;

// 데이터 추가하기, 내용 추가 후 확인
mysql> insert into table_w0rm9(name, contents, homepage) values('w0rm9','hacked by w0rm9', 'http://w0rm9.madnom.com');
mysql> select * from table_w0rm9;

// 데이터 검색하기
mysql> select contents from table_w0rm9;  // contents의 내용만 확인한다.
mysql> select contents, name from table_w0rm9;  // contents, name의 내용만 확인한다.
mysql> select homepage from talbe_w0rm9 where name = 'w0rm9';  // name이 w0rm9의 homepage내용만 출력한다.
mysql> select name from talbe_w0rm9 where name LIKE '%rm%';   // name에 rm이 포함된 name의 내용만 출력한다.

// 데이터 수정하기
mysql> update talbe_w0rm9 set name = 'cracker' where homepage = 'http://w0rm9.madnom.com';
// 홈페이지가 http://w0rm9.madnom.com 인 레코드의 name을 cracker로 입력했다.

// 데이터 삭제하기
mysql> delete from testtable where name = 'w0rm9';
// name가 w0rm9인 레코드를 삭제했다.



6. 그 밖의 명령어들
// 현재 데이터베이스 확인
mysql> show databases;

// mysql이라는 데이터베이스를 작업대상 Db로 정함
mysql> use mysql;

// 현재 액세스한 테이터베이스의 테이블 확인
mysql> show tables;

// 테이블에 존재하는 모든 데이터 검색
mysql> select * from user;
mysql> select * from db;

// 특정 테이블의 필드구조 확인
mysql> show columns from user;
mysql> desc user;



7. mysqladmin 사용법
// 데이터베이스 종료
# mysqladmin -u root -p shutdown

// 데이터베이스 재시작
# mysqladmin -u root -p reload

// 새로운 데이터베이스 생성
# mysqladmin -u root -p create w0rm9

// 기본의 데이터베이스 삭제
# mysqladmin -u root -p drop w0rm9

// root 패스워드 변경
# mysqladmin -u root -p password 1234



8, 백업과 복구
// w0rm9db라는 데이터베이스 백업하기
# mysqldump -u root -p w0rm9db > w0rm9db.bak.sql
Enter password:

// w0rm9db.bak.sql 백업베이터 복구하기
# mysql -u root -p w0rm9db < w0rm9db.bak.sql
Enter password"

위와 같이 데이터베이스를 백업할때는 mysql이라는 데이터베이스도 함께 백업해 둔다.
어떤 데이터베이스가 있었나는 알 수 있기 때문이다.

_eof_

'개발지식창고 > DataBase' 카테고리의 다른 글

MySQL : Data Type (1 of 2)  (0) 2010.08.31
MFC MYSQL 연동  (0) 2010.08.31
[MySQL] 기본명령어  (0) 2010.08.31
[MySQL]MySQL 테이블수정  (0) 2010.08.31
[MySQL] MySQL 기본 명령어 정리  (0) 2010.08.31
Posted by 모과이IT
,
이름 바꾸기
mysql> ALTER TABLE tablename RENAME bbs;


컬럼 속성 수정
mysql> ALTER TABLE tablename MODIFY colname INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

ALTER TABLE tablename MODIFY 컬럼이름 컬럼속성

컬럼 이름 바꾸기
sysql> ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT;

CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다.

컬럼 추가
mysql> ALTER TABLE bbs ADD name varchar(10);

ALTER TABLE tablename ADD 컬럼이름 컬럼속성

컬럼 삭제
mysql> ALTER TABLE bbs DROP colname;


특정 컬럼 뒤에 새로운 컬럼 추가
mysql> ALTER TABLE bbs ADD newcol varchar(10) AFTER num;

num 컬럼 뒤에 newcol 컬럼 추가.

기존 컬럼을 지우고 맨 앞에 컬럼 추가
mysql> ALTER TABLE bbs DROP newcol, ADD newcol VARCHAR(10) FIRST;

맨 앞에 추가하려면 FIRST를 사용한다.

PRIMARY KEY 속성 삭제
mysql> ALTER TABLE test DROP PRIMARY KEY;


이미 PRIMARY KEY인 컬럼의 속성을 바꿀 때
PRIMARY KEY 속성은 지정하지 말고, NOT NULL 속성을 함께 지정해 주면 기존 PRIMARY KEY 속성은 그대로 남은 상태로 컬럼의 속성을 변경할 수 있다.
mysql> ALTER TABLE test MODIFY a CHAR(1) NOT NULL;


테이블의 내용 전체 삭제
mysql> TRUNCATE TABLE tablename;

트랜잭션에 의해 복구될 수 없다.

'개발지식창고 > DataBase' 카테고리의 다른 글

MySQL : Data Type (1 of 2)  (0) 2010.08.31
MFC MYSQL 연동  (0) 2010.08.31
[MySQL] 기본명령어  (0) 2010.08.31
[MySQL] 데이타베이스명령어  (0) 2010.08.31
[MySQL] MySQL 기본 명령어 정리  (0) 2010.08.31
Posted by 모과이IT
,