티스토리 뷰

Database

MySQL 사용하기

조묵헌 2018. 5. 11. 17:16

MySQL 연결 및 관리

커넥션 연결

mysql -uroot -p

# -uroot : root
# -p : 패스워드
# -h : localhost
# -P : 3306

커넥션 종료

quit
exit;

관려 명령의 종류나 문법은 DBMS에 따라 다르다. SELECT, INSERT, DELETE, UPDATE 이외의 단어로 시작하는 명령문은 MySQL의 관리 명령이다.

# 커넥션 상태 확인
show status like 'Threads_connected'; # Threads_connected 1

# MySQL이 가동된 시점부터의 경과시간(초)
show status like 'Uptime';

# MySQL이 실행한 SQL 쿼리의 수
show status like 'Queries';

데이터베이스 조회 및 생성

# 데이터베이스 목록 조회
show databases;

# 데이터베이스 사용
use test_db;

# 테이블 목록 조회
show tables;

테이블 정의 조회하기

# 테이블의 정의를 조회 (city 테이블)
show create table city\G

*************************** 1. row ***************************
       Table: city
Create Table: CREATE TABLE `city` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` char(35) NOT NULL DEFAULT '',
  `CountryCode` char(3) NOT NULL DEFAULT '',
  `District` char(20) NOT NULL DEFAULT '',
  `Population` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`ID`),
  KEY `CountryCode` (`CountryCode`),
  CONSTRAINT `city_ibfk_1` FOREIGN KEY (`CountryCode`) REFERENCES `country` (`Code`)
) ENGINE=InnoDB AUTO_INCREMENT=4081 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)


# 테이블의 열 정보를 조회
desc city;
+-------------+----------+------+-----+---------+----------------+
| Field       | Type     | Null | Key | Default | Extra          |
+-------------+----------+------+-----+---------+----------------+
| ID          | int(11)  | NO   | PRI | NULL    | auto_increment |
| Name        | char(35) | NO   |     |         |                |
| CountryCode | char(3)  | NO   | MUL |         |                |
| District    | char(20) | NO   |     |         |                |
| Population  | int(11)  | NO   |     | 0       |                |
+-------------+----------+------+-----+---------+----------------+
5 rows in set (0.09 sec)

데이터베이스 생성 및 수정

# 데이터베이스 생성
CREATE DATABASE test_db CHARACTER SET utf8 COLLATE utf8_general_ci;

# 데이터베이스 삭제
DROP DATABASE test_db;

테이블 생성 및 수정

테이블 생성하기

# posts table
CREATE TABLE `posts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `description` text NULL,
  `author` varchar(30) NOT NULL,
  `createdAt` datetime NOT NULL,
  `updatedAt` datetime NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

# users table
CREATE TABLE `users` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `authId` VARCHAR(50) NOT NULL,
  `username` VARCHAR(30),
  `password` VARCHAR(255),
  `salt` VARCHAR(255),
  `displayName` VARCHAR(50),
  `email` VARCHAR(50) NOT NULL,
  PRIMARY KEY (id),
  UNIQUE (authId)
) ENGINE = InnoDB;

# 특정 테이블과 같은 구조의 테이블을 생성하기 (데이터는 없음)
CREATE TABLE 신규 테이블명 LIKE 원본 테이블명;
CREATE TABLE citycopy LIKE city;

테이블 수정하기

# 테이블 이름 바꾸기
RENAME TABLE posts TO posts_backup;

# users table에 email field 추가하기
ALTER TABLE users ADD email VARCHAR(50);

테이블 삭제하기

DROP TABLE IF EXISTS `posts`;

'Database' 카테고리의 다른 글

MongoDB 설치와 실행  (0) 2018.05.11
MongoDB 기초  (0) 2018.05.11
MySQL Index, Join, Grant  (0) 2018.05.11
MySQL Query CRUD  (0) 2018.05.11
MySQL 사용하기  (0) 2018.05.11
Database 기본  (0) 2018.05.11
댓글
댓글쓰기 폼