2장 데이터 제한미 정렬
SQL 기본2017. 7. 5. 19:47
2장 데이터 제한 및 정렬
2장 목차
1. where 절
2. 비교 연산자
3. 논리 연산자
4. 연산자 우선 규칙
5. order by 절
6. 치환변수
7. sqlplus 명령어 : define , Verify 명령어
■어제 배운 내용 복습
1. SQL 이란 무엇인가.
data를 검색하고 조작하는 언어
small data (정형화된데이터)
|
|
emp같이 컬럼과 행(row)로
이루어진 틀(table)에 맞추어
입력된 데이터
|
고대 통계학과 허명회 교수의 표현
=> 지금까지 한번도 분석해보지 않은 data
하둡 -> 자바 -> NoSQL(HIVE, pig...)
SQL ---> R --->python --->shell 스크립트 ---> java
|
2. SQL 을 왜 배워야 하는거?
3. 기본 SQL 문
- select 절 , from절 , where 절
- distinct 키워드
- 연결연산자
- 오라클의 연산자 3가지
- 산술연산자 * / + -
- 논리연산자 : and , or , not
- 비교연산자 : > , < , >= , <= , = ,!= , ^= , <>
* 기타 비교 연산자
문38. 81년도에 입사하지 않은 사원들의 이름과 입사일을 출력하시오
select ename, hiredate from emp where hiredate not between '81/01/01' and '81/12/31';
select ename, hiredate from emp where hiredate not like '81%';
문39. 이름, 연봉(sal * 12) 을 출력하는데 연보잉 36000이상인 사원들의 이름과 연봉 출력
( 연봉의 컬럼명이 한글로 연봉이되게 하시오)
select ename, (sal * 12) as "연봉"
from emp
where sal * 12 >= 36000;
select ename, (sal * 12) as "연봉"
from emp
where 연봉>= 36000; ============> 이건 안됨
△실행순서때문에 from -> where -> select 순서로 실행함
2.4 연산자 우선규칙
문법 : select sal + 10 * 12
from emp;
문40. 직업이 SALESMAN 이거나 직업 ANALYSY이고 월급이 1500이상인 사원들의
이름과 월급과 직업을 출력하시오
select ename, sal , job
from emp
where job = 'SALESMAN'
or job = 'ANALYST'
and sal >= 1500;
AND가 우선순위 더 높다
select ename, sal , job
from emp
where (job = 'SALESMAN'
or job = 'ANALYST' )
and sal >= 1500;
2.5 ORDER BY 절
" 결과 데이터를 정렬할 때 사용하는 절"
*문법 : select ename, sal
from emp
order by sal asc;
↑
옵션 : 1. ascending : 오름차순
2. descending : 내림차순
select ename, sal
from emp
order by sal desc;
문41. 직업이 SALESMAN 인 사원들의 이름과 월급과 직업을 출력하는데
월급이 높은 사원부터 출력하시오
SELECT ENAME, SAL, JOB
FROM EMP
WHERE JOB = 'SALESMAN'
ORDER BY SAL DESC;
※ ORDER BY 절은 맨 마지막에 사용하고 맨 마지막에 실행이 된다.
문42. 81년도에 입사한 사원들의 이름과 입사일을 출력 하는데 최근에 입사한 사원부터
출력하시오
SELECT ENAME, HIREDATE
FROM EMP
WHERE HIREDATE LIKE '81%'
ORDER BY HIREDATE DESC;
SQLgate 툴---> 국내에서 만든 오라클 접속과 관리툴 sqlplus가 사용하기 불편해서좀 더 사용하기 편하게 쓸 수 있도록 만든 툴
파일 -> 새 연결 -> host(localhost), id / 비번 입력 -> 서비스이름 xe.
SQL 실행은 Ctrl + Enter
문제42 30번부서번호에서근무하는사원들으이름과월급을출력하는데월급이높은사원부터출력하시오
select enmae, sal
from emp
where deptno = 30
order by 2 desc;
문제43, 직업, 월급을 아래와 같이 출력하세요
select job, sal
from emp
order by job asc, sal desc;
2.6 치환변수 &
치환변수를 사용하게 되면 반복적으로 수행해야하는 SQL 작업을 단순화 시킬 수 있다.
** 문법 :
select empno, ename, sal
from emp
where empno = &사원번호;
set verify off old new없어짐ㅎ
문 44. 아래와 같이 이름을 물어보게 하고 이름을 입력하면
해당 사원의 이름과 월급과 직업이 출력되게 하시오
select ename, sal, job
from emp
where ename = '&이름';
※ 이름을 소문자로 입력해도 출력하고 싶다면 함수를 사용해야 한다
문45 .select ename, sal , job
from emp
where ename = upper('&이름');
2.7 define 명령어
바인드 변수에 값을 임의로 바인딩하고자 할 때 사용 하는
SQL*Plus 명령어
문 46. (점심시간 문제)직업이 SALESMAN 이 아닌 사원들의 이름과 월급과 직업을 출력하는데
월급이 높은 순서대로 출력하고 각각의 컬럼명이 한글로 이름, 월급 직업이라고
출력되게 하는데 SQL gate에서 수행하라
select ename "이름", sal "월급", job "직업"
from emp
where job = 'SALESMAN';
'SQL 기본' 카테고리의 다른 글
6장 조인 문법 (0) | 2017.09.07 |
---|---|
5장 복수행 함수 변환 함수 및 조건부 표현식 사용 (0) | 2017.09.07 |
4장 DECODE와 PIVOT 변환 함수 및 조건부 표현식 사용 (0) | 2017.07.05 |
3장 단일 행 함수를 사용하여 출력 커스터마이즈 (0) | 2017.07.05 |
1장 SQL SELECT 문을 사용하여 데이터 검색 (0) | 2017.07.05 |