본문 바로가기

IT Study/Database-Oracle

WHERE 과 조건 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
-- WHERE 절 == IF문
/*
    표현식 
        비교 연산자( = < > != >= <= <> )
        NULL, IS NULL, IS NOT NULL
        ( ), NOT, AND, OR
*/
 
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE FIRST_NAME = 'Julia'
 
SELECT FIRST_NAME, LAST_NAME, SALARY    
FROM EMPLOYEES
WHERE SALARY >= 9000;
 
SELECT FIRST_NAME, LAST_NAME, SALARY    
FROM EMPLOYEES
WHERE FIRST_NAME >= 'Shanta';
 
SELECT FIRST_NAME, LAST_NAME, SALARY    
FROM EMPLOYEES
WHERE FIRST_NAME >= 'a';
 
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE MANAGER_ID = '';
 
SELECT FIRST_NAME, LAST_NAME, MANAGER_ID, SALARY
FROM EMPLOYEES
WHERE MANAGER_ID IS NULL;   -- = NULL   != ''
 
SELECT FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME = 'Shanta'
    OR FIRST_NAME = 'John';
 
SELECT FIRST_NAME, LAST_NAME, SALARY    
FROM EMPLOYEES
WHERE FIRST_NAME = 'Shanta'
    OR FIRST_NAME = 'John'
        AND SALARY > 3000;
        
SELECT *
FROM EMPLOYEES
WHERE HIRE_DATE > '07/12/31';
 
 
-- ALL(AND), ANY(OR)
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE FIRST_NAME = ALL('Julia''John');
 
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE FIRST_NAME = 'Julia' AND FIRST_NAME = 'John';
 
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE FIRST_NAME = ANY('Julia''John''Steven');
 
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE FIRST_NAME = 'Julia' OR FIRST_NAME = 'John';
 
 
-- IN, NOT IN
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY IN(800032006000);
 
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE FIRST_NAME IN('Julia''John');
 
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE FIRST_NAME NOT IN('Julia''John');
 
SELECT FIRST_NAME, LAST_NAME, SALARY, MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID IN(120100);
 
-- EXISTS
SELECT FIRST_NAME, LAST_NAME, SALARY
FROM EMPLOYEES
WHERE EXISTS(SELECT 1 FROM DUAL);
 
SELECT FIRST_NAME, LAST_NAME, SALARY, JOB_ID
FROM EMPLOYEES A
WHERE EXISTS(SELECT 1 FROM DUAL
             WHERE A.JOB_ID = 'IT_PROG');    
    
SELECT FIRST_NAME, LAST_NAME, SALARY, JOB_ID
FROM EMPLOYEES
WHERE JOB_ID = 'IT_PROG';
 
-- BETWEEN 범위 연산자
/*
    SALARY >= 3200 AND SALARY <= 9000
    BETWEEN 3200 AND 9000
*/
SELECT FIRST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY BETWEEN 3200 AND 9000;
 
SELECT FIRST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY NOT BETWEEN 3200 AND 9000;
 
-- LIKE
SELECT FIRST_NAME    
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'G_ra_d';    --   _ 한글자 
 
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'K%y';
 
SELECT FIRST_NAME, HIRE_DATE
FROM EMPLOYEES
WHERE HIRE_DATE LIKE '06/%';
 
 
 
 
 
 
 
 
cs