2015년 11월 30일 월요일

MySQL 계정생성 및 DB접속(권한부여)

  1. root로 접속해서 데이터베이스를 생성
    mysql> create database test;
    mysql> show databases; -->생성 확인해보기
  2. 생성한 데이터베이스에 접속할 계정아이디와 패스워드를 만듦
    (grant all privileges on DB명.* to 아이디@'%' identified by '패스워드';)
    mysql> grant all privileges on test.* to test@'%' identified by 'test';

2015년 11월 29일 일요일

Spring Boot Appendix3 (Developer Tools)

Developer tools
(https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html)
Maven

<dependencies>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
   </dependency>
</dependencies>
Gradle
dependencies {
   compile("org.springframework.boot:spring-boot-devtools")
}
  • Property defaults
  • Automatic restart
  • LiveReload
  • Global settings
  • Remote applications

2015년 11월 28일 토요일

Prototype Pattern (원형 패턴)

의도
  • 생성할 객체의 종류를 명세하는 데에 원형이 되는 예시물을 이용하고, 그 원형을 복사함으로써 새로운 객체를 생성하는 패턴
이럴 때 사용하자.
  • 인스턴스화할 클래스를 런타임에 지정할 때(예: 동적로딩)
  • 제품 클래스 계통과 병력적으로 만드는 팩토리 클래스를 피하고 싶을 때
  • 클래스의 인트턴스들이 서로 다른 상태 조합 중에 어느 하나일 때
장점은?
  • 런타임에 새로운 객체를 넣고 빼기가 다른 패턴에 비해 유연하다.
  • 새로운 객체를 정의하는 것이 쉽다.
  • 서브 클래스의 수를 줄일 수 있다.
단점은?
  • 클래스 내부구조가 순환참조를 하고 있는경우 clone함수를 구현하기 어려울 수 있다.
코드
CProduct 클래스
class CProduct
{
public:
   virtual CProduct* Clone() = 0;
};

CPhone, CCar 클래스
class CPhone : public CProduct
{
public:
   CPhone() {};
   CPhone(const CPhone& rPhone) {};
   virtual CProduct* Clone() {
      return new CPhone(*this);
   };
};

class CCar : public CProduct
{
public:
   CCar() {};
   CCar(const CCar& rCar) {};
   virtual CProduct* Clone() {
      return new CCar(*this);
   };
};

실행부분
void main()
{
   CProduct* pPhone1 = new CPhone();
   CProduct* pPhone2 = pPhone1->Clone();

   delete pPhone1;
   delete pPhone2;

   CProduct* pCar1 = new CCar();
   CProduct* pCar2 = pCar1->Clone();

   delete pCar1;
   delete pCar2;
}

UML - class 다이어그램

참고
  • GoF의 디자인 패턴(개정판) 재사용성을 지닌 객체지향 소프트웨어의 핵심요소
  • http://blog.naver.com/icarus_buk/220390625010

Singleton Pattern (싱글톤 패턴)

의도
  • 클래스의 인스턴스가 하나만 생성이 되게 보장하며, 전역으로 설정이 되어 어디서든 접근이 가능하도록 제공하는 패턴
이럴 때 사용하자.
  • 클래스의 인스턴스가 하나여야 하고, 모든 사용자가 접근할 수 있도록 해야 할 때
장점은?
  • 인스턴스의 접근을 제어할 수 있다.
  • 전역 변수를 정의하여 발생하는 디버깅의 어려움 등 문제를 없앨 수 있다.
  • 인스턴스 개수 변경이 자유롭다.
코드
CEarth 클래스 (Singleton)

class CEarth
{
public:
   static CEarth* GetInstance() {
      if (pEarth == NULL)
         pEarth = new CEarth();
      return pEarth;
   };
private:
   CEarth() {};
private:
   static CEarth* pEarth;
};

실행부분

CEarth* CEarth::pEarth = NULL;
void main()
{
   CEarth* pEarth1 = CEarth::GetInstance();
   CEarth* pEarth2 = CEarth::GetInstance();

   if (pEarth1 == pEarth2)
      cout << "The 'pEarth1' is equal to The 'pEarth2'." << endl;
   else
      cout << "The 'pEarth1' isn't equal to The 'pEarth2'." << endl;
}

UML - class 다이어그램

참고
  • GoF의 디자인 패턴(개정판) 재사용성을 지닌 객체지향 소프트웨어의 핵심요소
  • http://blog.naver.com/icarus_buk/220390625010

2015년 11월 27일 금요일

Factory Method Pattern (팩토리 메소드 패턴)

의도
  • 객체를 생성하는 인터페이스는 미리 정의하고, 인스턴스를 만들 클래스의 결정은 서브클래스 쪽에서 내리는 패턴
이럴 때 사용하자.
  • 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때
  • 생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 때
  • 객체 생성의 책임을 몇 개의 보조 서브글래스 가운데 하나에게 위임하고, 어떤 서브클래스가 위임자인지에 대한 정보를 국소화시키고 싶을 때
장점은?
  • 어떤 객체를 생성할 것인지와는 무관하게 동일한 형태로 프로그래밍이 가능하다.
  • 클라이언트가 직접 객체를 생성하는 것보다 유연한 확장성 구조를 가지게 된다.
  • 서로 연관된 클래스들의 상속관계가 병렬로 존재하는 경우 한 쪽 상속 관계의 클래스들이 다른 쪽 상속 관계의 클래스 객체를 생성할 때 유용하다.
  • 상속관계에 있는 클래스들의 멤버 함수가 동일한 프로그램 로직을 가지고 있으면서 내부적으로 생성할 객체만 서로 다를 때 편리하다.
단점은?
  • 객체의 종류가 달라질 때마다 새로운 하위 클래스를 정의해야한다
코드
CProduct 클래스
class CProduct
{
public:
   CProduct() {};
   virtual ~CProduct() {};
   virtual string ToString() = 0;
};

CPhone 클래스
class CPhone : public CProduct
{
public:
   CPhone(string strName, int nPrice) { m_strName = strName; m_nPrice = nPrice; };
   virtual ~CPhone() {};

   virtual string ToString() {
      ostringstream sout;
      sout << "Name: " << m_strName << ", Price: $" << m_nPrice;
      return sout.str();
   }
private:
   string m_strName;
   int m_nPrice;
};

CFactory 클래스
class CFactory
{
public:
   CFactory() {};
   virtual ~CFactory() {};
   virtual CProduct* MakeProduct() = 0;
};

CPhoneFactory 클래스
class CPhoneFactory : public CFactory
{
public:
   CPhoneFactory(string strName, int nPrice) { m_strName = strName; m_nPrice = nPrice; };
   virtual ~CPhoneFactory() {};
   CProduct* MakeProduct() {
      return new CPhone(m_strName, m_nPrice);
   }
private:
   string m_strName;
   int m_nPrice;
};

실행부분
void main()
{
   auto_ptr<CFactory> apPhoneFactory(new CPhoneFactory("Phone1", 20));
   auto_ptr<CProduct> apPhone(apPhoneFactory->MakeProduct());

   cout << apPhone->ToString() << endl;
}

UML - class 다이어그램

참고
  • GoF의 디자인 패턴(개정판) 재사용성을 지닌 객체지향 소프트웨어의 핵심요소
  • http://taegony.tistory.com/48

2015년 11월 25일 수요일

CUBRID vs MySQL vs ORACLE SQL 타입별 비교

CUBRID vs MySQL vs ORACLE SQL 타입별 비교
CUBRID 8.4.1 vs MySQL 5.5.27 vs  ORACLE 10g 에 대한 SQL 관련 정보들을 비교한다.

1.    CUBRID와 데이터 타입
           1). DBMS별 데이터 타입 비교
구분 CUBRID MySQL Oracle
수치형 - - BINARY_FLOAT
BIGINT BIGINT -
NUMERIC(20)
DECIMAL DECIMAL DECIMAL
DOUBLE DOUBLE BINARY_DOUBLE
DOUBLE PRECISION DOUBLE PRECISION -
FLOAT FLOAT FLOAT
INT MEDIUMINT -
INT, INTEGER
SMALLINT
INTEGER INTEGER -
MONETARY - -
NUMERIC(p, s) - NUMBER(p, s)
NUMERIC(38, 0) - NUMBER(p,0)
NUMERIC(38, 15) - NUMBER
NUMERIC(M,D) FLOAT(M,D) or REAL(M,D) -
REAL - -
SHORT - -
SMALLINT BIT(1) (>MySQL-5.0) -
BOOL, BOOLEAN
TINYINT
SMALLINT[(M)]
비트열 BIT VARYING (1073741823) LONGBLOB BLOB
LONG RAW
BIT VARYING(16277215) MEDIUMBLOB  
BIT VARYING(255) TINYBLOB -
BIT VARYING(65535) BLOB -
BIT(n) BIT( > 1) (>MySQL-5.0) -
BITVARYING(n) BINARY(M) RAW(n)
VARBINARY(M)
날짜/시간 DATE DATE DATE
: MM/DD/YYYY : YYYY-MM-DD : YY/MM/DD
DATETIME DATETIME TIMESTAMP
: YYYY-MM-DD HH:MI:SS.FFF : YYYY-MM-DD HH:MI:SS TIMESTAMP WITH LOCAL TIMESTAMP WITH TIME ZONE
    : YY/MM/DD HH:MI:SS.FFFF
TIME TIME -
: HH:MI:SS : HH:MI:SS
TIMESTAMP TIMESTAMP TIMESTAMP
: YYYY-MM-DD HH:MI:SS : YYYY-MM-DD HH:MI:SS : YY/MM/DD HH:MI:SS.FFFFFFFFF
- YEAR[(2|4)] -
: YYYY
문자열 CHAR CHAR CHAR
NCHAR VARYING - -
NCHAR - NCHAR
VARCHAR(16277215) MEDIUMTEXT -
VARCHAR(255) TINYTEXT INTERVAL DAY TO SECOND
VARCHAR(255) ENUM('value1','value2',...) INTERVAL YEAR TO MONTH
VARCHAR(64) - ROWID
VARCHAR(64) - UROWID
VARCHAR(65535) TEXT -
VARCHAR VARCHAR NVARCHAR2
VARCHAR2
BLOB BLOB BLOB BLOB
/CLOB CLOB - CLOB
집합형 SET(VARCHAR(255)) SET('value1','value2',...) -
MULTISET - -
LIST - -
SEQUENCE - -
STRING LONGTEXT CLOB
- - LONG
- - NCLOB

           2). 마이그레이션 할 때 권장하는 데이터 타입 맵핑 테이블- MySQL to CUBRID
Date Types in MySQL Date Types in CUBRID
BIT(1) (>MySQL-5.0) SMALLINT
BIT( > 1) (>MySQL-5.0) BIT(n)
TINYINT SMALLINT
BOOL, BOOLEAN SMALLINT
SMALLINT[(M)] SMALLINT
INT
MEDIUMINT[(M)] INT
INT, INTEGER[(M)] INT
BIGINT
BIGINT[(M)] BIGINT
NUMERIC(20)
FLOAT[(M,D)] FLOAT
DOUBLE[(M,B)] DOUBLE
DECIMAL[(M[,D])] DOUBLE
DATE DATE
DATETIME DATETIME
TIMESTAMP[(M)] TIMESTAMP
TIME TIME
YEAR[(2|4)] CHAR(4)
CHAR(M) CHAR(n)
VARCHAR(M) [BINARY] VARCHAR(n)
BINARY(M) BIT VARYING(n)
VARBINARY(M) BIT VARYING(n)
TINYBLOB BIT VARYING(255)
TINYTEXT VARCHAR(255)
BLOB BIT VARYING(65535)
TEXT VARCHAR(65535)
MEDIUMBLOB BIT VARYING(16277215)
MEDIUMTEXT VARCHAR(16277215)
LONGBLOB BIT VARYING (1073741823)
LONGTEXT STRING
ENUM('value1','value2',...) VARCHAR(255)
SET('value1','value2',...) SET(VARCHAR(255))
FLOAT(M,D) or REAL(M,D) or DOUBLE PRECISION(M,D) NUMERIC(M,D)

           3). 마이그레이션 할 때 권장하는 데이터 타입 맵핑 테이블- ORACLE to CUBRID
Date Types in Oracle Date Types in CUBRID
BINARY_DOUBLE DOUBLE
BINARY_FLOAT FLOAT
BLOB BIT VARYING (1073741823)
CHAR(n) CHAR(n)
CLOB STRING
DATE DATE
DECIMAL(p, s) NUMERIC(p, s)
FLOAT FLOAT
INTERVAL DAY TO SECOND VARCHAR(255)
INTERVAL YEAR TO MONTH VARCHAR(255)
LONG STRING
LONG RAW BIT VARYING (1073741823)
NCHAR(n) CHAR(n)
NCLOB STRING
NUMBER(p, s) NUMERIC(p, s)
NUMBER NUMERIC(38, 15)
NUMBER(p,0) NUMERIC(38, 0)
NVARCHAR2(n) VARCHAR(n)
RAW(n) BIT VARYING(n)
ROWID VARCHAR(64)
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE DATETIME
UROWID VARCHAR(64)
VARCHAR2(n) VARCHAR(n)

2.    CUBRID 지원 연산자와 함수
           1). CUBRID 지원연산자
구분 CUBRID 연산자 MySQL 지원여부
논리 연산자 AND, && O
OR, || O
XOR O
NOT, ! O
비교 연산자 = O
<=> O
<>, != O
O
O
>= O
<= O
IS boolean_value O
IS NOT boolean_value O
산술 연산자 + O
- O
* O
/ O
DIV O
%, MOD O
포함 연산자 A SETEQ B X
A SETNEQ B X
A SUPERSET B X
A SUBSET B X
A SUPERSETEQ B X
A SUBSETEQ B X
비트 연산자 & O
| O
^ O
~ O
<<  O
>>  O

           2). CUBRID 지원함수
구분 CUBRID 함수(옵션) MySQL지원여부
비트함수 BIT_AND(expr) O
BIT_OR(expr) O
BIT_XOR(expr) O
BIT_COUNT (expr) O
문자열 함수 ASCII(str) O
BIN( n ) O
BIT_LENGTH ( string ) O
CHAR_LENGTH( string ) O
CHARACTER_LENGTH( string ) O
CHR( number_operand ) CHAR
CONCAT( string1, string2 [,string3 [, ... [, stringN]...]]) O
CONCAT_WS( string1, string2 [,string3 [, ... [, stringN]...]]) O
ELT(N, string1, string2, ... ) O
ELT(N, string1, string2, ... ) O
FIELD( search_string, string1 [,string2 [, ... [, stringN]...]]) O
FIND_IN_SET(str, strlist) O
INSERT( str, pos, len, string ) O
INSTR( string , substring [, position] ) O
LCASE ( string ) O
LEFT( string , length ) O
LENGTH( string ) O
LENGTHB( string ) X
LOCATE ( substring, string [, position] ) LOCATE
LOAD_FILE
LOWER ( string ) O
LPAD( char1, n, [, char2 ] ) O
LTRIM( string [, trim_string]) O
MID( string, position, substring_length ) O
OCTET_LENGTH ( string ) O
POSITION ( substring IN  string ) O
REPEAT( string, count ) O
REPLACE( string, search_string [, replacement_string ] ) O
REVERSE( string ) O
RIGHT( string , length ) O
RPAD( char1, n, [, char2 ] ) O
RTRIM( string [, trim_string]) O
SPACE(N) O
STRCMP( string1 , string2 ) O
SUBSTR( string, position [, substring_length]) O
SUBSTRING( string FROM  position [FOR  substring_length] ) O
SUBSTRING( string, position [, substring_length]) O
SUBSTRING_INDEX (string, delim, count) O
TRANSLATE( string, from_substring, to_substring ) X
TRIM ( [ [ LEADING | TRAILING | BOTH ] [ trim_string ] FROM ] string ) O
UCASE ( string ) O
UPPER ( string ) O
수치 연산 함수 ABS( number_operand ) O
ACOS( x ) O
ASIN ( x ) O
ATAN ( [y,] x ) O
ATAN2 ( y, x ) O
CEIL( number_operand ) CEILING
CONV(number,from_base,to_base) O
COS( x ) O
COT ( x ) O
DEGREES ( x ) O
DRAND( [seed] ) X
DRANDOM( [seed] ) X
EXP( x ) O
FLOOR( number_operand ) O
FORMAT ( x , dec ) O
GREATEST ( expression [, expression]* ) O
HEX(num) O
HEX(str) O
LEAST( expression [, expression]* ) O
LN ( x ) O
LOG10 ( x ) O
LOG2 ( x ) O
MOD(m, n) O
PI() O
POW( x, y ) O
POWER( x, y ) O
RADIANS ( x ) O
RAND( [seed] ) O
RANDOM( [seed] ) X
ROUND( number_operand, integer ) O
SIGN(number_operand) O
SIN( x ) O
SQRT( x ) O
TAN( x ) O
TRUNC( x[, dec] ) X
TRUNCATE( x, dec ) O
날짜/시간 함수 ADD_MONTHS ( date_argument , month ) X
ADDDATE(date, days) O
ADDDATE(date, INTERVAL expr unit) O
ADDTIME(expr1, expr2) O
CURDATE() O
CURRENT_DATE O
CURRENT_DATE() O
CURRENT_DATETIME X
CURRENT_DATETIME() X
CURRENT_TIME O
CURRENT_TIME() O
CURRENT_TIMESTAMP O
CURRENT_TIMESTAMP() O
CURTIME() O
DATE(date) O
DATE_ADD (date, INTERVAL expr unit) O
DATE_SUB (date, INTERVAL expr unit) O
DATEDIFF (date1, date2) O
DAY(date) O
DAYOFMONTH(date) O
DAYOFWEEK(date) O
DAYOFYEAR(date) O
EXTRACT ( field FROM date-time_argument ) O
FROM_DAYS(N) O
FROM_UNIXTIME ( unix_timestamp[, format] ) O
LAST_DAY ( date_argument ) O
LOCALTIME O
LOCALTIME() O
LOCALTIMESTAMP O
LOCALTIMESTAMP() O
MAKEDATE(year, dayofyear) O
MAKETIME(hour, min, sec) O
MINUTE(time) O
MONTH(date) O
MONTHS_BETWEEN (date_argument, date_argument) X
NOW() O
QUARTER(date) O
SEC_TO_TIME(second) O
SECOND(time) O
STR_TO_DATE(string, format) O
SUBDATE(date, days) O
SUBDATE(date, INTERVAL expr unit) O
SYS_DATE X
SYS_DATETIME X
SYS_TIME X
SYS_TIMESTAMP X
SYSDATE X
SYSDATETIME X
SYSTIME X
SYSTIMESTAMP X
TIME(time) O
TIME_TO_SEC(time) O
TIMEDIFF(expr1, expr2) O
TIMESTAMP(date [,time]) O
TO_DAYS(date) O
UNIX_TIMESTAMP( [date] ) O
UTC_DATE() O
UTC_TIME() O
WEEK(date[, mode]) O
WEEKDAY(date) O
YEAR(date) O
데이터 타입 변환 함수 DATE_FORMAT(date, format) O
TIME_FORMAT(time, format) O
TO_CHAR( date_time [, format[, date_lang_string_literal ]] ) X
TO_CHAR(number_argument[, format_argument ]) X
TO_DATE(string_argument[,format_argument[,date_lang_string_literal]]) X
TO_DATETIME(string_argument[,format_argument[,date_lang_string_literal]]) X
TO_NUMBER(string_argument[, format_argument ]) X
TO_TIME(string_argument[,format_argument [,date_lang_string_literal]]): X
TO_TIMESTAMP(string_argument[, format_argument[,date_lang_string_literal]]) X
집계함수 AVG    ( [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL ] expression ) O
COUNT ( * | [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL ] expression ) O
GROUP_CONCAT ([DISTINCT] {col | expression} O
                   [ORDER BY{col | unsigned_int}[ASC | DESC]]
                   [SEPARATOR str_val])
MAX    ( [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL ] expression ) O
MIN    ( [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL ] expression ) O
STDDEV_POP ( [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL] expression ) STD
SUM    ( [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL ] expression ) O
VAR_POP ( [ DISTINCT | UNIQUE | ALL] expression ) O
VAR_SAMP( [ DISTINCT | UNIQUE | ALL]  expression ) O
VARIANCE O
클릭 카운터 함수 INCR X
정보함수 CURRENT_USER O
DATABASE() O
DEFAULT(column_name) X
INDEX_CARDINALITY (table, index, key_pos) X
LAST_INSERT_ID() O
LIST_DBS() X
ROW_COUNT() O
SCHEMA() O
SYSTEM_USER() O
USER X
USER() O
VERSION() O
암호화 함수 MD5(string) O
조건 연산식과  함수 CASE control_expression simple_when_list[ else_clause ] END O
CASE searched_when_list [ else_clause ] END
COALESCE(expression [, ...]) O
DECODE( expression, search, result [, search, result]* [, default] ) O
IF( expression1, expression2, expression3 ) O
IFNULL( expr1, expr2 ) O
NULLIF(expr1, expr2) O
NVL( expr1, expr2 ) X
NVL2( expr1, expr2, expr3 ) X
CUBRID미지원 함수 ATN2 O
CRC32 O
DATENAME O
LOAD_FILE O
LOG O
MAKE_SET O
NCHAR O
REPLICATE O
SQUARE O
UNICODE O

   CUBRID 예약어
1). DBMS별 예약어 비교
CUBRID MySQL ORACLE
ABSOLUTE - -
- - ACCESS
ACTION ACTION -
ADD ADD ADD *
ADD_MONTHS - -
AFTER - -
ALIAS - -
ALL ALL ALL *
ALLOCATE - -
ALTER ALTER ALTER *
- ANALYZE -
AND AND AND *
ANY - ANY *
ARE - -
AS AS AS *
ASC ASC ASC *
ASSERTION - -
- ASENSITIVE -
ASYNC - -
AT - -
ATTACH - -
ATTRIBUTE - -
  - AUDIT
  AUTO_INCREMENT -
AVG - -
- BDB -
BEFORE BEFORE -
- BERKELEYDB -
BETWEEN BETWEEN BETWEEN *
BIGINT BIGINT -
- BINARY -
BIT BIT -
BIT_LENGTH - -
BLOB BLOB -
BOOLEAN - -
BOTH BOTH -
BREADTH - -
BY BY BY *
CALL CALL -
CASCADE CASCADE -
CASCADED - -
CASE CASE -
CAST - -
CATALOG - -
CHANGE CHANGE -
CHAR CHAR CHAR *
CHARACTER CHARACTER -
CHECK CHECK CHECK *
CLASS - -
CLASSES - -
CLOB - -
CLOSE - -
CLUSTER - CLUSTER
COALESCE - -
COLLATE COLLATE -
COLLATION - -
COLUMN COLUMN COLUMN
- COLUMNS -
- CONDITION -
- - COMMENT
COMMIT - -
COMPLETION - -
- - COMPRESS
CONNECT - CONNECT *
CONNECTION CONNECTION -
CONNECT_BY_ISCYCLE - -
CONNECT_BY_ISLEAF - -
CONNECT_BY_ROOT - -
CONSTRAINT CONSTRAINT -
CONSTRAINTS - -
CONTINUE CONTINUE -
CONVERT - -
CORRESPONDING - -
COUNT - -
CREATE CREATE CREATE *
CROSS CROSS -
CURRENT - CURRENT *
CURRENT_DATE CURRENT_DATE -
CURRENT_DATETIME - -
CURRENT_TIME CURRENT_TIME -
CURRENT_TIMESTAMP CURRENT_TIMESTAMP -
CURRENT_USER - -
CURSOR CURSOR -
CYCLE - -
DATA - -
DATA_TYPE - -
DATABASE DATABASE -
- DATABASES -
DATE DATE DATE *
DATETIME - -
DAY - -
DAY_HOUR DAY_HOUR -
- DAY_MICROSECOND -
DAY_MILLISECOND - -
DAY_MINUTE DAY_MINUTE -
DAY_SECOND DAY_SECOND -
DEALLOCATE - -
DEC DEC -
DECIMAL DECIMAL DECIMAL *
DECLARE DECLARE -
DEFAULT DEFAULT DEFAULT *
DEFERRABLE - -
DEFERRED - -
- DELAYED -
DELETE DELETE DELETE *
DEPTH - -
DESC DESC DESC *
DESCRIBE DESCRIBE -
DESCRIPTOR - -
- DETERMINISTIC -
DIAGNOSTICS - -
DICTIONARY - -
DIFFERENCE - -
DISCONNECT - -
DISTINCT DISTINCT DISTINCT *
DISTINCTROW DISTINCTROW -
DIV DIV -
DO - -
DOMAIN - -
DOUBLE DOUBLE -
DROP DROP DROP *
DUPLICATE - -
EACH - -
ELSE ELSE ELSE *
ELSEIF ELSEIF -
- ENCLOSED -
END - -
- ENUM -
EQUALS - -
ESCAPE - -
- ESCAPED -
EVALUATE - -
EXCEPT - -
EXCEPTION - -
EXCLUDE - -
- - EXCLUSIVE
EXEC - -
EXECUTE - -
EXISTS EXISTS EXISTS
- EXIT -
- EXPLAIN -
EXTERNAL - -
EXTRACT - -
FALSE FALSE -
FETCH FETCH -
FILE - FILE
- FIELDS -
FIRST - -
FLOAT FLOAT FLOAT *
FOR FOR FOR *
- FORCE -
FOREIGN FOREIGN -
FOUND FOUND -
- FRAC_SECOND -
FROM FROM FROM *
FULL - -
- FULLTEXT -
FUNCTION - -
GENERAL - -
GET - -
GLOBAL - -
GO - -
GOTO - -
GRANT GRANT GRANT *
GROUP GROUP GROUP *
HAVING HAVING HAVING *
- HIGH_PRIORITY -
HOUR - -
HOUR_MILLISECOND HOUR_MICROSECOND -
HOUR_MINUTE HOUR_MINUTE -
HOUR_SECOND HOUR_SECOND -
- - IDENTIFIED
IDENTITY - -
IF IF -
IGNORE IGNORE -
IMMEDIATE - IMMEDIATE *
IN IN IN *
- - INCREMENT
INDEX INDEX INDEX
INDICATOR - -
- INFILE -
INHERIT - -
- - INITIAL
INITIALLY - -
INNER INNER -
- INNODB -
INOUT INOUT -
INPUT - -
- INSENSITIVE -
INSERT INSERT INSERT *
INT INT -
INTEGER INTEGER INTEGER *
INTERSECT - INTERSECT *
INTERSECTION - -
INTERVAL INTERVAL -
INTO INTO INTO *
- IO_THREAD -
IS IS IS *
ISOLATION - -
- ITERATE -
JOIN JOIN -
KEY KEY -
- KEYS -
- KILL -
LANGUAGE - -
LAST - -
LDB - -
LEADING LEADING -
LEAVE LEAVE -
LEFT LEFT -
LESS - -
LEVEL - LEVEL *
LIKE LIKE LIKE *
LIMIT LIMIT -
LIST - -
- LINES -
- LOAD -
LOCAL - -
LOCAL_TRANSACTION_ID - -
LOCALTIME LOCALTIME -
LOCALTIMESTAMP LOCALTIMESTAMP -
- LOCK LOCK
- LONG LONG
- LONGBLOB -
- LONGTEXT -
LOOP LOOP -
LOWER - -
- LOW_PRIORITY -
- MASTER_SERVER_ID -
MATCH MATCH -
MAX - -
- - MAXEXTENTS
METHOD - -
- MEDIUMBLOB -
- MEDIUMINT -
- MEDIUMTEXT -
- MIDDLEINT -
MILLISECOND - -
MIN - -
MINUTE - -
- - MINUS
- MINUTE_MICROSECOND -
MINUTE_MILLISECOND - -
MINUTE_SECOND MINUTE_SECOND -
- - MLSLABEL
MOD MOD -
- - MODE
MODIFY - MODIFY
MODULE - -
MONETARY - -
MONTH - -
MULTISET - -
MULTISET_OF - -
NA - -
NAMES - -
NATIONAL NATURAL -
NATURAL - -
NCHAR - -
NEXT - -
NO NO -
- NO_WRITE_TO_BINLOG -
- - -
- - NOAUDIT
NONE - NOCOMPRESS
NOT NOT NOT *
- - NOWAIT
NULL NULL NULL *
NULLIF - -
- - NUMBER
NUMERIC NUMERIC -
OBJECT - -
OCTET_LENGTH - -
OF - OF *
OFF - -
- - OFFLINE
OID - -
ON ON ON *
- - ONLINE
ONLY - -
OPEN - -
OPERATION - -
OPERATORS - -
- OPTIMIZE -
OPTIMIZATION - -
OPTION OPTION OPTION *
- OPTIONALLY -
OR OR OR *
ORDER ORDER ORDER *
OTHERS - -
OUT OUT -
OUTER OUTER -
- OUTFILE -
OUTPUT - -
OVERLAPS - -
PARAMETERS - -
PARTIAL - -
- - PCTFREE
PENDANT - -
POSITION - -
PRECISION PRECISION -
PREORDER - -
PREPARE - -
PRESERVE - -
PRIMARY PRIMARY -
PRIOR - PRIOR *
PRIVATE - -
PRIVILEGES PRIVILEGES PRIVILEGES *
PROCEDURE PROCEDURE -
PROTECTED - -
PROXY - -
- - PUBLIC *
- PURGE -
QUERY - -
- - RAW
- - -
READ READ -
REAL REAL -
RECURSIVE - -
REF - -
REFERENCES REFERENCES -
REFERENCING - -
REGEXP REGEXP -
REGISTER - -
RELATIVE - -
RENAME RENAME RENAME
- REPEAT -
REPLACE REPLACE -
RESIGNAL - -
- - RESOURCE
- REQUIRE -
RESTRICT RESTRICT -
RETURN RETURN -
RETURNS - -
REVOKE REVOKE REVOKE *
RIGHT RIGHT -
RLIKE RLIKE -
ROLE - -
ROLLBACK - -
ROLLUP - -
ROUTINE - -
ROW - ROW
- - ROWID
ROWNUM - ROWNUM
ROWS - ROWS *
SAVEPOINT - -
SCHEMA - -
SCOPE - -
SCROLL - -
SEARCH - -
SECOND - -
- SECOND_MICROSECOND -
SECOND_MILLISECOND - -
SECTION - -
SELECT SELECT SELECT *
SENSITIVE SENSITIVE -
- SEPARATOR -
SEQUENCE - -
SEQUENCE_OF - -
SERIALIZABLE - -
SESSION - SESSION *
SESSION_USER - -
SET SET SET *
SET_OF - -
SETEQ - -
- - SHARE
SHARED - -
- SHOW -
SIBLINGS - -
SIGNAL - -
SIMILAR - -
SIZE - SIZE *
SMALLINT SMALLINT SMALLINT *
SOME SOME -
- SONAME -
- SPATIAL -
- SPECIFIC -
SQL SQL -
SQLCODE - -
SQLERROR - -
- SQL_BIG_RESULT -
- SQL_CALC_FOUND_ROWS -
- SQL_SMALL_RESULT -
- SQL_TSI_DAY -
- SQL_TSI_FRAC_SECOND -
- SQL_TSI_HOUR -
- SQL_TSI_MINUTE -
- SQL_TSI_MONTH -
- SQL_TSI_QUARTER -
- SQL_TSI_SECOND -
- SQL_TSI_WEEK -
- SQL_TSI_YEAR -
SQLEXCEPTION SQLEXCEPTION -
SQLSTATE SQLSTATE -
SQLWARNING SQLWARNING -
- SSL -
- - START
- STARTING -
STATISTICS - -
- STRAIGHT_JOIN -
STRING - -
- STRIPED -
STRUCTURE - -
SUBCLASS - -
SUBSET - -
SUBSETEQ - -
SUBSTRING - -
- - SUCCESSFUL
SUM - -
SUPERCLASS - -
SUPERSET - -
SUPERSETEQ - -
- - SYNONYM
SYS_CONNECT_BY_PATH - -
SYS_DATE - -
SYS_DATETIME - -
SYS_TIME - -
SYS_TIMESTAMP - -
SYS_USER - -
SYSDATE - SYSDATE
SYSDATETIME - -
SYSTEM_USER - -
SYSTIME - -
TABLE TABLE TABLE *
- TABLES -
TEMPORARY - -
- TERMINATED -
TEST - -
- TEXT -
THEN THEN THEN *
THERE - -
TIME TIME -
TIMESTAMP TIMESTAMP -
- TIMESTAMPADD -
- TIMESTAMPDIFF -
TIMEZONE_HOUR - -
TIMEZONE_MINUTE - -
- TINYBLOB -
- TINYINT -
- TINYTEXT -
TO TO TO *
TRAILING TRAILING -
TRANSACTION - -
TRANSLATE - -
TRANSLATION - -
TRIGGER - TRIGGER
TRIM - -
TRUE TRUE -
TRUNCATE - -
TYPE - -
- - UID
UNDER - -
- UNDO -
UNION UNION UNION *
- - -
UNIQUE UNIQUE UNIQUE *
UNKNOWN - -
- UNLOCK -
- UNSIGNED -
UPDATE UPDATE UPDATE *
UPPER - -
USAGE USAGE -
USE USE -
USER - USER *
- USER_RESOURCES -
USING USING -
UTIME - -
- UTC_DATE -
- UTC_TIME -
- UTC_TIMESTAMP -
- - VALIDATE
VALUE - -
VALUES VALUES VALUES *
- VARBINARY -
VARCHAR VARCHAR VARCHAR *
- - VARCHAR2
VARIABLE - -
- VARCHARACTER -
VARYING VARYING -
VCLASS - -
VIEW - VIEW *
VIRTUAL - -
VISIBLE - -
WAIT - -
WHEN WHEN -
WHENEVER - WHENEVER *
WHERE WHERE WHERE
WHILE WHILE -
WITH WITH WITH *
WITHOUT - -
WORK - -
WRITE WRITE -
XOR XOR -
YEAR - -
YEAR_MONTH YEAR_MONTH -
- ZEROFILL -
ZONE - -