◈ mysql에 접속하기

d:\>mysql -uroot -papmset

 ==> 여기서 root는 id, apmset은 비밀번호

 ==> mysql -u계정id, -p계정비밀번호


◈ mysql이 관리하는 데이타베이스들 목록 보기

mysql>show databases;


◈ 원하는 데이터베이스 선택/사용하기

mysql>use phpmyadmin;

 ==> 여기서 phpmyadmin은 DB 이름


◈ 선택된 데이타베이스(현재 사용하는 데이타베이스)의 테이블 목록 보기

mysql>show tables;


◈ 새로운 데이터베이스 생성

mysql>create database 데이터베이스명;


◈ 데이터베이스 삭제

mysql>drop database 데이터베이스명;

mysql>drop database meditab;


◈ 특정 테이블 구조 보기

mysql>desc 테이블명;

 ==> 이 명령 전에 먼저 데이터베이스를 사용하는 "mysql>use 데이터베이스명;"이 선행되어야한다.


◈ mysql 데이타베이스의 user 테이블에 있는 사용자 계정 정보 보기

mysql>select host, user, password from user;

 ==> user라는 테이블로부터 host, user, password라는 필드의 내용을 보여줌

 ==> user 테이블의 필드들 정보를 보려면 "desc 테이블명;"을 통해서 보면 host, user, password....등의 필드 이름들을 볼 수 있다.


◈ mysql 이라는 데이타베이스의 user 테이블에 새로운 사용자 계정 정보 등록하기

mysql>insert into 테이블명 (필드1, 필드2, 필드3) values (필드1_값, 필드2_값, 필드3_값);

ex) mysql> insert into user (host, user, password) values ('localhost', 'uljavajoe', password('kog'));

 ==> host에는 MySQL이 있는 서버의 URL 주소가 입력된다.

 ==> 여기서 비밀번호를 셋팅할 때는 반드시 password('kog')와 같은 식으로 해야지 되지 그냥 ('localhost', 'uljavajoe', 'kog')와 같이 하면 나중에

이 계정과 이 비밀번호를 mysql에 접속할 때 다음과 같은 에러 발생한다.


ERROR 1045 (28000): Access denied for user 'uljavajoe'@'localhost' (using password: YES)


◈ 레코드 수정 명령
update 레코드명 set 필드명='필드값' where 조건식
 mysql>update info set age=35 where name='홍길동';


◈ 특정 레코드 삭제 명령
delete from 레코드명 where 조건식;
mysql>delete from info where name='홍길동';

-. 전체 레코드 삭제
mysql>delete from info;


◈ 데이터베이스 백업하기
c:\>mysqldump -uuljavajoe -pkog joe > joebackup


◈ 데이터베이스 백업
c:\>mysqldump -u계정id -p계정비밀번호 데이터베이스이름 > 백업할이름.확장자
c:\>mysqldump -uuljavajoe -pkog joe > joe_backup.sql
===> 백업되는 joe_backup.sql이라는 이름으로 저장되는 내용은 SQL 명령 형태로 데이터가 저장된다. 데이터베이스 내용 자체가 저장되는 것은 아니다.
이렇게 SQL 명령 형태로 저장된 내용을 이용해서 나중에 백업 데이터베이스를 복원(?)(생성) 하는 식이다.


◈ 데이터베이스 복원
c:\>mysql -u계정id -p계정비밀번호 복원될_데이터베이스이름 < 백업한파일이름.확장자
c:\>mysql -ujsisx -pkog joe2 < joe_backup.sql
===> 이때 여기서 다른 계정인 jsisx와 kog가 준비되어 있어야 하고 복원될 데이터베이스인 joe2도 미리 준비가 되어 있어야만 한다.


◈ php에서 MySql에 접속하는 함수
mysql_connect(데이터베이스_접속주소, 계정id, 계정비번)
resource mysql_connect(string hostname [:port], string username, string password)
 -. hostname : 서버의 호스트명 또는 '호스트명:포트번호'
 -. username : 사용자 계정 id
 -. pssword : 사용자 계정 비번

⇒ 기능 : php와 MySql을 연결한다. d:\>mysql -uuljavaje -pkog와 같은 기능

⇒ 반환값
 -. 성공 : 식별자 번호(resource) --> 이 값은 0 보다 큰 임의 수인데 시스템 내부적으로 사용하는 값.
 -. 실패 : false(실제 값은 0이다. C언어에서 나온 php이므로 C언어에서 false는 0이다)

⇒ 용례
  $mConnect = mysql_connect("localhost", "uljavajoe", "kog");

◈ 테이블에 있는 특정 필드 삭제
mysql>alter table 테이블명 drop 삭제할필드명;
msyql>alter table info drop age;


◈ 필드이름 수정명령
mysql>alter table 테이블명 change 이전필드명 바꿀필드명 바꿀필드타입;
mysql>alter table info change addr address varchar(80);


◈ 필드 타입 수정명령
mysql>alter table 테이블명 modify 필드명 필드타입;
mysql>alter table info modify addr char(70);


◈ 테이블명 수정 명령
mysql>alter table 테이블명 rename 새테이블명;
mysql>alter table info rename person;


◈ 테이블 삭제 명령
mysql>drop table 테이블명;
mysql>drop table info;


◈ sql 쿼리 문 일괄 실행
c:\>mysql -u사용자계정 -p비밀번호 데이터베이스명 < 일괄처리명령문파일명.확장자
c:\>mysql -ujsisx -p1234 joe < info.txt


◈ 레코드 삽입 명령
mysql>insert into 레코드명 (필드명1, 필드명2, 필듬여3,...) values('필드값1', '필드값2', '필드값3'...);
insert into info (num, name, age, addr) values (1, '홍길동', 23, '대구시 북구 산격로 7');


◈ 검색명령
 -. 이름이 김씨 성을 가진 모든 사람
 mysql>select * from info where name like '김%';

 -. 나이가 20대인 사람 모두
 mysql>select * from info where age>=20 and age<30;

 -. 이름 가운데 글자에 '수'자가 있는 사람 모두
 mysql>select * from info where name like '__수%';
  ===> 여기서 _는 임의의 글자 한 자, %는 임의의 여러 글자. 그런데 한글은 2바이트 이므로 _를 2개로 표현

 -. 나이를 기준으로 오름차순 검색
 mysql>select * from info order by age;

 -. 이름을 기준으로 내림차순 검색(이름이 한글인 경우는 sort가 잘 안되는데 이때는 MySQL 설치시 한글이 제대로 되도록 해당 파라미터를 옵션으로 설정해야됨)
 mysql>select * from info order by name desc;
 혹은 binary() 함수를 이용하면 한글도 정상적으로 sort가 된다.
 mysql>select * from order by binary(name);


+ Recent posts