반응형
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
'Postgresql' 카테고리의 다른 글
퇴근 후 Postgresql - select 2편 (join, Group by) (0) | 2023.03.22 |
---|