여기에서는 MySQL 사용법으로 데이타베이스 생성, 테이블 생성, 데이타를 입력할 컬럼 생성 방법들을 살펴봅니다.
Table of contents
목차 보이기
데이타베이스 생성
데이타베이스 생성은은 아래 명령을 사용합니다.
CREATE DATABASE Database_name default CHARACTER SET UTF8;
Code language: PHP (php)
- GRANT는 사용자에게 데이터 베이스의 사용 권한을 적용
ALL PRIVILEGES는 데이터베이스에 대한 모든 권한을 부여하는 명령
이 권한으로 데이터베이스 삭제도 가능 - ON Database_name.*
권한 부여 대상을 데이터베이스 Database_name로 지정
Database_name.* 는 데이터베이스 Database_name의 모든 테이블에 권한을 미친다는 것을 의미 - TO User_name@localhost
사용 권한을 받는 사용자는 User_name이며
localhost는 말 그대로 로컬에서만 연결 가능(127.0.0.1) - IDENTIFIED BY ‘password’ 사용자의 비밀번호 설정
GRANT ALL PRIVILEGES ON Database_name.* TO study_user@localhost IDENTIFIED BY 'study';
Code language: PHP (php)
테이블 생성 및 컬럼 생성
테이블 생성 문법은 아래와 같습니다.
- IF NOT EXISTS 명령은 데이타베이스에 이미 있는 테이블 이름이라면 오류를 발생하기 때문에, 이런 불필요한 우류를 발생하지 않으려면 이 명령으로 스킵하도록 만듭니다.
- tableName : 작성하려는 테이블의 이름으로 정규화된 이름이어야 합니다.
- 테이블 이름은 따옴표없이 또는 `
tableName
‘과 같은 백틱 기호를 사용해 지정할 수 있습니다. - 엔진(ENGINE)은 테일블을 저장한 스토리지 엔진을 지정할 수 있습니다.
기본은 InnoDB로 아무런 지정하지 않으면 InnoDB로 지정됩니다.
. MEMORY
. CSV
. HEA 등을 대신할 수 있다, - 체크섬
전체 테이블에 대한 체크섬을 저장하려면 1로 설정합니다.
이는 일반적으로 손상된 테이블이 없는지 확인하는데 사용됩니다.
CREATE TABLE IF NOT EXISTS tableName (
column1 datatype,
column2 datatype,
....
)
ENGINE='MEMORY',
CHECKSUM=1;
Code language: PHP (php)
테이블 이름 명명법
A. 테이블 이름에 사용되는 문자
- 기본 문자를 모두 사용할 수는 있지만
- 숫자만으로 테이블 이름은 지을 수 없습니다.
예를들어 ‘23456’은 테이블 이름으로 사용할 수 없습니다. - 테이블 이름에서 사용할 수 있는 문자 목록
. ASCII : [0-9, a-z, A-Z $ _]
. 확장 : U + 0080 .. U + FFFF - 테이블 및 데이터베이스 이름은 백틱 문자(`)로 인용 가능
- 테이블 및 데이타베이스 이름에는 마침표(.)를 사용할 수 없음
- 테이블 및 데이터베이스 이름에는 ‘$’및‘_’특수 문자가 포함될 수 있음
이름 길이 : 64문자
컬럼 생성 문법
- 컬럼 중 기본 키로 설정된 컬럼에는 primary key 옵션을 추가합니다.
아래 생성한 customer 테이블에서는 ID컬럼에 기본키(primary key)옵션을 주었습니다. - 컬럼 중 기본 키로 설정된 컬럼에는 AUTO_INCREMENT 옵션을 사용할 수 있습니다.
이는 ID와 같은 컬럼에 자동으로 1,2,3,4,처럼 값이 증가되는 것입니다. - not null 옵션은 컬럼값을 반듯이 채워야 한다는 것 의미
기본은 빈칸을 허용하는 null임 - 컬럼 이름 다음에는 컬럼 속성 부여, int(정수), char(문자) 등
CREATE TABLE IF NOT EXISTS customer (
ID int not null AUTO_INCREMENT primary key,
name varchar(20) not null,
age int null,
address char(25) null,
salary decimal(18, 2) null
)
ENGINE='MEMORY';
Code language: PHP (php)
테이블 복제 및 복사
이미 만들어 운영하고 있는 데이블을 그대로 복제하거나 테이블 형식만 복사항 필요가 있습니다.
LIKE 명령으로 테이블 복제
LIKE 명령을 사용하면 기존 테이블과 동일한 이름 및 속성을 가진 새로운 테이블을 만들 수 있습니다. 이 명령 사용 문법은 아래와 같습니다.
CREATE TABLE tableName1 LIKE tableName2
Code language: PHP (php)
이 명령을 사용하면 실제 테이블 데이터는 없는 열 이름과 속성만 복제됩니다.
SELECT 명령을 사용해 테이블 복제
위의 LIKE 명령과 달리 SELECT 명령을 사용하면 테이블의 속성과 데이터가지 모두 복사됩니다. 완전히 똑같은 새로운 테이블이 만들어지는 것으로, 거의 백업과도 같다고 볼 수 있습니다.
CREATE TABLE tableName1 AS SELECT * FROM tableName2;
Code language: PHP (php)
참고
MySQL 사용법, 데이타베이스 & 테이블 & 컬럼 생성하기
MySQL 사용법, 최근 데이터 조회 방법, 최근 3개월 데이터 등등