1. Home
  2. Docs
  3. 데이터베이스
  4. MYSQL
  5. 자주 사용하는 명령어

자주 사용하는 명령어

1.계정 생성 및 삭제, 패스워드 변경

#생성
create user '사용자ID'@'IP/localhost/%' identified by '비밀번호';

#삭제
drop user '사용자ID'@'IP/localhost/%';

#root 계정 패스워드 변경
alter user 'root'@'localhost' identified by '비밀번호';
flush privileges;

2.스키마(DB) 생성 및 확인

#DB 생성
create database DB이름;

#DB 삭제
drop database DB이름;

#현재 DBMS에 있는 모든 DB 확인
show databases;

#사용한 DB 선택
use db이름;

#현재 DB에 있는 테이블 확인
show tables;

#테이블 구조(스키마) 확인(DESCRIBE명령어)
desc table이름;

3.DB 권한 부여

#권한 부여
GRANT ALL PRIVILEGES ON 'DB명'.'테이블' TO '사용자ID'@'localhost' IDENTIFIED BY '비밀번호';
flush privileges;
#SELECT, INSERT, UPDATE, DELETE, ... : 권한을 일부분을 추가

#사용자에게 부여된 권한 확인
SHOW GRANTS FOR test_user@localhost;

#권한 삭제
REVOKE ALL ON 'DB명'.'테이블명' FROM '사용자ID'@'IP';

4.테이블 추가 예시

CREATE TABLE 테이블명(                               -> 테이블 생성 명령어
  칼럼명 INT(11) NOT NULL AUTO_INCREMENT,            -> 칼럼 생성
  CONSTRAINT testTable_PK PRIMARY KEY(id)            ->제약조건이라는 의미입니다. 테이블명의 PRIMARY KEY를 id 컬럼으로 지정하겠다는 의미, 이 제약조건의 이름을 testTable_PK로 지정한 것
);

#예시
CREATE TABLE testTable(
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  ouccupation VARCHAR(20) NULL,
  height SMALLINT,
  profile TEXT NULL,
  date  DATETIME,
  CONSTRAINT testTable_PK PRIMARY KEY(id)
);

(1) 테이블을 생성하는 명령어입니다.
(2) id라는 컬럼을 추가하는 데, INT 타입으로 지정합니다. NOT NULL은 값을 비워둘 수 없음을 의미합니다. AUTO_INCREMENT는 자동으로 값이 1씩 증가하도록 설정하는 옵션입니다.
(3) name이라는 컬럼을 추가하는데, 가변길이로 20글자까지 허용합니다. (20글자가 넘어가면 20글자에서 자릅니다.)
(4) 위와 동일하지만, 값을 비워두는 것을 허용합니다.
(5) SMALLINT는 INT보다 가질 수 있는 값의 범위가 작습니다. 메모리 측면에서 이득입니다.
(6) TEXT는 아주 긴 문자열을 취급할 때 사용합니다.
(7) DATETIME은 날짜와 시간에 관한 타입입니다.
(8) CONSTRAINT는 제약조건이라는 의미입니다. testTable의 PRIMARY KEY를 id 컬럼으로 지정하겠다는 의미이며, 이 제약조건의 이름을 testTable_PK로 지정한 것입니다.

5. 테이블 칼럼 추가, 제거

#칼럼 추가
alter table 테이블명
add 추가할 칼럼명 데이터유형;

#칼럼 삭제
alter table 테이블명
drio column 삭제할칼럼명;

#칼럼명 변경
alter table 테이블명
change 구칼럼명 신칼럼명 데이터타입;

#칼럼 제약 조건 추가
alter table 테이블명
add constraint 제약조건명 제약조건 (칼럼명);

6. 캐릭터셋 변경

#현재 캐릭터셋 확인
show variables like 'c%';

#캐릭터 셋 변경
# 버젼에 따라 /etc/my.cnf 들어가서 [mysqld] 밑에 하위 문구 추가 후 재시작
character_set_server = utf8

[참고문헌1]https://gommin.tistory.com/17

[참고문헌2]https://sangjjang.tistory.com/353

7. DB종료

mysqladmin -u root -p shutdown

How can we help?