반응형

정렬 : 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;

반응형

+ Recent posts