한라인에 출력할수있는 기본 문자수는 80인데 조로케 하거니꼬롬 100으로 变换了呀!
11g scott/tiger
select ename, 'is a ', job from emp; // 이건 안이뻐 탭으로 나뉘어
select ename || ' is a ' || job from emp; // 요게 이어지는 맛이 이찌잉
부서 번호 출력
select deptno from emp;
DISTINCT - 중복값 제거 // distinct는 '여러 개 섞여 있는 중에서 손을 찔러(stinct) 넣어 필요한 것만 따로(dis) 두다'
select deptno from emp; -->> select distinct deptno from emp;
SQL* PLUS 문
list 축약 L ... 뭥미?
/ 과 R 의 차이는... R누르면 버퍼에썼던 명령어까지 보여줌 明白吗?
EDIT -> ED
ED 우분투에서 vi로 돌리는것 잘不知到呀 , 有问题(wenti , ASK)
컬럼 제목 출력
set heading on(off) 니꼴뤼
라인사이즈
set linesize 80(기본) 100주면 좋고
페에지 출력라인수
set pagesize 10
컬럼에 저장된 데이터 출력형식 변경위한 column format
desc emp // 뭐 컬럼 길이변경으로 알자
column ename format a25
문자 형식의 컬림 출력길이 조정
숫자형은 원래 길이에맞게 컬럼길이가 조정된다 굳이 할라믄
a다음에 원하는 길이입력대신 999999 나 000000으로 느믄 댄다잉
column sal format 9,999,999
column comm format 0,000,000
where 문
=,>=, <=, // 이건 알잖어
<>, !=, ^= 다르다
select * from emp where sal >=3000;
부서 번호가 10인놈 출력
select * from emp where deptno=10;
급여가 1500이하 사원의 사원번호, 사원명, 급여를 출력하라
select empno, ename, sal from emp where sal>=1500;
문자 데이터 출력
select empno, ename, sal from emp where ename=FORD;
FORD사원 위처럼 찾으면 에러 난다
select empno, ename, sal from emp where ename='FORD'; // 반드시 작은따옴표 출력
select * from emp where sal>=2000 and sal<=3000;
아직까지는 엑셀보다 훨씬 쉽다 닝기리
select * from emp where sal between 2000 and 3000;
select * from emp where sal not between 2000 and 3000; // not 도 있네 희안
select * from emp where comm=300 or comm=500 or comm=1400;
커미션이 300,500,1400 인 녀석들 뽑아내는건디 더 쉽게 하는 방봅 in 연산자 함수 사용 밑에
select * from emp where comm in(300, 500, 1400);
select * from emp where comm<>300 or comm<>500 or comm<>1400;
커미션 숫자들이 아닌 연산자 뽑아내기
select * from emp where comm not in(300, 500, 1400);
like 연산좌와 와일드카드
FORD라는 이름 찾을때 f로 시작하는건 알지만 딴건 모를떄 워쩔까?
select * from emp where enam='F'; // 요로커럼 하믄 안된당께
select * from emp where ename LIKE 'F%' ;
와일드카드 -> %는 문자없거나, 하나이상의 문자+가 되어도 没关系
_하나의 문자에 어떤 값이 와도 상관읍다
select * from emp where ename like '%A%' // ename 중간에 A포함된거 어떤것이든 찾아내
select * from emp where ename like '_A%'// ename 두번째 글자가 A이고 그뒤는 무엇이든 찾아내
select * from emp where ename like '__A%' // ename 세번째 글자가 A인고
ESCAPE 연산자 옵션 - 못쓰는 문자열 검색해주게 하귀
select empno, ename from emp where ename like '%\%%' escape'\';
위에서 \%구문은 %를 검색하게 한다 암턴 알잖어.......
커미션이 0인 사람 검색할때 과욘
select * from emp where comm=null; //으로 검색하면될까? 안된다
select * from emp where comm is null;
드디어 order by!
select * from emp order by sal asc; // asc 오름차순 암턴 asc안써도 디폴트값이다
select * from emp order by sal desc; // desc 내림차순
급여 많이 받는 순서중 겹치는 사람분명 있다. 이때 이름순으로 하기
select * from emp order by sal desc, ename asc;
select empno, ename, job, hiredate from emp order by hiredate asc;//
select empno, ename, from emp order by empno dsc;
select * from emp order by empno asc, hiredate asc;
dual 테이블 // 뭐 dummy같은 가상공간 정도.... 한번 뿌리기
select sysdate from daul; // 현재날짜 얻어내기
숫자함수
ABS | 절대값 |
COS | COSIEN값 반환 |
EXPT | e(2.7xxxxx)의 n승 반환 |
FLOOR |
소수점 아래 버려 |
LOG | log값 반환 |
POWER | power(m,n)m의 n승 반환 |
SIGN | sign(n) n<0이면 -1,n=0이면 0, n>0이면 1 반환 |
SIN | sine값을 반환 |
TAN | tagnet값 반환 |
ROUND |
특정 자릿수 반올림 |
TRUNC | 특정자릿수에서 버림 |
MOD | 나머지 값 반환 |
select 34.567,round (34.5678), round (34.5678, 2) from dual;
select trunc(34.5678, 2), trunc(34.5678, -1), trunc(34.5678) from dual;
select mod(27,2 --------------귀찮어 나머지 구하기
문자 처리 함수
lower, upper, initcap
귀찮어 시간남을때 정리
substr, substrb 함수 아주 유용
문자옆의 맨앞자를 대문자로 변환하는 inicap 함수
select '
이거 좀 중요
직급이 manager인 사원을 검색할때
select empno, ename, job, from emp where job='manager'; // 라고 치게되면 검색안된다.
컬럼에 저장된 데이터는 도무 대문자 형태이기 때문에 소문자 형태로 검색할라믄 LOWER써주자
select empno, ename, job, from emp where lower(job)='manager'; // 好好!
select length('Oracle'), length('오라클') from dual; // 글자 갯수 구하기
select lengthb('Oracle'), lengthb('오라클') from dual; // 바이트수 구하기
//한글은 2바이트알잖어..
select substr('Welcome to Oracle', 4, 3) from dual; // 아 이거 조아, 앞 4번째부터 뒤3칸까지
select substr('Welcome to Oracle', -4, 3) from dual; // 뒤쪽에서 4번째부터, 뒤 3칸
사원들 입사년도 추출해보자
select substr(hiredate, -2, 2), substr(hiredate, 4,3) from emp;
9월에 입사한 사원 추출
select substr(hiredate,4,3) from emp where substr(hiredate,4,3)='SEP';
select ename, hiredate from emp where substr(hiredate,4,3)='sep';
위처럼 치면 안나온다
select ename, hiredate from emp where substr(hiredate,4,3)='SEP';
select ename, hiredate from emp where lower(substr(hiredate,4,3))='sep';
ltrim 왼쪽공백문자 읍애기 rtrim은 뭐 오른쪽이지
TRIM 함수 -대상 문자열 첫or마지막글자열에서 잘라내기
날쫘 구하귀
연봉계솬
DECODE 함수
부서번호 10대신 'A', 20대신'B', 그외번호 'DEFAULT' 출력
딴것도 해보지 뭐
10~40까지 주었고 DNAME 이라는 이름 줌
'wif LiNoUz > Oracle,Sql' 카테고리의 다른 글
DW ERD (0) | 2012.10.16 |
---|---|
이게 2번인듯 (0) | 2012.08.15 |
2 (0) | 2012.08.15 |
Oracle 설치 (0) | 2012.08.09 |
Oacle 10g for Linux 다운로드 링크 (0) | 2012.08.09 |