오라클은 ';'을 기준으로 결과값이 나온다
Ctrl과 Entre키를 함께 눌러줘야 한다.
SELECT * FROM TAB;
테이블을 보여준다
SELECT 컬럼명 FROM 테이블명;
해당 테이블에서 입력한 컬럼들만 나타난다.
(컬럼1,컬럼2 이런 식으로 입력해야 한다. 다만 띄어쓰기 하지 않아야 한다.)
SELECT DISTINCT 컬럼명 FROM 테이블명;
DISTINCT -> 해당 컬럼 값들 중 '중복을 제외'한 값들만 도출
SELECT 컬럼1,컬럼2,컬럼3 FROM 테이블명
ORDER BY 컬럼2;
컬럼2의 값을 기준으로 오름차순 정렬된다.
(컬럼2 옆에 ASC를 써줘도 오름차순되지만 안써도 기본이 오름차순! 내림차순은 DESC)
SELECT 컬럼1,컬럼2,컬럼2+1000 FROM 테이블명;
쿼리의 연산도 가능하다!
+1000을 해줌으로써 기존 컬럼2값에서 1000씩 더해진 값이 나타난다.
컬럼명 뒤에 as "바꿀 이름" 을 입력하면 컬럼명이 바뀌어 나타난다.
NULL값이 있는 컬럼을 정렬할 때에는
오름차순 기준으로 가장 마지막, 즉 큰 값보다 더 맨 마지막에 나온다.
NULL값이 포함된 컬럼의 연산)
BONUS 컬럼에 포함됐다고 가정하면,
--사원의 급여와 일년치 연봉(ANNUAL)을 구하시오
SELECT dno,pno,pname,pay,(pay*12)+NVL(BONUS,0) ANNUAL_PAY from PERSONNEL;
NVL 함수는 괄호 안 좌측에는 NULL값이 없을 시의 보너스 값이며
우측에는 NULL값이 있을 때 0으로 연산한다는 것이다.
NULL값은 연산 시 무조건 NULL로 다 변하기 때문이다.
||은 두 개의 컬럼을 연결해준다.
SELECT 컬럼1 || 컬럼2 FROM 테이블명;
|| ' ' ||는 컬럼 사이에 공백을 넣어서 보여준다.
WHERE 조건 & 연산자
조건을 WHERE을 통해 줄 수 있다.
연산자는 =, >, <, <=, >=, <> 이 있다.
논리연산자는 이 있다.
대표적인 사례만 들고 왔다.
--연산자
--업무가 CLERK인 사원을 찾으시오
SELECT * from PERSONNEL WHERE JOB = 'CLERK';
--논리연산자
--직업이 SALESMAN이고 90년 이후에 입사한 직원을 찾으시오
SELECT * FROM PERSONNEL
WHERE JOB = 'SALESMAN' AND STARTDATE >= '91/1/1';
--업무가 SALESMAN,CLERK인 직원을 찾으시오
SELECT * FROM PERSONNEL
WHERE JOB IN ('SALESMAN','CLERK');
--업무가 SALESMAN,CLERK이 아닌 직원을 찾으시오
SELECT * FROM PERSONNEL
WHERE JOB<>'SALESMAN' AND JOB<>'CLERK';
1// 연산자
조건을 줄 때에는 무조건 대문자로 입력해야 한다!
오라클은 대문자로 인식하기 때문이다.
2//직업
'이고'는 AND이며
날짜는 YY/MM/DD로 주기 때문에 코드대로 입력해야 한다.
물론 '-'로 구분하여 입력할 수도 있지만 '/'가 더 정확하며 에러 가능성이 없다.
3//업무
'IN'은 괄호 속의 값만 인식한다.
즉 SALESMAN과 CLERK인 값만 가져온다.
범위를 의미하는 BETWEEN과 헷갈릴 수 있으니 주의하자.
4//위의 3번과 반대되는 식이다.
'<>'는 자바에서 '!'와 같은 의미로 반대를 뜻한다.
주의할 점은 양쪽이 부정이면 AND로 연결해야 한다는 것을 기억하자.
검색, 필터 기능을 하는 경우에는
'='이 아니라 'LIKE'를 써줘야 한다!
'%'대신 '_'을 써주면
_는 자리 수를 의미하므로 A뒤에 한 글자만 오는 값을 나타낸다.
NULL을 조건에 입력하기 위해선 'IS'와 함께 입력한다.
그러면 MANAGER컬럼이 NULL값인 결과가 나타난다.
'개발 교육 TIL > back-end' 카테고리의 다른 글
[오라클] JOIN문 (EQUI,INNER,OUTER,CROSS,SELF) (0) | 2022.01.27 |
---|---|
[오라클] 숫자함수, 문자함수, 날짜함수 (2) | 2022.01.25 |
[오라클] 설치 command, 데이터베이스 초기 지식 (0) | 2022.01.23 |
[Java] Class클래스, 채팅창 프로그램(서버 기준) (0) | 2022.01.16 |
[Java]이벤트 - 윈도우창 생성 (0) | 2022.01.14 |