2020.코딩일지

[mac] postgresql Guide 본문

WebServer&DB&CTI

[mac] postgresql Guide

개발하는라푼젤 2022. 11. 3. 15:45
728x90

1. postgreSQL설치 및 데이터베이스 생성

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

mac os의 최신버전 설치

왼쪽화면의 NEXT를 눌러 오른쪽화면의 체크항목을 확인후 Next하세요
Launchpad에 있는 psql을 실행합니다.

엔터4번치고 비번1234입력하고 마지막 엔터!

 

psql shell에서]  \conninfo (사용자정보를 확인.)

 

psql shell에서]  명령어 \l  (백슬레시 영어소문자L : 데이터베이스의 목록 확인 가능.)

     쉘너비가 좁으면 편집기로 들어갑니다....  들어갔다면 :wq 로 나오세요~

위 그림과 같지 않다면 데이터베이스를 생성.

psql shell에서 데이터베이스 생성하는 SQL문] 세미콜론도 잊지않고 챙겨주기!

CREATE DATABASE postoffice;

 

데이터베이스와 연결.

psql shell에서] \c postoffice;

해당 데이터베이스에 접속된 것을 확인.


2. 테이블 생성

아래와 같이 테이블 3개를 생성합니다.

 

2-1. user_info 테이블 생성

CREATE TABLE user_info(
ID SERIAL UNIQUE PRIMARY KEY,
user_id VARCHAR(50) NOT NULL,
user_pwd VARCHAR(50) NOT NULL,
user_nickname VARCHAR(50) NOT NULL,
user_account VARCHAR(43),
private_key VARCHAR(70),
token_amount numeric,
eth_amount numeric,
create_at VARCHAR(19));

user_info 테이블 생성 완료

 

2-2. post_info 테이블 생성

CREATE TABLE post_info(
ID SERIAL UNIQUE PRIMARY KEY,
user_id INT NOT NULL,
title VARCHAR(50) NOT NULL,
content TEXT NOT NULL,
create_at VARCHAR(19) NOT NULL);

외래키 설정

ALTER TABLE post_info ADD CONSTRAINT post_info_fk FOREIGN KEY (user_id) REFERENCES user_info (id);

post_info 테이블 생성 완료, 그리고 외래키 설정완료

 

2-3. nft_info 테이블 생성

CREATE TABLE nft_info(
ID SERIAL UNIQUE PRIMARY KEY,
user_id INT NOT NULL,
token_uri VARCHAR(100),  
tx_hash VARCHAR(67));

외래키 설정

ALTER TABLE nft_info ADD CONSTRAINT nft_info_fk FOREIGN KEY (user_id) REFERENCES user_info (id);

 

생성된 3개의 테이블 확인하는 명령어는 아래와 같습니다.

psql shell에서]  \dt 

테이블 3개확인

 

테이블 각각의 타입정보를 확인하는 명령어는 아래와 같습니다.

psql shell에서]  \d 테이블명;


3. 데이터 확인 및 삭제

데이터확인

SELECT * FROM user_info;   //이렇게 하셔도 됩니다만 정렬이 되지않은 모습.

SELECT * FROM {테이블명} ORDER BY {기준컬럼명 보통은 id};
SELECT * FROM user_info ORDER BY id;  //id 컬럼으로 정렬한 데이터

 

데이터삭제

//해당 데이터만 삭제
DELETE FROM {테이블명} WHERE {컬럼명} = {해당};
DELETE FROM post_info WHERE id = 5;
// 테이블 내의 전체 데이터삭제
DELETE FROM {테이블명};
DELETE FROM post_info;
Comments