두 개 이상의 테이블을 결합하여 여러 행을 검색하는 것입니다.

 

SELECT * FROM weather JOIN cities ON (weather.city = cities.name);

실행 결과

 

JOIN TYPE

 

 

SELECT * FROM weather LEFT OUTER JOIN cities ON (weather.city = cities.name);

LEFT JOIN 실행 결과

SELECT CURRENT_USER, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;

실행 결과

 

이번달의 첫번째 날과 마지막 날 구하기 입니다.

 

SELECT cast(date_trunc('month',current_date) as date) as firstday, (date_trunc('MONTH', current_date) + INTERVAL '1 MONTH - 1 day')::date lastday;

실행 결과

 

SELECT (last_name || '_' || first_name) AS full_name, last_name, first_name FROM employees

실행 예제

 

COALESCE(A, B);

 

A값이 NULL일 경우 B로 반환합니다.

 

select category_id, description, COALESCE(description, 'empty') as COALESCE_RESULT from categories;

 

실행 결과

 

두 개 이상의 쿼리를 한번에 출력할 때 사용합니다.

 

출력할 때의 컬럼의 개수가 같아야 합니다.

 

예를 들어 첫번째 쿼리의 출력되는 컬럼은 2개인데 두번째 쿼리의 출력되는 컬럼은 1개라면

 

오류 발생합니다.

 

SELECT company_name FROM customers
UNION
SELECT address FROM suppliers;

실행 결과1

 

SELECT (ROW_NUMBER() OVER()) AS ROWNUM, * FROM customers limit 10

실행 예제1

 

 

SELECT * FROM customers limit 10

실행 예제2

 

테이블에 새로운 행을 삽입하기.

 

INSERT INTO COMPANY
 ( ID
  ,NAME
  ,AGE
  ,ADDRESS
  ,SALARY
  ,JOIN_DATE)
VALUES 
( 1
 ,'Paul'
 ,32
 ,'California'
 , 20000.00
);

스키마는 테이블의 명명 된 모음입니다. 스키마에는 뷰, 인덱스, 시퀀스, 데이터 유형, 연산자 및 함수가 포함될 수도 있습니다. 스키마는 운영 체제 레벨의 디렉토리와 유사하지만 스키마를 중첩 할 수 없다는 점이 다릅니다

 

스키마란

- 테이블의 명명된 모음.

- 뷰, 인덱스, 시퀀스, 데이터 유형, 연산자, 함수가 포함될 수 있음.

- 중첩 되지 않음.

 

스키마를 먼저 생성합니다.

CREATE SCHEMA MYSCHEMA;

 

생성된 스키마에 테이블을 생성합니다.

CREATE TABLE MYSCHEMA.COMPANY
(
    ID       INT              NOT NULL PRIMARY KEY
   ,NAME     VARCHAR (20)     NOT NULL
   ,AGE      INT              NOT NULL
   ,ADDRESS  CHAR (25)
   ,SALARY   DECIMAL (18, 2)
);

 

테이블 삭제하기 입니다.

 

COMPANY 라는 이름을 가지는 테이블을 삭제 합니다.

DROP TABLE COMPANY

+ Recent posts