Postgresql

퇴근 후 Postgresql - select 1편

제이아이엔 2023. 3. 22. 22:09
반응형

 

https://postgresql.kr/docs/9.5/tutorial-populate.html

 

 

 

처음에 DB를 왜 분리해야하는 이유 , 즉 본질 자체를 찾지 못한다면 

프로그래밍하다가 DB연결해서 내가 원하는 값만 뽑아오고 싶다는 생각을 해보는게 정답이다.

 

목적을 잃은 공부는 방향을 상실하기 마련이다.

 

기본내용을 생략한다. 

SELECT 컬럼 FROM 테이블 WHERE 컬럼1 = '값'

 

CREATE TABLE cities (
    name            varchar(80),
    location        point
);
INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');
SELECT * FROM weather;
     city      | temp_lo | temp_hi | prcp |    date
---------------+---------+---------+------+------------
 San Francisco |      46 |      50 | 0.25 | 1994-11-27
 San Francisco |      43 |      57 |    0 | 1994-11-29
 Hayward       |      37 |      54 |      | 1994-11-29
(3 rows)
SELECT *
    FROM weather, cities
    WHERE city = name;
     city      | temp_lo | temp_hi | prcp |    date    |     name      | location
---------------+---------+---------+------+------------+---------------+-----------
 San Francisco |      46 |      50 | 0.25 | 1994-11-27 | San Francisco | (-194,53)
 San Francisco |      43 |      57 |    0 | 1994-11-29 | San Francisco | (-194,53)
SELECT city, temp_lo, temp_hi, prcp, date, location
    FROM weather, cities
    WHERE city = name;

위 코드를 분석해보자.

SELECT * FROM 테이블1, 테이블2   두개를 연결 시킬 수 있고,

city 컬럼과 name 컬럼이 같은 값을 가진 두 테이블이 하나로 만들 수 있으다는 것을 알게 된 것이다.

그리고 중복된 name 컬럼을 출력하지 않게 작성해서 제외시킬 수 있다.

 

 

SELECT DISTINCT city
    FROM weather;
     city
---------------
 Hayward
 San Francisco
(2 rows)

 

중복은 SELECT DISTINCT ~ 하고 똑같다.

 

SELECT weather.city, weather.temp_lo, weather.temp_hi,
       weather.prcp, weather.date, cities.location
    FROM weather, cities
    WHERE cities.name = weather.city;

city 컬럼 이름이 중복될 수 있을 때 앞에 테이블이름을 붙여줌으로써 중복을 피할 수 있다.

이것을 지정자 qualify라고 한답니다.

728x90