DB 생성하기
DB 삭제
User 생성하기
User 생성
- create user {user-name}@'{host}' identified by '{password}';
- ex : create user gwonyeong@'%' identified by 'pass!'
- %는 모든 ip에 접속 가능하다는 뜻.
- %대신 localhost라면 로컬환경에서만 접속 가능할 것임.
유저 삭제
- drop user '{user-name}'@'{host}';
권한 부여
- grant all privileges on . to '{user-name}'@'{host}';
- .는 모든 db에 관해서 select, insert 등 모든 권한을 부여하겠다라는 뜻.
- testdb.* 라고 하면 testdb에서만 활동 가능
- privileges는 특권, 권리 라는 뜻.
적용하기
- flush privileges;
- 권한 부여를 마친 뒤에 적용을 해주어야 정상 작동됨!
권한 확인
- show grants for {user-name}@'{host}'
Create TABLE
CREATE TABLE [IF NOT EXITST] Student (
#IF NOT EXISTS : 데이터의 값이 있으면 업데이트 해주고 없으면 새로 만들어줘라.
id int unsigned not null auto_increment COMMENT '학번'
# unsigned : 음수가 나올 수 없음
# auto_increment : 자동으로 값이 1씩 증가
name varchar(31) not null COMMENT '학생명'
# COMMENT: 주석의 느낌, 메모
createdate timestamp not null DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시'
# CURRENT_TIMESTAMP: 현재의 시간
PRIMARY KEY (id),
FOREIGN KEY {key-name}
)
A와 같은 구조의 테이블 만들기
- create TABLE {TABLE-name} like A;
A와 같은 구조, 같은 데이터의 테이블 만들기
- create TABLE {TABLE-name} AS select * from A;
- primary key같은 인덱스는 따라오지 않으니 다시 설정해주어야 함!
자주 쓰는 column 타입
number
- tinyiny 1byte
- smallint 2byte
- mediumint 3byte
- int 4byte
- float (M,D)
date
- date 3byte
- timestamp
- year
@@time_zone
string
- char(n)
- varchar(n)
- text 65535 byte
Create TABLE Tips
- Timestamp : ON UPDATE CURRENT_TIMESTAMP
- show create TABLE {TABLE-name}
- truncate TABLE {TABLE-name}
- 해당 DB의 데이터를 모두 삭제해버림. (테이블을 남아있음)
- drop TABLE {TABLE-name}
alter TABLE Dept
add column workdate
timestamp not null defalut current_timestamp
on update current_timestamp;
default로 현재의 시간을 넣어놓고 column이 업데이트 될 떄마다 시간 값 변경
Alter TABLE
- Alter TABLE [Add | Modify | Change | Drop] Column ...
- Modify : 타입을 변경
- Change : 이름을 변경
- ALTER TABLE t1 AUTO_INCREMENT=1;
- auto_increment의 수를 조작함.
- id같은 값에 auto_increment를 넣었으면 다시 1로 초기화 한다거나 할 떄 사용.
- ALTER TABLE t1 RENAME t2;