MySQL 정리
MySQL 서버 접속, 끊기
MySQL에 접속하기
1: 호스트주소의 MySQL서버에 해당 ID, 비밀번호로 접속. 접속에 성공하면 mysql>
프롬프트가 뜬다.
C:\>mysql -h 호스트주소명 -u 사용자ID -p 데이터베이스명
Enter password: 비밀번호 입력
2: 자신의 컴퓨터안에 설치된 MySQL서버에 접속할 때. 호스트주소는 생략이 가능. 비밀번호는
Enter password: 프롬프트가 뜨고 난 다음에 입력한다.
C:\>mysql -u 사용자ID -p
Enter password: 비밀번호 입력
MySQL 접속 끊기: 접속된 상태에서 quit 또는 exit
mysql> quit
mysql> exit |
ex)
C:\>mysql -h localhost -u man -p test_db
Enter password: 1111
//test_db 데이터베이스에 man이란 아이디, 비밀번호 1111로 접속하기.
mysql> quit //접속 끊기.
C:\>
|
MySQL 기본 관리 기능
새
사용사 생성
새 사용자 계정 생성을 하려면 관리자계정(root)으로 로그인해야 된다.
특정 데이터베이스 중 특정 테이블에 사용권한을 갖는 새 사용자 생성:
grant all privileges on 데이터베이스명.테이블명 to 유저명
identified by '비밀번호' with grant option; |
ex)
grant all privileges on test_db.test_table
to testman identified by '1111' with grant option;
//test_db 데이터베이스의 test_table을 사용할 권한을 갖는
비밀번호 1111이고 유저명이 testman인 새 사용자를 생성. test_db.* 이라고
쓰면 test_db의 모든 테이블을 사용할 권한을 갖는다.
내용이 바로 반영되게 하기 위해서는 flush privileges;
명령을 내려준다.
이 새로 생긴 아이디로 접속할 경우
mysql -u testman -p 를 치고 엔터를 클릭한
뒤 비밀번호를 넣어주면 접속된다.
|
비밀번호
변경
자신의 비밀번호 변경:
set password = password('새 비밀번호');
관리자로 접속해 다른 사용자 비밀번호 변경:
use mysql;
update user set password = password('새 비밀번호')
where user = '유저명';
flush privileges; |
ex) set password = password('123456');
//비밀번호를 123456으로 변경하기 |
데이터베이스
생성,보기,사용,삭제하기
새로운 데이터베이스 생성:
create database 데이터베이스명;
데이터베이스들 보기:
show databases;
데이터베이스 사용하기:
use 데이터베이스명;
데이터베이스 삭제하기:
drop database 데이터베이스명; |
ex) create database test_db;
// test_db란 데이터베이스 새로 생성. drop database
test_db; // test_db 데이터베이스 제거 |
테이블
생성,보기,구조보기,삭제하기
새로운 테이블 생성:
create table 테이블 명(
필드명1 타입,
필드명2 타입,
...
primary key(필드명)
);
테이블들 보기:
show tables;
show tables like 테이블명; //해당 테이블명의
테이블을 보여준다
특정 테이블 구조 보기: 필드와 타입들을 볼 수 있다.
desc 테이블명;
테이블 구조 변경하기: 테이블에 새로 칼럼을 추가하거나 삭제, 데이터 타입이나 위치 등을
변경할 수 있다.
옵션:
* add column: 새 칼럼 추가
* drop column: 칼럼과 내부 데이터 제거
* change column: 칼럼명, 데이터 타입 변경
* modify column: 칼럼의 데이터 타입, 위치 변경
alter table 테이블명 옵션명 칼럼명;
테이블 삭제하기:
drop table 테이블명; |
ex)
CREATE TABLE test_table(
num
int not
null auto_increment,
id char(10) not
null ,
passwd varchar(20) not
null,
content text,
primary key(num)
);
//4개의 필드를 갖는 test_table 테이블 생성. not null은 값이 반드시 입력되어야
한단 표시이고 auto_increment는 자동으로 번호가 1씩 증가하면 붙는단 표시.
primary key는 num 필드로 지정.
DESC test_table; //test_table 구조 보기
ALTER TABLE test_table ADD COLUMN age int;
//test_table에 int형의 age란 칼럼 추가
ALTER TABLE test_table CHANGE COLUMN age years
varchar(3); //test_table의 age란 칼럼을 years란 이름으로
변경하고 데이터 타입을 varchar(3)로 변경
ALTER TABLE test_table MODIFY COLUMN days datetime
AFTER years; //test_table의 days란 칼럼의 데이터 타입을
datetime으로 변경하고 years 칼럼의 다음 순서에 오도록 위치 변경
DROP TABLE test_table; //test_table
제거 |
테이블의
레코드 내용보기, 추가, 수정, 삭제하기.
테이블의 레코드 내용 확인하기:
select * from 테이블명; //테이블의 모든 레코드
보기
select 필드명1, 필드명2... from 테이블명 where 조건식;
//조건을 만족하는 테이블의 특정 레코드 보기
select * from 테이블명 order by binary(필드명);
//해당 이름의 필드에 따라 정렬된 테이블의 모든 레코드 보기. binary()함수는 문자열을
이진수 문자열로 바꿔주는 함수로 한글 정렬시 문제 발생을 줄이기 위해 필요.
테이블에 레코드 추가하기:
1. 테이블의 특정 필드에 값을 넣을 경우
insert into 테이블명(필드명1, 필드명2,...)
values(필드값1,
필드값2....);
2. 모든 필드에 빠짐없이 값을 입력할 경우
insert into 테이블명 values(필드값1, 필드값2....);
테이블의 레코드 수정하기:
update 테이블명 set 필드명=필드값 where 조건식;
//조건을 만족하는 필드값 바꿔주기 (where 조건식을 빼면 테이블의 해당 필드명을 가진
모든 레코드를 지정한 필드값으로 수정한다.)
테이블의 레코드 삭제하기:
delete from 테이블명 where 조건식;
//조건을 만족하는 특정 레코드 삭제하기(where 조건식을 빼면 테이블의 모든 레코드를
삭제한다.) |
ex)
insert into userinfo (num, id, pw) values (1, 'testman',
'123' );
//userinfo 테이블의 num, id, pw 필드에 1, 'testman', '123'을
각각 입력한다. insert into userinfo values (2,
'2ndman', '6589' );
//모든 필드에 빠짐없이 넣을 경우 필드명을 생략할 수 있다. select
* from userinfo; //userinfo 테이블의 모든 레코드 보기.
select id, pw from userinfo; //userinfo
테이블의 id, pw 레코드 보기.
select * from userinfo order by binary(name);
//userinfo 테이블의 모든 레코드를 이름 순으로 정렬하여 보기. update userinfo
set id = 'testwoman' where num=1;
//userinfo 테이블 중 num 필드의 값이 1인 레코드의 id 값을 testwoman으로
변경하기. delete from userinfo where id
= 2ndman;
//userinfo 테이블 중 id값이 2ndman인 레코드 삭제하기. |
배치파일로
명령 실행하기, 데이터베이스 백업하기.
미리 MySQL용 명령들을 텍스트 에디터등에서 작성한 뒤 확장자를 sql로 하여 저장시켜놓고
그 파일에 담긴 명령을 한꺼번에 실행시킬 수 있다.
C:\>mysql -h 호스트주소명 -u 사용자ID -p < 외부파일명.sql
Enter password: 비밀번호 입력
mysqldump 유틸리티를 이용해 데이터 베이스 백업받기:
C:\>mysqldump -h 호스트주소명 -u 사용자ID -p 데이터베이스명
> 백업파일명.sql
Enter password: 비밀번호 입력 |
ex)
C:\>mysql -h localhost -u testman -p <
batch.sql
Enter password: 1111
//batch.sql에 담긴 내용을 실행하기.
C:\>mysqldump -h localhost -u testman -p
test_db > backup_%date%.sql
Enter password: 1111
//mysqldump 유틸리티를 이용해 test_db 데이터 베이스를 backup_오늘날짜.sql
파일로 백업받기: |
-2013.4.15
-2014.10.5 추가
|
|
|