PostgresSQL/PostgresSQL 개념정리

where

jamk-diary 2026. 6. 12. 09:36

/*

where : 조건절 == if
select 값, 컬럼, 함수, from 테이블 
where  <- 조건 

비교연산자: > , < , >= ,  !+  ,==   , <>-> 같지 않다
          ( ) 를 사용해 우선순위를 매길 수 있다 
 
  null 일때 == null, is null , 
  null 이 아닐 때 == is not null

  not, and, or 을 사용할 수 있다 
  && , || 사용 할 수 없다
  */
  
--'Julia'  와 'julia' 결과의 차이 : 대소문자 구분

select first_name, last_name, salary
from employees
where first_name = 'Julia';

select first_name, last_name, salary
from employees
where first_name = 'julia';

--9000불보다 많이 받는 사람들만 출력
SELECT first_name, salary
FROM employees
WHERE salary >= 9000;

--'Shanta' 보다 아스키 코드 값이 큰 사람들만 출력 
--검색 기능이 자바보다 좋다
SELECT first_name
FROM employees
WHERE first_name >= 'Shanta';

--a 보다 큰 건 아무것도 안 나온다 
SELECT first_name 
from employees
where first_name >= 'a';

--is null 일때 출력
SELECT *
from employees
WHERE manager_id is null;

--is  not null 일때 출력
SELECT *
from employees
WHERE manager_id is not null;

-- and 로 그리고
SELECT first_name
from employees
WHERE first_name = 'Shanta' and first_name = 'John';

-- or 로  또는 
SELECT *
from employees
WHERE first_name = 'Shanta' or first_name = 'John';


-- 이름은 John이고 월급이 5000이상인 사원
SELECT first_name, salary
from employees
WHERE first_name = 'John' and salary >= 5000;

--2017년 12월 31일 이후에 입사한 사원들을 출력하라 
select first_name,hire_date
from employees
WHERE hire_date > '2017-12-31'; -- 날짜 형식이지만 문자 형식에 해당한다 

--all(and), any(or) 


--all사용시 출력 안 됨
--SELECT salary from employees where first_name = 'Julia' 만 실행할 경우 드래그 하고  알트+f5
select first_name,salary
from employees
WHERE salary = all (SELECT salary from employees where first_name = 'Julia')

-- any 사용시 출력 됨 확인 
select first_name,salary
from employees
WHERE salary = any (SELECT salary from employees where first_name = 'Julia')


--or 사용하기 
select first_name,salary
from employees
WHERE salary =3200 or salary = 3400;

--in,not in

--in 8000,3200,6000인 사람들 출력
select first_name, salary
from employees
where salary in (8000,3200,6000);

---not in  8000,3200,6000이 아닌 사람들 출력
select first_name, salary
from employees
where salary not in (8000,3200,6000);

--'Julia', 'John' 이 이름인 사람들 출력 
SELECT first_name
FROM employees
WHERE first_name in('Julia', 'John');

--between 범위 연산자 

--6000보다 크거나 같고 9000보다 작거나 같은
SELECT first_name, salary
from employees
where salary >= 6000 and salary <= 9000;

--6000보다 크거나 같고 9000보다 작거나 같은
SELECT first_name, salary
from employees
where salary BETWEEN  6000 and  9000;

--6000보다 --하고 9000보다 컸을 때 
SELECT first_name, salary
from employees
where salary not BETWEEN  6000 and  9000;

--like
-- like : 지정 글자를 포함하는 조건 == 자바  containes 기능과 같다
 SELECT first_name
 FROM employees
 WHERE first_name like 'G_ra_d'-- 언더바 _의 역할 -> 언더바 위치에 무엇이 오든 출력한다 

--맨 앞의 철자가 k 인 사람을 출력한다
--몇글자인지 상관 없다 
 SELECT first_name
 FROM employees
 where first_name like 'K%';


--에러에러! 안 나옴 
--이유: 자료들을 살펴봤을 때 이름의  첫글자가 대문자로 되어있어서 나오지 않는다 
 SELECT first_name
 FROM employees
 where first_name like 'k%';

-- 뒤에 붙는 건 나옴 !
 SELECT first_name
 FROM employees
 where first_name like '%k';

--맨앞만 아니면 a가 어디에 와있어도 된다 찾으면 출력해라 
 SELECT first_name
 FROM employees
 where first_name like '%a%';

--이름에 소문자 a나 첫글자에 A 가 들어가는 사람 출력 
 SELECT first_name
 FROM employees
 where first_name like '%a%' or first_name like '%A%';

--알파벳을 대문자로 변경해서 비교 
  SELECT first_name
 FROM employees
 where upper (first_name) like '%A%';

 

--알파벳을 소문자로 변경해서 비교 

SELECT employee_id, last_name, lower(job_id), department_id
FROM employees
WHERE lower(last_name) = 'king';

 

 --2016년도에 입사한 사원들 출력

 --방법 1
select first_name,hire_date
from employees
WHERE hire_date >= '2016-01-01'and hire_date <= '2016-12-31'; 

--방법2
--에러에러!
select first_name,hire_date
from employees
WHERE hire_date like '2016%';

--to char 활용해서 사용해주기 
--정상작동 확인 
select first_name,hire_date
from employees
WHERE to_char (hire_date, 'YYYY-MM-DD') like '2016%';

 

-- -to char 활용해서 숫자를 문자로 

  • TO_CHAR(날짜, '포맷') ➔ 날짜를 원하는 문자 형식으로 변경 (예: 2026-06-12)
  • TO_CHAR(숫자, '포맷') ➔ 숫자를 돈이나 콤마 형식의 문자 처리 (예: $5,000)


SELECT department_id, last_name, to_char(salary, '$999,999')
FROM employees
WHERE department_id = 50;

 

'PostgresSQL > PostgresSQL 개념정리' 카테고리의 다른 글

table  (0) 2026.06.17
Join  (0) 2026.06.15
from  (0) 2026.06.12
oder by , group by, group function, having sum  (0) 2026.06.12
[standard function] 문자, 숫자, 날짜, 문자 <->날짜, 원하는 형식, 지정값 대체  (0) 2026.06.10