프로그램은 server, client 로 나눠진다.
serve : 데이터를 받아서 넘겨주는 역할 -> 1개
client: 데이터를 보내는 역할 -> 필요에 따라 계속해서 생성
그렇다면, 통신을 할 때 필요한 것은?
바로 ip! -> internet Protocol
cmp 명령 프롬포트
ipconfig ->ip 주소확인 가능
client 하나당 ip 주소 확인 가능
thread
메모장을 입력할 때 아무것도 입력하지 않은 상태에서도 커서가 깜빡인다
이때 컴퓨터는 멈춰있는 것이 아니라 계속해서 주고 받는 행위를 하고 있는 것이다.
"언제 입력할 거예요 언제 입력할 거예요? 나 준비 됐어요!"
왜 ? 서버는 클라이언트가 언제 보낼지 모르는 상태이기 때문 그래서 thread를 계속 돌려주면서 상시 대기 상태에 있는 것이다
ip주소, port 넘버, therad 가 어떻게 작용하는지 무엇인지 알아두는 것이 좋다.
ip주소 -> z컴퓨터를 구별한다
port 넘버-> 프로세스를 구별
우선 wep 서버와 spring 서버만 다룰 예정
https://blog.naver.com/kknd4444/224021321112
PostgreSQL 설치하기 가이드
먼저 PostgreSQL 공식 웹사이트에서 설치 파일을 다운로드해야 합니다. 아래 링크를 클릭하여 다운로드...
blog.naver.com
강사님 블로그
PostgreSQL 설치하기 가이드
먼저 PostgreSQL 공식 웹사이트에서 설치 파일을 다운로드해야 합니다. 아래 링크를 클릭하여 다운로드...
blog.naver.com
강사님 블로그
PostgreSQL 설치
PostgreSQL: The world's most advanced open source database
PostgreSQL
The world's most advanced open source database.
www.postgresql.org

Downlodad -> window -> Download the installer -> Windows x86-64 클릭 후 다운로드 진행












PostgreSQL 실행








데이터베이시스 -> 포스트 그레스 -> 스키마 (데이터 베이스 안에서 사용될 수 있는 오브젝트)
procedures -> 피엘이라고 한다 : java 에서 언어(문법) 배우고 함수를 배우듯이 함수식으로 만들 수 있는 것
functions -> 기능
trigger functions->자동호출 되는 기능
tables ->
| a. Database sessions 서버 세션 또는 데이터베이스 세션 그래프는 서버 또는 데이터베이스에 대한 연결을 표시합니다. 서버 또는 데이터베이스의 총 세션 수, 활성 세션 수, 유휴 세션 수를 보여줍니다. b. Transactions per seconds 초당 트랜잭션 그래프 는 서버나 데이터베이스에서 발생하는 커밋 , 롤백, 초당 총 트랜잭션을 보여줍니다 . c. Tuples in 그래프의 튜플은 서버 나 데이터베이스에 삽입, 업데이트, 삭제된 튜플의 수를 표시합니다. d. Tuples out 튜플 출력 그래프는 서버나 데이터베이스에서 가져와서 반환된 튜플의 수를 표시합니다. e. Block I/O 블록 I/O 그래프는 서버 또는 데이터베이스에 대한 파일 시스템에서 읽은 블록 수 또는 버퍼 캐시(운영 체제의 파일 시스템 캐시는 아님)에서 가져온 블록 수를 표시합니다. |
PostgreSQL 실행 - Table 만들기
테이블스 클릭 -> 더미데이터 다운 -> c 드라이브 새파일 만들기 -> 새파일 : sql -> sql 안에 더미데이터 넣기 ->
query tool ->


c 드라이브 -> sql 파일 -> 옮겨놨던 더미데이터 파일 열기

시프트로 잡고 스크롤 내리기







--create indexes 부분만 따로 실행

select * from employees; 만 따로 실행

comit 부분만 따로 실행

파일 새롭게 생성하기

캡쳐본 아이콘 눌러서 새파일 생성

포스트 그레이 마우스 우클릭 창나오면 -> 리프레쉬

테이블 들어가면 7개 테이블 들어있는 걸 확인 할 수 있다

파일 -> 프레퍼런스 ->

에디터 -> 옵션 -> 폰트 사이즈 수정후 -> 저장 아이콘 클릭

select * from employees; 입력 후 play 버튼 혹은 f5 누르기 안 되면 hrsql 에서 그대로 복붙

sql shell 실행

서버에 원래 ip 주소 넣음 Server [localhost]: 뒤에 localhost 넣기


암호 입력시 보이지 않지만 입력되고 있는 것이 맞으니 무시하고 프로그램 설치시 입력한 password 1234 입력하기
만약 위 화면 처럼 되지 않는다면 암호를 잘못 입력한 것 다시 입력하기

select * from employees; 입력하면 위처럼 뜬다 에디터 창에서 입력한 정보가 콘솔에서 확인 된다
posgres 외에 나만의 파일을 만들고 싶을 때

마우스 우클릭 -> 크리에이트
이클립스 연동하기
Download | pgJDBC
Download Binary JAR file downloads of the JDBC driver are available here and the current version with Maven Repository. Because Java is platform neutral, it is a simple process of just downloading the appropriate JAR file and dropping it into your classpat
jdbc.postgresql.org

ja



씨드라이브> 프로그램파일 >자바> 새폴더 driver 만들기 >이상한 창 뜨면 계속 누르기

새폴더 완성후 다운로드 받은 postgressql 42.7.11 넣기
이클립스 실행

데이터베이스 긴영어
데이터 베이스 커넥션 우클릭

포스트에스큐엘 > 플러스 버튼 > 에드 >이상한 영어 뜨면 리무브 >


오케이 버튼 활성화 확인


datebase 자리에 postgres 입력

유저네임도 postgres , password 에 1234 입력

화면 뜨면 완료

데이터베이스 커넥션 -> new PostgresSQl -> database -> catalog -> piblic -> tables 까지 들어가면 SQL 에서

클릭된 아이콘 누르기

Sql 하나 생성 됨

파일 타입 포스트그레스 _8x 로 맞추기 , 네임 new posgresSQl , 데이터 베이스 postgres (PostgreSQL 에서 이 데이터 베이스에만 더미 데이터 입력해뒀기 때문 ) 설정하기

메인으로 뜬 sql창에 위처럼 입력하기


입력한 구문 드래그 하고 알트 씨 하면 활성화 완료 되었는지 확인 가능
postgreSQL
| 테이블 생성 방법 |
Table 생성
create table 테이블명 ( //테이블명은 쿼리문으로 작성한다
calum1 자료형, -> 첫번째 컬럼명 자료형
calum2 자료형,
);
--varchar == String 과 같다 -> mysQl 과 동일 -> 단, Oracle 의 경우 vachar2를 사용한다
create table tb_varchar(
colname varchar(10), -- 10바이트
이름 varchar(20)
);

이렇게도 테이블 생성 가능

드래그 하고 f5 하면
| 테이블에 데이터 추가하는 방법 |
insert into 테이블명 (컬럼명1, 컬럼명2.....(등등등))
values(값1, 값...이렇게 추가 ))
insert into tb_varchar(colname, 이름)
values('ABC', '홍길동'); -- 문자열 쓸 때 작은 따옴표 ' '사용
select * from tb_varchar;
insert into tb_varchar(colname, 이름)
values("ABD", "성춘향"); -- 큰 따옴표 " " 사용시 에러 발생

작은 따옴표 사용 시 정상 작동 확인

큰 따옴표 사용 시 정상 작동 확인
| -- 숫자형 자료형 --int, numeric(자리수, 소수의 자리수) |
carate table tb_ numeric (
col1 int, -> 정수만 사용시
col2 integer, -> 정수만 사용시
col3 numeric,
col4 numeric(5),
col5 numeric(5,2) -> 소수점 사용시
)
insert into tb_numeric(col1,col2,col3,col4,col5)
values(123,234,345,678,789.12);

select * from tb_numeric; --여기서 값 넣어주기

insert into tb_numeric(col1,col2,col3,col4,col5)
values(123.1,234.1,345.45,678.1,789.12);


| 숫자자료형 이용시 에러 발생하는 경우 |
| --에러 발생 1- --구문 저장 가능하나 , 표로 출력했을 때 이상한 점 발견 될 때 |
insert into tb_numeric(col1,col2,col3,col4,col5)
values(123.1,234.1,345.45,678.1,789.1234);




| --에러 발생 2- --구문 저장 시부터 에러 발생하는 경우 |
insert into tb_numeric(col1,col2,col3,col4,col5)
values(123.1,234.1,345.45,678.1,78901.1234);

| 날짜를 사용하는 경우 |



| --날짜와 시간 함께 사용하는 경우 --timestamp 날짜 + 시,분, 초, 밀리 세컨(500/100) 단위들 |
| CREATE TABLE tb_timestamp( col1 timestamp, col2 timestamp default now() ); insert INTO tb_timestamp(col1, col2) values('2026-06-08 15:23:33', now()); select * from tb_timestamp; insert into tb_timestamp(col1,col2) VALUEs(now(), default); insert INTO tb_timestamp(col1) values('2026-06-08 15:23:33'); |




| 지우기 |

함수 사용
| 새로 sql 열기 |

문자 함수
| --문자 함수 |
| --standard function //함수 기능 --가상테이블 : 값을 간단히 확인해 볼 수 있는 (임시) 테이블 --문자 함수 select 1; select 1+2; select 'Hello'; |



| 문자 함수 |
| SELECT chr(65); -- 숫자를 문자로 표현하는 것을 이야기 한다 SELECT ascii('A') --문자의 아스키코드 값을 출력한다 |


| LPAD칸수 |
| --LPAD, RPAD : 칸수를 설정하고 특정 문자로 채운다 SELECT LPAD('HELLO', 10); -- 칸을 10칸으로 잡고 그 안에 헬로로 채우기 -> 나머지는 빈칸으로 채워진다 SELECT LPAD('HELLO',10,'+'); -- 칸을 10칸으로 잡고 그 안에 헬로로 채우기 -> 나머지는 +로 채워진다 |



| RPAD : 칸수: 칸수를 설정하고 특정 문자로 채운다 |
| SELECT RPAD('120',10,'0'); -- 칸을 120칸으로 잡고 그 안에 헬로로 채우기 -> 나머지는 0로 채워진다 |

| --POSITION 문자열의 위치 |
| SELECT POSITION('H' IN 'HELLO'); --INDEXOF SELECT POSITION('E' IN 'HELLO'); --INDEXOF SELECT POSITION('L' IN 'HELLO'); --INDEXOF Java 와 다르게 1번부터 시작한다. |



| --REPLACE : 문자열 수정 |
| --REPLACE : 문자열을 수정 SELECT REPLACE('AAABBBCCC','B' , 'b'); -- B 를 소문자 b로 바꿔라 SELECT REPLACE('AAABBBCCC','BBB' , 'b'); -- BBB 를 소문자 b로 바꿔라 |


| --문자열 합치기 |
| --SELECT 'ABC' + 'DEF'; -> 안됨! SELECT'ABC' || 'DEF'; -- ||는 앞 문자열과 뒤 문자열을 합친다 |


| --문자열의 길이 |
| SELECT LENGTH('HELLO'); |

| --영문자의 대소문자 변경하기 |
| SELECT UPPER('ABC'); SELECT LOWER('ABC'); |


| --문자열 자르기 |
| SELECT SUBSTRING('HELLO WORLD',7, 3); -- 문자열의 7번째자리부터 잘라서 3글자만 사용하기 SELECT SUBSTRING('HELLO WORLD',7); ---- 문자열의 7번째자리부터 잘라서 끝까지 사용하기 |


산술함수
| --산술함수 --절대값구하는 함수 ABS SELECT ABS(-12); |

| --나누고 난 후 나머지를 구하는 함수 |
| --나누고 난 후 나머지를 구하는 함수 SELECT MOD(5,3); |

| --자리수에 대해서 반올림을 하는 함수 |
| SELECT ROUND(123.56); SELECT ROUND(123.56, 1); -- 소수점 첫 번째 자리까지 반올림을 하라는 의미 ( 숫자, 소수점 원하는 자리 ) SELECT ROUND(124.56,-2); -- 2번째자리부터는 0으로 만들어줘! (숫자, 정수 원하는 자리) |



| --버림 |
| SELECT TRUNC(123.456); --뒤에 숫자 없으면 정수까지만 사용 SELECT TRUNC(123.456, 2); --소수점 자리 2번째 이후부터는 날려 버려! SELECT TRUNC(123.456, 3); --소수점 자리 3번째 이후부터는 날려 버려! |
| --올림 |
--올림
SELECT CEIL(13.1); -- 소수들은 날리고 정수에 1더해 !
SELECT CEIL(13.82);
SELECT CEIL(14.88);



| --내림 |
--내림 SELECT FlOOR(14.9); -소수는 버리고 정수만 살려 ! 정수는 수 변화 없다! SELECT FlOOR(14.18); SELECT FlOOR(13.9); |



| --양수 1,0이면 0, 음수 -1 |
| 양수 1,0이면 0, 음수 -1 SELECT SIGN(12.4); SELECT SIGN(0); SELECT SIGN(-12.4); |



--날짜 함수
| 날짜함수 |
| --날짜 함수 SELECT CURRENT_DATE; --현재 날짜 SELECT NOW(); --현재 날짜에 시간까지 나오는 함수 SELECT CURRENT_TIME; -- 현재 시간만 나오는 함수 SELECT CURRENT_TIMESTAMP; --현재 날짜 + 시간 나오는 함수 |




| --날짜 및 시간의 요소 |
| --날짜 및 시간의 요소 (연,월,일,시,분, 초 의 요소 (Eelement)를 잘라낸다) SELECT NOW(), EXTRACT(YEAR FROM CURRENT_TIMESTAMP); SELECT NOW(), EXTRACT(MONTH FROM CURRENT_TIMESTAMP); SELECT NOW(), EXTRACT(DAY FROM CURRENT_TIMESTAMP); SELECT NOW(), EXTRACT(HOUR FROM CURRENT_TIMESTAMP); SELECT NOW(), EXTRACT(MINUTE FROM CURRENT_TIMESTAMP); SELECT NOW(), EXTRACT(SECOND FROM CURRENT_TIMESTAMP); |






값을 지정해주는 함수
| --만약 컬럼에 있는 값이 NULL 인 경우 , 지정한 값으로 대체하는 함수 |
| -- 값이 NULL 인 경우 , 지정한 값으로 대체하는 함수 SELECT COALESCE(NULL, 1); --뒤에 설정한 것으로 대체 된다 (NULL, 지정값) SELECT COALESCE(NULL, '안녕'); --숫자, 영어, 한글 가능 SELECT COALESCE(NULL, '!'); --문자열안에 넣어서 특수기호 가능 |



원하는 형식 출력하는 함수
| --TO_CHAR |
| 원하는 형식으로 출력되는 함수 SELECT CURRENT_DATE,TO_CHAR(CURRENT_DATE,'YYYY-MM-DD'); -- 연산 불가능 SELECT CURRENT_DATE,TO_CHAR(CURRENT_DATE,'MM-DD-YYYY');-- 연산 불가능 SELECT CURRENT_DATE,TO_CHAR(CURRENT_DATE,'MM/DD/YYYY');-- 연산 불가능 SELECT CURRENT_DATE,TO_CHAR(CURRENT_TIMESTAMP,'YYY/-MM/DD HH:MI;SS'); -- 연산 불가능 |




| 달러를 숫자 붙여서 출력하고 싶을 때 |
| --$10,000,000 형태 만들기 |
| --$10,000,000 SELECT TO_CHAR(10000000,'$') --: 이상하게 출력 됨 ! SELECT TO_CHAR(10000000,'$999,999,999') --달러를 붙여서 숫자로 표현할 때는 이렇게 |
에러에러


| 문자열 ->날짜형으로 변환 |
| --문자열 -> 날짜형으로 변환 SELECT TO_DATE('20260610', 'YYYYMMDD'); -- 하이픈 - 넣지 않아도 변횐 됨 |

| --문자열을 숫자열로 변환 |
| --문자열을 숫자열로 변환 : 연산 가능 SELECT TO_NUMBER('12,345.67','99,999.99' ); |

집에서 실행할 떄 서버 켜고 끄는 법




'PostgresSQL > PostgresSQL 수강일지' 카테고리의 다른 글
| [수강일지 28] select 5 ( view,sequences) (0) | 2026.06.18 |
|---|---|
| [수강일지 26] select 5 [서브 쿼리문] (0) | 2026.06.16 |
| [수강일지 25] select 4 (join) (0) | 2026.06.15 |
| [수강일지 24] select 3(order by, group by) (0) | 2026.06.12 |
| [수강일지_23] select 2(select,where) (0) | 2026.06.11 |
