postgresql

[postgres] like 절,limit 절,with절 ,having절, 제약조건

life... 2022. 7. 7. 23:47

 

https://www.tutorialspoint.com/postgresql/postgresql_having_clause.htm

 

PostgreSQL - LIKE 절

1.

테이블에서

봉급이 65000이상인 것의 나이보다 많은 것의 모든 정보를 가져와라

postgres-#

 

select * from company

where age > (select age from company where salary>65000);

 

2.

age 2 들어가는 데이터들의 모든 정보

 

------------------------------------------------------------------------------------------------------------------------------------------------------

 

PostgreSQL - LIMIT

3.

4개의 데이터 정보 출력

select * from company limit 4;

 

4.

3번째 위치에서 시작하여 3개의 데이터 출력

postgres=# select * from company limit 3 offset 2;

 

------------------------------------------------------------------------------------------------------------------------------------------------------

 

PostgreSQL - WITH

 

with쿼리는 쿼리에서 사용할 보조문을 작성하는 방법을 제공한다.

복잡하고 쿼리를 쉽게 읽을 있는 간단한 형식으로 분해하는데 도움이 된다.

 

cte 하나의 쿼리 대해서만 존재하는 임시 테이블 정의하는 것으로 생각 있다.

 

cte쿼리인 with쿼리 언제쓰나?

하위 쿼리가 여러 실행될 유용하다.

 

create table company2( ~~) company2테이블을 생성하고

 

with moved_row1 as(delete from company where salary>30000 returning *)

insert into company2 (select * from moved_row1);

 

company에서 30000이상의 샐러리를 받는 것을 삭제하는것을 moved_row1 정의하고 moved_row1 삭제한다.

 

그렇게 정의된 moved_row1 company2테이블에 insert시킨다.

 

확인해보면

select * from company;

30000이하의 샐러리데이터만 남고

select * from company2;

30000이상의 데이터는 이동한다.

 

------------------------------------------------------------------------------------------------------------------------------------------------------

 

PostgreSQL - HAVING Clause

 HAVING 절은 GROUP BY 절에 의해 생성된 그룹에 조건을 배치합니다.

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------

PostgreSQL - 제약 조건

 

1.unique 제약 조건

특정 열에서 동일한 값을 갖는 것을 방지

 

2.기본키 제약조건

기본 키는 테이블 간의 관계를 생성할 때 다른 테이블의 외래 키가 됩니다

기본 키 열은 NULL 값을 가질 수 없습니다.

 

3. 외래키 제약조건

열(또는 열 그룹)의 값이 다른 테이블의 일부 행에 나타나는 값과 일치해야 함을 지정합니다

참조 무결성을 유지한다고 말합니다.

 

4.  check 제약조건

 조건이 false 평가되면 레코드가 제약 조건을 위반하고 테이블에 입력되지 않습니다.

   SALARY         REAL    CHECK(SALARY > 0)
);

샐러리를 0으로 가질 없다.

 

 

 

5. 제외제약

 

 

USING gist 구축하고 시행을 위해 사용할 인덱스 유형입니다.

 

CREATE EXTENSION btree_gist

 

으로 먼저 btree_gist 구축해놓는다.

일반 스칼라 데이터 유형에 대한 제외 제약 조건을 정의하는 btree_gist 확장을 설치합니다

 

name with=       

name 같아야하고

age with <>      

나이가 다르다

 

라는 조건두개가 성립할 경우 제외(exclude) 한다.

 

제약 조건 삭제

 

ALTER TABLE table_name DROP CONSTRAINT some_name;

 

 

 

'postgresql' 카테고리의 다른 글

인덱스를 왜 사용하는가?  (0) 2022.06.29
23 데이터베이스 다루기  (0) 2022.06.29
22.4. Dropping Roles  (0) 2022.06.29
22.3. Role Membership  (0) 2022.06.29
22.2. Role Attributes  (0) 2022.06.29