-- hr 계정 언락 alter user hr account unlock; -- hr 계정 비밀번호 설정 alter user hr identified by hr; -- schema : table이나 view 등이 이루고 있는 논리 단위 -- table : row-행, column-열로 이루어진 데이터 집합체 select * from tab; select * from employees; select employee_id, first_name from employees; --alias 멸칭 붙이기 select employee_id 사원번호, first_name as 이름, last_name "성", salary "월 급 Dolloar", salary Dollar from employees;
-- table 구조 파악 : desc[ribe] desc employees; select job_id from employees;
-- 중복된 값을 제거 : distinct select distinct job_id from employees;------------->
-- where 절 : 조건절 select * from employees where salary >= 5000; -- 5000달러 이상의 월급만 조회
-- 부서번호가 100번인 사원들 출력 select * from employees where department_id = 100;
-- 직업이 IT 프로그래머 인 사람들 출력 'IT PROG' select * from employees where job_id = 'IT_PROG';
-- order by 정렬 : 오름차순(ASC), 내림차순(DESC) select * from employees order by salary; -- 오름차순이 기본값이다 select * from employees order by salary DESC;
-- 100번 부서 사람들을 월급의 내림차순으로 출력하시오 select * from employees where department_id = 100 order by salary desc;
-- 월급으로 1차정렬, 이름(first_name)으로 내림차순 정렬 select first_name, salary from employees order by salary desc, first_name;
** select 쿼리 실행(파싱) 순서 ( from - where - group by - having - select - order by )
(5) select
(1) from
(2) where
(3) group by
(4) having
(6) order by
-- where 조건절 2개 이상 ( and, or ) -- 직업이 IT_PROG 이고 월급이 5000 이상인 사원들 출력 ( 이름 역순으로 ) select * from employees where job_id = 'IT_PROG' and salary >= 5000 order by first_name desc; -- where select * from employees --where job_id = 'FI_ACCOUNT' or job_id = 'IT_PROG'; --where job_id in ('FI_ACCOUNT', 'IT_PROG'); -- or 의 경우에만 해당, 위와 동일 --where not job_id in ('FI_ACCOUNT', 'IT_PROG'); -- 부정 where job_id not in ('FI_ACCOUNT', 'IT_PROG'); -- 부정 -- like 연산자 -- _(자리수), %(모든것) 와 같이 쓰인다. select * from employees --where first_name like 'Steven'; --where first_name like 'S%'; --where first_name like '___e%'; --where first_name like '%s%'; -- 이경우엔 대문자S로 시작하는 사람은 검색 안됨 where lower(first_name) like '%s%'; -- 대문자까지 검색 가능!! -- 같지 않음 ( !=, <>, ^= ) -- 날짜 이름도 부등호 사용 가능 select * from employees where hire_date >= '00/01/01'; -- 00'년도에 입사한 사람들을 출력 select * from employees where hire_date >= '99/01/01' and hire_date < '00/01/01'; --where hire_date like '99%'; --between A and B --월급이 5000~9000 사이의 사람들 출력 select * from employees --where salary >=5000 and salary <= 9000 order by salary desc; where salary between 5000 and 9000 order by salary desc; --null값 비교 select * from employees --where commission_pct is null; --값이 없을때 where commission_pct is not null; -- 값이 있을때 -- 함수 ( function ) -- ceil 올림 select 1, '완샘', ceil(0.5), ceil(0.2), ceil(0.333*10)/10 from dual; -- 있는 그대로 출력, 주로 테스트용 --floor 내림 select floor(0.999*10)/10 from dual; --round 반올림 select round(0.4), round(0.6) from dual;
2012/08/16 - [Dev. 데이터베이스/SQL 예제] - [SQL 문제] 기본 select 문제
2012/08/16 - [Dev. 데이터베이스/Oracle 관련] - [Oracle SQL Reference] 오라클 함수 menual
'Dev. 640시간 뭉개기 > 강의내용정리' 카테고리의 다른 글
[데이터베이스] 17일차 - 정규식복습, 날짜 함수 (0) | 2012.08.20 |
---|---|
[데이터베이스] 16일차 - 함수(숫자, 문자), 정규식 (0) | 2012.08.17 |
[데이터베이스] 14일차 - 테이블 생성.변경.삭제.관리, 제약조건, 데이터 삽입.수정.삭제, (0) | 2012.08.14 |
[데이터베이스] 13일차 - 오라클 설치, 명령어, 권한, 롤 (0) | 2012.08.13 |
[자바] 11일차 - 열거형(Enumeration), 인코딩(Encoding), 파일 입출력 (0) | 2012.08.08 |