SQL

[ SQL ] Tibero DML

Jerry_JH 2022. 1. 2. 21:30
728x90

ORACLE 과 동일한 명령어는 많지만, 조금씩 틀린점이 있다. 


INSERT

1. 직접넣기 

  • 기본구조
    INSERT INTO [TABLE NAME](COLUMN1 COLUMN2, COLUMN3..)
    VALUES(COLUMN1 DATA, COLUMN2 DATA, COLUMN3 DATA);​
  • Example
    INSERT INTO COMPANY.EMPLOYEE(NAME,AGE) 
    VALUES (jerry, 26);

COMPANY 스키마 EMPLOYEE 테이블의 NAME,AGE의 데이터를 추가하는 쿼리이다.

만약 TABLE의 모든컬럼 값을 DATA에 넣으면 컬럼은 생략이 가능하다.


2. 간접넣기

  • 기본구조 
  • INSERT INTO [TABLE NAME](COLUMN1, COLUMN2, COLUMN3) SELECT COLUMN1 DATA, COLUMN2 DATA, COLUMN3 DATA FROM [OTHER TABLE NAME] ..​
  • Example
    INSERT INTO COMPANY.EMPLOYEE (NAME, AGE, ADDRESS)
    SELECT *
    FROM COMPANY2.EMP
    WHERE NAME LIKE ('jerry%');​
     

다른 테이블의 있는 데이터를 넣는 방법도 있다.

예시에서는 COMPANY2에서 jerry라는 이름으로 시작하는 데이터를 EMPLOYEE 테이블의 넣는 방법이다.

 

INSERT는 괄호안에 컬럼이랑 넣을려고 하는 데이터의 수가 일치해야 가능하므로 주의.

 


SELECT 

  • 기본구조
SELECT [COLUMN]
FROM [TABLE NAME]
WHERE [조건]
GROUP BY [COLUMN]
HAVING [GROUP 조건]
ORDER BY [COLUMN]; -- DESC : 내림차순
  • Example
SELECT AGE , COUNT(1)
FROM COMPANY.EMPLOYEE
WHERE AGE > 25
GROUP BY AGE ;

SELECT는 데이터를 조회하는 기능으로 조건도 다양하게 사용할 수 있고, 쓰임새도 다양하게 활용할 수 있다. 

 

예시는 EMPLOYEE 테이블의 나이가 25살 초과이고 AGE를 그룹으로 묶어서 총 몇명이 있는지 확인하는 쿼리이다.

 

 


UPDATE

  • 기본구조
UPDATE [TABLE NAME]
SET [COLUMN NAME] = [수정값]
WHERE [COLUMN NAME] = [수정해야되는값] ;
  • Example
UPDATE COMPANY.EMP
SET NAME = 'jerry'
WHERE NAME = 'TOM' OR NAME='je' ;​

COMPANY 스키마 EMP 테이블의 이름이 TOM 이나 je 면 jerry로 변경하도록 하는 쿼리이다. 

 


DELECT

  • 기본구조
    DELETE FROM [TABLE NAME];
    -- WHERE [조건]
  • Example
    DELETE FROM COMPANY.EMPLOYEE
    WHERE AGE > 20 ;​
     

EMPLOYEE 테이블에서 나이가 20 초과인 데이터는 모두 다 삭제하는 쿼리이다.

조건은 안넣으면 해당 테이블의 데이터는 다 삭제되므로 주의 (DBeaver는 경고문도 나온다.)

또한 삭제 테이블의 PK를 FK로 사용하고 있는 테이블이 있다면 오류가 발생하거나 미리 설정한 값으로 변경될 수 있다.

 

 

728x90