정렬 : order by 칼럼or숫자 (되도록이면 숫자 쓰지말아야 함, 반드시 맨뒤로 옴)
asc(기본값으로 정해져있음) 오름차순 정렬 1,2,3,4,5...
desc 내림차순 정렬 10,9,8,7,6,5...
사회에선 일반적으로 내림차순을 많이 쓴다.
기수가 많다 = 중복이 적다
기수가 적다 = 중복이 많다
선택 (selection) : 원하는 행만 검색
select 컬럼,컬럼....
from 테이블
WHERE 조건
order by 컬럼
WHERE 컬럼 =(부등호연산가능) '문자타입'or 숫자
WHERE !(부정연산자) = '문자타입' >>>> '문자타입' 제외 하고 출력
ex) 보너스가 200 이하인 사원 검색 (데이터에 null이 있는 경우)
select eno 사번, ename 이름, comm 보너스
from emp
where comm <= 200;
= 데이터에 null 있으면 데이터를 신뢰할 수 없다.
select eno 사번, ename 이름, comm 보너스
from emp
where nvl(comm,0) <= 200;
=null값을 다른값으로 치환 해줘야 한다.
ALTER SESSION SET nls_date_format='YYYY/MM/DD:HH24:MI:SS';
-> 날짜 출력 형식을 정의하는 명령어
입사일이 1996년 이후인 사원의 정보를 검색한다.
select * from emp
where hdate >= '1996/01/01';
널과 비교 연산
널은 결정된 값이 아님으로 '=','<' 등의 비교 연산자를 사용할 수 없다.
널에대한 직접적인 검색은 다음과 같이 특별한 연산자를 이용한다.
IS NULL : 널을 검색한다.
IS NOT NULL : 널이 아닌 값을 검색한다.
예제)
1. 화학과 학생을 검색한다.
select * from student where major = '화학';
2. 평점이 2.0 미만인 학생을 검색한다.
select * from student where avr < '2.0';
3. 권현 학생의 평점을 검색한다.
select sname 이름, avr 평점 from student where sname = '권현';
4. 정교수의 명단을 검색한다.
select pname 이름, orders 직위 from professor where orders = '정교수';
5. 화학과 소속 교수의 명단을 검색한다.
select pname 이름, orders 직위 from professor where section = '화학';
6. 송강 교수의 정보를 검색한다.
select * from professor where pname = '송강';
7. 학년별로 화학과 학생의 성적을 검색한다.
select syear 학년, sname 이름, avr 성적 from student where major = '화학' order by 학년;
8. 2000년 이전에 부임한 교수의 정보를 부임일순으로 검색한다.
select * from professor where hiredate <= '2000/01/01';
9. 담당 교수가 없는 과목의 정보를 검색한다.
select * from course where pno is null;
10. 보너스가 급여의 10% 이상인 사원을 검색한다.
select ename 이름, sal 급여, comm 보너스 from emp where nvl(comm,0) >= sal/10;
'SQL' 카테고리의 다른 글
SQL 명령어 Self join, Outer join (0) | 2022.11.08 |
---|---|
SQL LIKE, BETWEEN, IN 연산자 (0) | 2022.11.08 |
CentOS 7 리눅스에 oracle 설치를 위한 설정 (1) | 2022.10.31 |
SQL 명령어 select, from, as생략 및 별명, nvl (0) | 2022.10.25 |
Oracle 베이스, 홈과 데이터베이스의 정의 (0) | 2022.10.24 |