데이터베이스에 연결하기
psql -h localhost -p 5432 -U suyong test
-> Suyong 이라는 owner의 test 테이블로 가기
또는 psql에서 \c 데이터베이스 이름
테이블 만들기
CREATE TABLE 테이블이름 (
id INT,
first_name VARVHAR(50),
…..
);
데이터 넣기
INSERT INTO 테이블이름(
fisrt_name,
last_name,
gender,
date_of_birth)
VALUES (‘Anne’, ‘Smith’, ‘FEMALE’, DATE ’1988-01-09’);
SELECT * FROM person;
-> person 테이블의 모든 열(*) 나열
SELECT * FROM person ORDER BY [열 이름] ASC(or DESC);
-> 테이블 순서
SELECT DISTINCT country_of_birth FROM person ORDER BY country_of_birth;
-> person 테이블의 country_of_birth열 중복 제외하고 오름차순
WHERE - 데이터 필터링
SELECT * FROM person WHERE gender = 'Male' ; -> 성별이 MALE인 튜플만 고름
-> AND OR 비교(<.=.etc) 도 사용 가능
SELECT * FROM person LIMIT 10;
-> 10개 항목만 표시
SELECT * FROM person OFFSET 10 LIMIT 20;
-> 11번째 항목부터 20까지
SELECT * FROM person OFFSET 10 FETCH FIRST 20 ROW ONLY;
-> 11부터 시작해서 20개 항목
SELECT * FROM person WHERE country_of_birth = 'Brazil'
OR country_of_birth = 'China'
OR country_of_birth = 'Sweden';
위에거는
SELECT * FROM person
WHERE country_of_birth IN (‘China’, ‘Sweden’, ‘Brazil’);
이랑 똑같음
SELECT * FROM person
WHERE date_of_birth
BETWEEN DATE '2000-01-01' AND '2015-05-05';
-> 말 그대로임
SELECT * FROM person
WHERE email LIKE '%.com';
이메일이 .com 꼴인 데이터 모두 가져옴 / %은 anything 이란 말
WHERE email LIKE ‘______%.com';
이면 _ 갯수만큼 아무거나
Group By
SELECT country_of_birth, COUNT(*) FROM person GROUP BY country_of_birth;
-> 나라별 사람 수 구하는 문
HAVING
SELECT country_of_birth, COUNT(*) FROM person GROUP BY country_of_birth HAVING COUNT(*) > 5 ORDER BY country_of_birth;
HAVING 문은 GROUP BY 바로 뒤에 나와야 함
HAVING COUNT(*) >5 이면 카운트 수가 5 이상인 항목만 나옴
Postgre 홈페이지에서 aggregate functions 검색하면 됨
Deleting Records with Foreign Keys.
외래 키 연결이 되어있는 레코드를 지우려면 먼저 연결을 끊어주고 지워야 함
/Foreign key Constraint를 violate하므로/
따라서
사람과 연결되어 있는 차를 지우려면
먼저 사람을 지우고 나서 차를 지우거나 해야 함
차만 지우려면
사람의 외래키를 null로 변경해주고 차를 지움
CSV 만들기
\copy (SELECT * FROM person LEFT JOIN car ON car.id = person.car_id) TO '/Users/suyong/Desktop/results.csv' DELIMITER ',' CSV HEADER;
Copy 괄호 안에 출력할 쿼리문 넣음
ALTER SEQUENCE person_id_seq RESTART WITH 10;
-> 시퀀스 순서 난리났을 때 고치는 거
'Study' 카테고리의 다른 글
C++ Learning in terms of OOP(Object-Oriented-Programming) (0) | 2021.04.10 |
---|---|
[postgreSQL + ASP.NET CORE] ASP.NET Core MVC에 postgre 데이터베이스 연결하기 (0) | 2021.03.17 |
[ASP.NET Core MVC] Mac에는 Package Manager Console이 없음 해결 방법 (0) | 2021.03.17 |
[Android Studio] OpenCV 모듈 설치 (0) | 2021.03.09 |
[데이터구조 & 알고리즘] Hash Function - djb2 개요 (0) | 2021.03.03 |