1. 개념 및 기본 -바닥부터 배우는 Mysql -
-SHOW DATABASES;
-SHOW TABLES;
-DESC 테이블이름;
-DESCRIBE 테이블이름;
-EXPLAIN 테이블이름;
테이블, 필드, 레코드의 3가지 구성.
"이름", "전화번호", "주소" 형식의 주소록 테이블을 만들 때, 각각의 구분을 필드라고 하며, 한 사람에 대한 "이름", "전화번호", "주소"의 정보를 기록한 하나의 데이터를 레코드라고 한다.
데이터베이스 관리 시스템(DBMS)
RDBMS: stands for Relational DataBase Management System.
DBMS는 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공유할 수 있도록 관리해 주는 소프트웨어 시스템이다.
MySQL도 DBMS의 한 종류이다.
SQL keywords는 대소문자 구별이 없으나, 주로 대문자를 사용한다.
SQL명령 뒤에는 각 명령을 구분하기 위해서 세미콜론(;)을 사용한다.
문자 데이터일 경우 ''를 사용. 숫자 데이터는 그냥 사용.
자주 쓰이는 명령어.
'-- ', '#' : 한 줄 주석.(--를 사용할 경우 공백이 필요하다.)
'/* */ ': 여러 줄 주석.
SELECT : 데이터 검색.
UPDATE : 데이터 수정.
DELETE : 데이터 삭제.
INSERT INTO : 새 데이터 삽입.
1. DATABASE
CREATE DATABASE DB명 - 새 데이터베이스 생성.
ALTER DATABASE DB명 - 데이터베이스 수정.
USE DATABASE DB명 - 데이터베이스 선택.
DROP DATABASE DB명 - 데이터베이스 삭제
2. TABLE
먼저 DATABASE를 생성(CREATE)하고 선택(USE)한 후에 TABLE을 만든다.
CREATE TABLE - 테이블 생성.
ALTER TABLE - 테이블 수정.
DROP TABLE - 테이블 삭제.
3. FIELD(=COLUMN)
필드의 데이터 타입: text, number, Date/Time 3가지가 있다.
TEXT TYPES(참고만 할 것):
CHAR(n) : n개의 문자 저장. 크기는 n Byte. (n <= 255)
VARCHAR(n) : 최대 n개까지 문자 저장. 크기는 문자길이에 따라 가변적. (n <= 255)
255보다 큰 수를 입력하면 자동으로 TEXT 타입으로 바뀐다.
*모든 데이터의 크기가 비슷하다면, CHAR가 더 효율적이다.
TINYTEXT : 최대 255 문자까지 저장.
TEXT : 최대 65535 문자까지 저장.
BLOB(Binary Large OBjects) : 최대 65535byte의 데이터 저장.
MEDIUM TEXT : 최대 16,777,215 문자까지 저장.
MEDIUM BLOB : 최대 16,777,215 byte의 데이터 저장.
LONGTEXT : 최대 4,294,967,295 문자까지 저장.
LONGBLOB : 최대 4,294,967,295 byte의 데이터 저장.
* ENUM : ENUM('value1','value2','value3','value4',.....)/* value를 65535개 지정 가능.
value1(1), value2(2), value3(3),...... 각각의 값은 인덱스 번호가 지정된다.(괄호 안의 번호)
NULL 값의 인덱스는 NULL이 된다.
없는 value를 입력한 경우 에러로 판정하여 "0"의 인데스 번호를 갖는다.
* SET : ENUM과 같으나 여러 개의 VALUE를 하나의 인데스로 지정할 수 있다.
NUMBER TYPES(참고만 할 것):
AUTO_INCREMENT : int 타입을 자동 증가 시키기 위한 옵션.
TINYINT(SIZE) : -128 ~ 127 (normal), 0 ~ 255 (unsigned)
SMALLINT(SIZE) : -32768 ~ 32767 (normal), 0 ~ 65535 (unsigned)
MEDIUMINT(SIZE) : -8388608 ~ 8388607 (normal), 0 ~ 16777215 (unsigned)
INT(SIZE) : -2147483648 ~ 2144483647 (normal), 0 ~ 4294967295 (unsigned)
BIGINT(SIZE) : -922337036854775808 ~ 922337036854775807 (normal), 0 ~ 18446744073709551615 (unsigned)
FLOAT(SIZE, d) : 최소 +_1.175494351E-38 ~ 최대 +_3.402823466E_38
DOUBLE(SIZE, d) : 최소 ±1.7976931348623157E-308, 최대 ±2.2250738585072014E+308
DECIMAL((SIZE, d) : 숫자를 문자로 인식하여 저장한다.
DATE TYPES (참고만 할 것):
DATE() : 'YYYY-MM-DD'형식. '1001-01-01' ~ '9999-12-31' 까지 가능. 3byte 필요.
DATETIME() : 'YYYY-MM-DD HH:MM:SS'형식. '1001-01-01 00:00:00' ~ '9999-12-31 23:59:59'까지 가능. 8byte 필요.
TIMESTAMP() : '1970-01-01 00:00:00' 이후부터 초를 숫자로 저장. 약 40억 초 저장 가능(=2037년까지). 4byte 필요.
TIME() : 'HH:MM:SS' 형식. '-838:59:59' 에서 '838:59:59' 의 값이 가능. 3 byte 필요.
YEAR(n) : 연도만 저장. n=2(2자리 연도: 70~69). n=4(4자리 연도: 1970~2069) 1byte 필요.
*DATETIME과 TIMESTAMP는 같은 형식을 출력하는 것 같지만 매우 다르게 작동한다.
TIMESTAMP를 사용한 경우에는INSERT or UPDATE시 자동으로 현재 시간이 저장되고 출력 형식도
YYYYMMDDHHMISS, YYMMDDHHMISS, YYYYMMDD, YYMMDD 등 다양하게 지정할 수 있다.
'COMPUTER > Mysql' 카테고리의 다른 글
1. Mysql 함수(1) -바닥부터 배우는 Mysql - (0) | 2017.01.27 |
---|---|
5. Mysql: 기본 명령문(4) -바닥부터 배우는 Mysql - (0) | 2017.01.24 |
4. Mysql: 기본 명령문(3) -바닥부터 배우는 Mysql - (0) | 2017.01.22 |
3. Mysql: 기본 명령문(2) -바닥부터 배우는 Mysql - (0) | 2017.01.21 |
2. Mysql: 기본 명령문(1) -바닥부터 배우는 Mysql - (0) | 2017.01.20 |