Mac postgresql 설치 dbeaver 사용

postgresql 설치 dbeaver 설치

brew install postgresql

brew install --cask dbeaver-community

Terminal

psql postgres

유저 생성

postgres 라는 유저를 생성하고 비밀번호를 1234로 설정한다.

create user postgres password '1234';

testdb 라는 데이터베이스를 생성하고 encoding utf-8 로 만든다

create database testdb encoding 'utf-8';

testdb owner(주인)를 postgres 설정

alter database testdb owner to postgres;

testdb database에 대한 권한을 postgres

grant all on database testdb to postgres with grant option;

'데이터베이스 > PostgreSQL' 카테고리의 다른 글

1. 데이터베이스 만들기  (0) 2018.08.23

PostgreSQL 이 오라클과 비슷하고 업데이트도 빠르고 많이들 사용한다하여 나도 사용해보기로함 ㅎㅎ


그래도 뭔가 어색하고 그렇네요 우선 데이터베스를 생성해보겠습니다~


우선 SQL Shell 을 실행하여 계정 정보를 입력합니다~




입력 후  help를 입력하면 도움을 주시겠다는 ..  큰 도움은 ...



우선 브라우져에 뜬 pgAdmin을 보면 기본적으로 Databases에 postgres라는 Db가 생성되어있다. 


타 디비에서는 root 계정 인것 같다. ㅎ  디비 커넥션 할 때 root 대신 postgres를 쓰니 잘 붙었던걸보니 ㅎ








이제 데이터베이스 생성을 위해 


명령어에 

CREATE DATABASE 데이터베이스명 ;


이상없이 만들어지면 

CREATE DATABASE라고 뜬다, 


그리고  \l 로 확인 하거나 브라우저에서 확인해보자




끝 



'데이터베이스 > PostgreSQL' 카테고리의 다른 글

Mac postgresql 설치 dbeaver 사용  (0) 2021.08.09

1. Count 함수


COUNT(*) 은 NULL을 포함한 모든 데이터의 수


COUNT(commission_pct) 는 NULL을 제외한 데이터의 수


1
SELECT COUNT(*) ,COUNT(commission_pct*salary) FROM EMPLOYEES;
cs



2.  SUM 함수  합계

    AVG 함수   평균

    MAX 함수   최대

    MIN 함수   최소

    


1
2
3
4
5
6
7
SELECT 
       SUM(salary),
       AVG(salary),
       MAX(salary),
       MIN(salary)
FROM   
        EMPLOYEES ;
cs





3.  GROUP BY 함수  
 특정 조건으로 세부적인 결과 출력하기

*******where절에는 사용할수 없음!!!!*******

1
2
3
4
5
SELECT department_id,
       COUNT(*),
       SUM(salary)
FROM EMPLOYEES       
GROUP BY department_id ; 
cs




3.  HAVING 절  
 
1
2
3
4
5
6
SELECT department_id,
       COUNT(*),
       SUM(salary)
FROM EMPLOYEES
WHERE SUM(salary) > 10000       
GROUP BY department_id ; 
cs

-이렇게 하면 오류를 발생시킨다.  WHERE 절에는  GROUP BY 를 사용할 수 없다.
그렇기때문에 HAVING 절을 사용해야한다. 

1
2
3
4
5
6
SELECT department_id,
       COUNT(*),
       SUM(salary)
FROM EMPLOYEES
HAVING SUM(salary) > 10000       
GROUP BY department_id ; 
cs


1. 치환 함수 

NVL(컬럼, 숫자)   숫자로 치환

NVL(컬럼, '문자')  문자로 치환

NVL2 NULL이 아닐경우 ㅇㅇ으로 치환


우선 전체 데이터를 확인해보겠습니다.



클릭 위치를 보면 Kimbeerely씨의 DEPARTMENT_ID가    NULL 값이 들어가있습니다.


null값을 80으로 치환하여 출력합니다. (활용의 예: 금액에 NULL일경우 0으로 )


1
SELECT NVL(DEPARTMENT_ID,80FROM EMPLOYEES;
cs



2. DECODE 함수


DECODE ( A , B , 1)    

A가 B라면 1을 출력  (A=B 라면 1을 출력)  A!=B 나머지는 NULL을 출력합니다

1
SELECT FIRST_NAME, DECODE(DEPARTMENT_ID,110,1FROM EMPLOYEES;
cs


DECODE ( A , B , 1, 2) 

A가 B라면 1을 출력 아니라면 2을 출력 


1
SELECT FIRST_NAME, DECODE(DEPARTMENT_ID,110,1,2FROM EMPLOYEES;
cs

DECODE ( A , B , 1, 2) 

A가 B라면 1을 출력 아니라면 2을 출력 



DECODE ( A , B , 1, C, 2, 3) 

A가 B라면 1을 출력하고 A가 C라면 2를 출력하고 아무것도 아니라면 3을 출력

1
SELECT FIRST_NAME, DECODE(DEPARTMENT_ID,110,1,100,2,3FROM EMPLOYEES;
cs


DECODE ( A , B , DECODE( C, D, 3)) 

A가 B일 경우중 C = D 라면 3을 출력


 

3. CASE 함수

#문법#


CASE 조건 WHEN 결과1 THEN 출력1

  WHEN 결과2 THEN 결과2

             ELSE 출력 3

END "컬럼명"


1
2
3
4
5
6
7
8
SELECT FIRST_NAME,DEPARTMENT_ID,
       CASE DEPARTMENT_ID WHEN 10 THEN 'TEAM-1'
                          WHEN 20 THEN 'TEAM-2'
                          WHEN 30 THEN 'TEAM-3'
                          ELSE 'N/A'
       END "TEAM"
FROM EMPLOYEES
WHERE DEPARTMENT_ID <50
cs



1. TO_CHAR

숫자 or 날짜→ 문자


1
2
3
SELECT first_name, TO_CHAR(salary*12,'$999,999,999') AS SAL,
TO_CHAR(HIRE_DATE,'yyyy~mm~dd') AS HIRE_DATE
FROM EMPLOYEES;
cs







2. TO_NUMBER

'숫자 같은 문자' → 숫자


1
SELECT TO_NUMBER('01012341234'FROM DUAL;
cs

* 문자에서 숫자로 형 변환이 이뤄지면서 

.숫자는 맨앞에 0을 출력하지 않으므로  맨앞에 "0" 이 사라졌습니다.



3. TO_DATE

'날짜 같은 문자' → 날짜 타입


1
SELECT TO_DATE('1988/04/19'FROM DUAL;
cs



3. 자동 형 변환

1
SELECT 2 + TO_NUMBER('10'FROM DUAL;
cs



자동 형 변환 후 합계를 구합니다.











8



  



1. SYSDATE 함수

   OS(리눅스 윈도우 등)에서 시간을 가져옵니다.


1
2
  
SELECT SYSDATE FROM DUAL;
cs



2. SYSDATE 함수 (FORMAT 변경하기)

  

1
ALTER SESSION SET NLS_DATE_FORMAT= 'YYYY-MM-DD:HH24:MI:SS';
cs


3. MONTHS_BETWEEN함수

두 날짜 사이의 개월 수를 출력하는 함수

SYSDATE - HIRE_DATE 


1
2
SELECT SYSDATE, MONTHS_BETWEEN(SYSDATE,hire_date)
FROM EMPLOYEES;
cs





4. ADD_MONTHS함수

기준일에 + 개월 수


1
2
SELECT HIRE_DATE, ADD_MONTHS(hire_date,5)
FROM EMPLOYEES;
cs





4. NEXT_DAY 함수

지정된 요일 가장 빠른 날짜


1
SELECT SYSDATE, NEXT_DAY(SYSDATE,'월'FROM DUAL;
cs





5. LAST_DAY 함수

지정된 날짜가 속한 달의 마지막 날 출력


1
SELECT SYSDATE, LAST_DAY(SYSDATE) FROM DUAL;
cs





 




 en  






숫자관련 함수들은 금융권 등에서 많이 사용되며 자리수 또는 올림, 반올림 , 버림 등 주의하셔야합니다.



1. ROUND함수

주어진 숫자에서 반올림


1
2
3
4
select ROUND(123.456,2) AS ROUND1,
       ROUND(123.456,0) AS ROUND2,
       ROUND(123.456,-1) AS ROUND3
from dual;
cs



2. TRUNC함수

주어진 숫자에서 버림


1
2
3
4
select TRUNC(123.456,2) AS ROUND1,
       TRUNC(123.456,0) AS ROUND2,
       TRUNC(123.456,-1) AS ROUND3
from dual;
cs




3. MOD (나머지 값을 구하는 함수)

   CEIL (주어진 숫자에서 가장 가까운 정수)

   FLOOR (주어진 숫자에서 가장 가까운 작은 정수)


1
2
3
4
SELECT MOD(11,4"Modulus",
      CEIL(0.3333"Ceil",
      FLOOR(1.3333"Floor"
  FROM DUAL
cs







1. INITCAP (첫 글자만 대문자로 출력하고 나머지는 소문자)


1
select first_name , initcap(first_name)from EMPLOYEES;
cs



2. lOWER / UPPER (모두 소문자 / 모두 대문자)


1
select first_name , LOWER(first_name), UPPER(first_name) from EMPLOYEES;
cs



3. LENGTH / LENGTHB (문자열길이 / 바이트수)

영어일땐 바이트수가 보통 1byte라 동일하지만 한글일 땐 보통 할글자수에 2byte이기 때문에 곱절로 나옴


1
select first_name , LENGTH(first_name), LENGTHB(first_name),LENGTH('오라클'),LENGTHB('오라클')  from EMPLOYEES;
cs



4. SUBSTR / SUBSTRB  (특정 부분 골라내기 ) ex : 주민등록번호 성별 골라내기 등.


1
2
3
4
select first_name , SUBSTR(first_name,1,3)from EMPLOYEES;
 
select SUBSTR('001212-1000000',-7,1from dual;
 
cs



---------------------------------------------------------------------------------------


5. INSTR (특정 글자의 위치 찾기)

INSTR(컬럼 or 문자열 ,'찾는 글자', '시작',' 몇 번째인지 ')

1
select hire_date, INSTR(hire_date,'/',1,2from EMPLOYEES;
cs






6.   LPAD     /   RPAD(문자로 채우기)
       왼쪽    /  오른쪽
1
select first_name , LPAD(first_name,10,'*'), RPAD(first_name,10,'*'),LPAD('오라클',10,'*'),RPAD('오라클',10,'*')  from EMPLOYEES;
cs



7.   LTRIM    /   RTIRM( 문자 지우기)

        왼쪽    /  오른쪽


1
select first_name , LTRIM(first_name,'E'), RTRIM(first_name,'e'),LTRIM('오라클','오'), RTRIM('오라클','클')from EMPLOYEES;
cs



7.   REPLACE 문자 바꿔주기


1
select REPLACE('901212-1000000',SUBSTR('901212-1000000',-6,7),'******'from dual;
cs




'데이터베이스 > Oracle' 카테고리의 다른 글

5. 오라클 기초 (날짜 관련 함수)  (0) 2018.02.20
4. 오라클 (숫자관련 함수)  (0) 2018.02.20
2. 오라클 기초 익히기 (WHERE)  (0) 2018.02.18
1. 오라클 기초 익히기  (0) 2018.02.18
2. 가상 컬럼 만들기  (0) 2018.02.16

1. 원하는 데이터 조회하기


1
SELECT First_name, Last_name , DEPARTMENT_ID FROM EMPLOYEES WHERE DEPARTMENT_ID= 60;
cs



2. BETWEEN 연산자 


1
SELECT First_name, Last_name , SALARY FROM EMPLOYEES WHERE SALARY BETWEEN 5000 AND 10000;
cs




3. IN연산자 


1
SELECT First_name, Last_name FROM EMPLOYEES WHERE FIRST_NAME IN ('John' , 'Luis');
cs


4. 

4. LIKE 연산자 (주로 검색에 활용함)


 LIKE 연산자에는 % 와 _ 두가지가 있는데 

% : 글자수 제한없이 검색

_ : 글자수는 한 글자만 검색


1
SELECT First_name, Last_name FROM EMPLOYEES WHERE FIRST_NAME LIKE ('A%');
cs



1
SELECT First_name, Last_name FROM EMPLOYEES WHERE FIRST_NAME LIKE ('A__t');
cs





5. 여러 검색 조건을 한번에 검색할 때


1
SELECT First_name, Last_name ,SALARY,DEPARTMENT_ID  FROM EMPLOYEES WHERE SALARY > 5000 AND DEPARTMENT_ID= 60;
cs






6. ORDER BY 절을 이용해 정렬하기

* 문장의 마지막에 작성해야함
디폴트 값은 ASC
 ASC (오름차순) 
DESC( 내림차순)

1
SELECT First_name, Last_name , SALARY FROM EMPLOYEES WHERE SALARY > 5000 ORDER BY  SALARY DESC;
cs

 



'데이터베이스 > Oracle' 카테고리의 다른 글

4. 오라클 (숫자관련 함수)  (0) 2018.02.20
3. 오라클 기초 (문자함수)  (0) 2018.02.18
1. 오라클 기초 익히기  (0) 2018.02.18
2. 가상 컬럼 만들기  (0) 2018.02.16
1. 테이블 복사하기  (0) 2018.02.16

1. 테이블 구조 파악하기

1
DESC EMPLOYEES;
cs


2. 데이터 조회하기

1
SELECT * FROM EMPLOYEES;
cs




3. 특정 데이터 조회하기

1
SELECT First_name, Last_name , Email FROM EMPLOYEES;
cs



4. 컬럼 대신 문자 사용하기


1
SELECT First_name, Last_name , 'Hello~~' FROM EMPLOYEES;
cs



5. 컬럼 별칭 사용하기


1
SELECT First_name AS "성", Last_name AS "이름" FROM EMPLOYEES;

cs





6. 연결 연산자로 컬럼 붙이기

1
SELECT First_name || Last_name   FROM EMPLOYEES;
cs




7. 중복 데이터 제거 후 출력


1
SELECT distinct department_id from EMPLOYEES;
cs






'데이터베이스 > Oracle' 카테고리의 다른 글

4. 오라클 (숫자관련 함수)  (0) 2018.02.20
3. 오라클 기초 (문자함수)  (0) 2018.02.18
2. 오라클 기초 익히기 (WHERE)  (0) 2018.02.18
2. 가상 컬럼 만들기  (0) 2018.02.16
1. 테이블 복사하기  (0) 2018.02.16

+ Recent posts