mysql 기본 명령어
1. 새로운 계정 만들고 관리하기(DB 사용권한 주기) * mysql 접속 : mysql -u계정ID -p비밀번호 데이터베이스명(DB명 생략가능) * mysql 종료 : quit \q i) 데이터 베이스명 만들기 create database DB명; ii) user 테이블에 계정, 비밀번호 등록 insert into user(host, user, password) values(‘호스트명’. ‘계정’, password(‘계정비밀번호’)); iii) db테이블에 db사용권한 등록 insert into db valuse(‘호스트명’, ‘DB명’, ‘계정’, ‘Y 12개’…); ==> 모든권한 줄 필요 없으면 N 적절 사용 iv) user, db 테이블 변경 내용 적용 flush privileges; ===> 자세한 내용은 아래의 내용 참고하기 == 중요한 테이블 user, db 테이블 == v) 계정등록 ex1) desc user; (시스템에 존재하는 계정을 등록하는 테이블임, 계정, 비밀번호 등등 볼때) -> select host, user, password from user; ==> 로 레크드 보기(뭐있나 ^^) 그리고 계정, 비밀번호 등록해 보기 -> insert into user(host, user, password) values(‘localhost’. ‘php5′, password(‘1234′)); 참고 : password(‘1234′) : 비밀번호를 암호화 하여 관리자를 포함한 어느 누구도 비밀번호를 알아내지 못하도록 하기 위함/나중에 select로 확인해 보면 446ㅁ1210000c85644 뭐 이런식으로 암호와 되있을 것임 ^^ vi) 사용권한 등록(권한부여) ex2) desc db; -> insert into db valuse(‘localhost’, ‘php5_db’, ‘php5′, ‘Y’,’Y’, 10개Y…); ==> 모든권한 부여할려면 Y 12개 php5 계정에서 php5_db 사용할 수 있도록 권한 부여 ==> DB 테이블에 레코드 추가하면 OK~! vii) 사용자 호스트 권한 제거 delete from user where user='chicnews' and host="%"; viii) 시스템 적용 (user, db 테이블의 변경된 내용 적용) flush privileges; or) mysql 빠져나온 상태에서는 c:\mysql\bin> mysqladmin reload 둘중 한가지로 시스템에 적용해주세요!! == 참고 update 문을 이용한 비빌번호 변경 ex) 관리자계정(root) 비밀번호 변경해 보기 ^^ i) user mysql; (사용자 계정관리 DB) ii) update user(테이블) set password = password(‘1234′) where user=’root'; iii) select host, user, password form user; iv) flush privileges; ==> 반드시 db, user 테이블 업데이트 했을시 반드시 mysql 시스템에 적용! 나와서 mysql -uroot -p1234로 접속해 보기 변경 되었는지~
2. 데이터베이스 관련 명령어
i) 데이터베이스 접속
mysql -u계정ID -p비밀번호 데이터베이스명(생략가능)
ex) mysql -uphp5 -p1234 php5_db
만약 DB명을 생략하게 되면 나중에 use 데이터베이스명; 으로^^(ex use php5_db)
ii) 데이터베이스 만들기(생성)
create database DB명;
ex) create database php5_db;
* DB목록 확인 : show databases;
iii) 데이터베이스 삭제
drop database DB명;
ex) drop database php5_db;
3.테이블 관련 명령어
i) 테이블 생성
create table 테이블명(필드명 타입,필드명 타입,PRIMARY KEY(필드명));
ex)
create table friend (
num int NOT NULL,
name char(10),
address char(80),
tel char(20),
PRIMARY KEY(num)
);
Tip>
ii) 테이블 구조보기
desc 테이블명;
iii) 테이블의 필드 변경하기
alter table 테이블명 add 새로운필드명 타입 [first 또는 after 필드명];
ex)
alter table friend add age int;
desc friend;
alter table friend add email char(30) after address;
iv) 필드 삭제
alter table 테이블명 drop 삭제할필드명1, 삭제할필드명2;
ex)alter table friend drop email;
v) 필드 수정(필드이름 변경)
alter table 테이블명 change 이전필드명 새로운필드명 타입;
ex)
alter table friend change tel phone int;
desc friend;
vi) 필드의 타입수정
alter table 테이블명 modify 기존필드명 새로운 타입;
ex) alter table friend modify name int;
vii) 테이블 이름 변경하기
alter table 이전테이블명 rename 새테이블명;
ex) alter table friend rename student;
show tables;
desc student;
vii) 테이블 삭제하기
drop table 테이블명;
ex) drop table friend;
4. 테이블 조작명령어
i) 데이터 삽입하기(이미만들어진 테이블에 실제데이터 저장)
insert into 테이블명 (필드명1, 필드명2, … ) values (필드값1, 필드값2, ….);
참고) (필드명1, 필드명2, … ) 생략가능 ==> 모든 필드에 집어 넣겠다는 뜻
ex) insert into friend (name, name, address, tel) values (1, ‘배성진’, ‘서울 동작구 노량진동’, ‘234-8998′);
insert into friend values (2, ‘성지연’, ‘대전시 유성구 송강동’, ‘987-333′);
ii) 데이터 검색하기(select)
select 필드명1, 필드명2 from 테이블명;
참고) 전체데이터 보기 select * from 테이블명;
iii) 조건에 맞는 데이터 검색하기(select ~ where)
select 필드명1, 필드명2 from 테이블명 where 조건식;
ex) select id, name, address, tel, sex from mem where sex=’W';
select * from men where (age>=20 and age<30) or (age>=40 and age<50) and sex=’M'; 20대와 40대 남성 정보
iv) 특정 문자열을 가진 레코드 검색하기
_ : 임이의 한문자(1byte) __: 한글한글자 2byte
select name, address, tel from men where name like ‘김%'; 김으로 시작하는 모든 문자열
select naem, id from mem where name like ‘__용%'; 가운데이름이 용인사람의 이름, 아이디 보기
v) 검색된 데이터 정렬하기(order by)
select 필드명1,2 .. form 테이블명 order by 필드명; (오름차순) 1,2,3 abc
내림차순 정렬시 : order by 필드명 desc; (desc만 뒤에 더 붙여주면 OK)
참고) 이름순으로 정렬이 잘 되지 않는 경우
한글이름의 ‘가나다..’순이 2진 한글코드의 순서와 일치하지 않기 때문
===> mysql 프로그램 설치시 한글이 적용되도록 해당 파라미터를 옵션으로 설정해 주어야 한다.
ex) 서울에 사는 사람들 나이 많은 순대로 정렬
select age, name, address from men where adress like ‘서울%’ order by age desc;
vi) 데이터 수정(update set where)
update 테이블명 set 필드명 = 필드값(변결할 값) [where 조건식];
ex) men 테이블에서 아이디가 hyun인 레코드의 전화번호를 ‘888-9999’로 변경
update men set tel=’888-9999′ where id=’hyun';
확인==> select id, name, tel from men where id=’hyun';
vii) 데이터삭제(레코드삭제)
delete from 테이블명 [where 조건식];
— delete from 테이블명; ===> 주의 : 테이블 전체 레코드 삭제
ex) men 테이블에서 이름이 홍길동인 레코드를 삭제하려면?
delete from men where name=’홍길동';
확인==> select * from men where name=’홍길동';
5. 데이터베이스의 백업 및 복원
같은 이름으로 복구를 할 경우에는 db 명이 같은 것이 존재 해야함
확인 결과 db 안에 해당 내용 db 명이 없다면 복구가 되지 않음
i) 데이터베이스 백업(mysqldump > 사용)
mysqldump -u계정 -p비밀번호 데이터베이스 이름 > 백업파일명
ex) php5계정의 경우 ‘php5_db’데이터베이스를 ‘php5_db.sql’ 파일에 백업
mysqldump -uphp5 -p1234 php5_db > php5_db.sql
ii) 백업파일의 복원(파일실행)(mysql < 사용)
mysql -u계정 -p비밀번호 db이름 < 백업파일명
ex) mysql -utest -p1234 test_db < php5_db.sql
6. 실시간 프로세스 확인
mysqladmin -u root -p proc stat -i1
==== 정리 ====
DB 생성 : create database db명;
DB 목록보기 : show databases;
DB 삭제 : drop database db명;
테이블 생성 : create table 테이블명(필드명1 타입1, 필드명2 타입2,PRIMARY KEY(필드명));
테이블 목록보기 : show tables;
테이블 구조보기 : desc 테이블명;
테이블 필드변경 : alter table을 사용
ex)alter table 테이블명 add 새로운필드명 타입 [first 또는 after 필드명]; (새로운 필드 삽입, 다른건 윗글참조)
테이블 삭제 : drop table 테이블명;
데이터 조작명령 : 삽입(insert) : insert into 테이블명 (필드명1, 필드명2, … ) values (필드값1, 필드값2, ….);
삭제(delete from) : delete from 테이블명 [where 조건식];
검색(select) : select 필드명1, 필드명2 from 테이블명 where 조건식;
데이터베이스 백업 : mysqldump -u계정 -p비밀번호 데이터베이스 이름 > 백업파일명
데이터베이스 복원 : mysql -u계정 -p비밀번호 db이름 < 백업파일명
(mysql 명령어를 파일(sql)로 지정해서 일괄적 실행)
0 개의 댓글