Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section


Column
width75%

INSERT


insert_stmt:

insert_column_list:

value_list:


set_list:


Code Block
insert_stmt ::= 'INSERT INTO' table_name ( '(' insert_column_list ')' )? 'METADATA'? 'VALUES' '(' value_list ')' ( 'ON DUPLICATE KEY UPDATE' ( 'SET' set_list )? )?
insert_column_list ::= column_name ( ',' column_name )*
value_list ::= value ( ',' value )*
set_list ::= column_name '=' value ( ',' column_name '=' value )*


Code Block
create table test (number int,name varchar(20));
Created successfully.
insert into test values (1,"test");
1 row(s) inserted.
insert into test(name,number) values ("test",2);
1 row(s) inserted.


특정 테이블에 값을 입력하는 구문이다. 한 가지 특이한 점은 Column_List에서 지정되지 않은 컬럼에는 모두 NULL 값으로 채워진다는 것이다. 이는 입력의 편의성과 저장 공간의 효율화를 위해 채택된 로그 파일의 특성을 고려한 정책이다.

METADATA는 tag table에만 사용이 가능하다.


목차


Column
Ui text box
Table of Contents
maxLevel3
indent30px
exclude목차
classtoc




INSERT ON DUPLICATE KEY UPDATE

...

  • 기본 키가 지정된 휘발성 테이블에 대해서만 수행 가능하다.

  • WHERE 절에는 (기본 키 컬럼) = (값) 의 조건만 허용되며, 다른 조건과 함께 작성할 수 없다.

  • 기본 키 컬럼이 아닌 다른 컬럼을 조건에 사용할 수 없다.


delete_from_tag_where_stmt:

Image Added

Code Block
sql
sql
delete_from_tag_where_stmt ::= 'DELETE FROM' table_name 'WHERE' tag_name '=' value ( and tag_time '<' datetime_expression  )?

Tag 테이블은 아래와 같이 2가지 방식의 삭제쿼리가, 추가적으로 지원된다.

...

Code Block
languagesql
-- tag name 기준 삭제
DELETE FROM tag where tag_name = 'my_tag_2021'

-- tag name 와 tag time 기준 삭제
DELETE FROM tag where tag_name = 'my_tag_2021' and tag_time < TO_DATE('2021-07-01', 'YYYY-MM-DD');
  • 삭제 쿼리가 실행된 후에, 삭제된 row가 저장공간에서 물리적으로 삭제되기 까지 걸리는 시간은, DBMS의 동작상황에 따라서 다를 수 있다.

LOAD DATA INFILE

...

load_data_infile_stmt:

...