---------------------------------------------------------------------------------

SecureCRT 에서 접속


> s db7 (DB 접속)

> mysql -p (mysql 접속)

> use event (데이터베이스접속)

> show tables (테이블 목록 보기)

---------------------------------------------------------------------------------


앞으로 나오는 {} 기호는 사용자가 입력해야 되는 것을 말한다.

* MySQL 접속 방법
- cmd창을 실행시킨다.
- mysql -u {user_id} -p {user_pwd} {database_name};
> mysql -u {user_id} -p {user_pwd} 만 입력하면 database를 따로 선택해줘야한다.
> mysql -u {user_id} -p만 입력하면, user_pwd를 입력해달라고 나올 것이다.

* Database 사용
- Database 생성 : create database {db_name};
- Database 선택 : use {db_name};
- Database 목록보기 : show databases;

1863D9464EE2D3D226186B


* User 생성
- grant all on {db_name}.* to '{new_id}' identified by '{new_id_pwd}';

* Table 사용
- Table 생성 : create table {table_name}( {data_name} {data_type} {condition}, ... );
> data_type : TININT(1), SMALLINT(2), INT(4), DOUBLE(8) // CHAR, VARCHAR, TEXT
BINARY(N), VARBINARY(N) // DATE, TIME, DATETIME, TIMESTAMP
> condition : PRIMARY KEY(UNIQUE+NOT NULL), UNIQUE, DEFAULT, NOT NULL, AUTO_INCREMENT
- Table 삭제 : drop table {table_name};
- Table 변경 : alter table {table_name} ...;
- Table 목록보기 : show tables;
- Table 정의확인 : desc {table_name};
- Table 이름변경 : rename table {table_name} to {new_table_name};

18661E4F4EE2D5212E583B


* Data 사용
- 저장 : insert into {table_name}({data_lists}) values ({data_value});
- 수정 : update {table_name} set ({data_name = data_value}) where {condition};
- 삭제 : delete from {table_name} where {condition};
- 검색 : select {data_name} from {table_name} [where {condition}] [order by {data_name = (desc/asc)}];
- Join : select {data_name} from {table_names} where {condition};

1611373D4EE2D60C2756BE


* php에서 mysql 사용
- 접속 : mysql_connet('hostname','userid','userpwd'); // 이 스트링을 db_connect에 넣었다고 가정한다.
- db선택 : mysql_select_db('{db_name}',$db_connect);
- query 전송 : mysql_query($query);
- 결과 배열화 : mysql_fetch_array($query);
- mysql 연결해제 : mysql_close($db_connect);



* SQL injection 방지
- 사용자에 받는 값을 모두 "$input = mysql_real_escape_string($input);"을 이용해 한번 걸러준다.
15180C434EE2D6991846E7



================================================================================================================

1. 데이터베이스 접속
mysql -u 사용자명 -p 데이터베이스 이름
ex) mysql -u root (계정을 만들지 않았으므로, root 계정을 이용해서 접속)
 
2. 데이터 베이스 추가
mysqladmin -u root -p create  데이터베이스명
※ 데이터 베이스를 추가 하려면 mysqladmin을 사용 합니다. create 는 생성할때 씁니다.
ex) mysqladmin -u root -p jsp(만들고자 하는 데이터베이스 이름)
※ Enter password가 나오는데, 여기서는 루트(root) 계정의 암호를 입력합니다.
루트계정의 암호는 mysql설치시에 마지막 단계에서 암호설정한 그것 입니다.
 
3. 루트 계정비밀 번호 바꾸기
mysqladmin -u root -p password 새비밀번호
ex) mysqladmin -u root -p password 1004(새비밀번호)
※위의 방법은 root계정에 비밀번호가 설정된 상태이고, root계정에 비밀번호를 설정하지 않았을때는 -p옵션을 빼고 적어야 합니다.
 
4. 추가한 데이터베스에 사용자 계정 추가 및 권한 설정
① mysql에 접속
② 계정만들기   
(사용자 계정:abc(만들고자 하는 계정이름), 사용자 패스워드:1234(사용하고자 하는 비밀번호)
※숫자가 아니더라도 영문을 사용해도 됩니다.
 
③ ex)mysql> grant select,insert,update,delete,create,alter,drop
on jsp.*to 'abc'@'localhost'
identified by '1234';
※grant는 유저(user) 관리에 사용되는 명령어로 권한 설정을 합니다.
 
abc라는 계정에 select,insert,update,delete,create,alter,drop라는 권한을 주는 것 입니다.
sql에서는 ;(세미콜론)을 적기 전까지는 하나의 문장이 끝난것이 아니므로 여러 줄에 나누어서 입력해도 됩니다.
 
*mysql에 접속하면 명령어를 치고 나면 무조건 ;(세미콜론)을 붙여야 합니다.
 
5. 테이블 생성
테이블 생성 할때도 create문을 사용합니다.
 create table 테이블이름
ex)mysql> create table test;(테이블이름)
 
6. 테이블 삭제
drop table 테이블이름(삭제할 테이블 이름)
ex) drop table test;(삭제할 테이블 이름)
 
7. 현재 상태 보기
status
ex) mysql> status;
 
8. 테이블 목록 보기
show tables;
ex) mysql>show tables;
 
9. 데이터 베이스 목록 보기
show databases;
ex) mysql> show databases;
 
10. 테이블 구조 보기
explain tablesname;
ex) mysql> explain test;(테이블이름)
또는
describe tablename;
ex)mysql> describe test(테이블이름)
또는
desc 테이블명;
show create table 테이블명;
 
11. 데이터베이스 삭제
drop database jsp(테이블 이름)
ex)mysql> drop database jsp
 
이것말고로 많은데 기본적으로 이것만 나열했습니다.