where.절 사용
모든 레코드에서 특정 레코드만 검색해야 할 때
산술 연산자 ||를 제외한 연산자를 사용할 수 있다
full-scan: 비교 값에 해당하는 컬럼값을 상위레코드에서부터 아래로 전체레코드를 검색하면서 조회하는 것,.
사용법)
wher 컬럼명 연산자 비교값
between and - 숫자의 범위를 조건으로 사용할 때
사용법)
where컬럼명 between 작은값 and 큰 값
in
포함하는 값을 검색할때 사용(or는 in으로 대체할 수 있다)
컬럼명 in 값들
문자열 연산자
문자열 데이터 중 일부분의 데이터로만 검색할 때 사용.
%, _ 특수문자와 함께 사용됨
%: 글자수에 상관없는 모든 문자열을 비교할 때 사용
사용법)
컬럼명 like '값%' -값에 해당하는 문자열로 시작하는
컬럼명 like '%값' - 값에 해당하는 문자열로 끝나는
컬럼명 like %값% - 문자열에 이 값이 포함만 돼있으면 됨
where addr like '서울시%' => 서울시로 시작하는
where addr like '%영통동' -=>영통동으로 끝나는
where name like '%우%' => 이름에 우를 포함하는
_ (언더바임ㅋ): 한 글자에 해당하는 문자열을 비교함.
사용법 )
컬럼명 like' _값 _'
이름이 3자 이면서 마지막 글자가 '수'로 끝나는 이름
where name like ' _ _ 수 ';
이름이 3자이면서 가운데 글자가 '우'인 이름
where name like '_우_';
이름이 4글자인 이름 검색하기
where name like ' _ _ _ _ ';
외부파일에 존재하는 데이터 추가하기
sqlldr.exe 사용=>
0. 테이블 생성
1. CSV 파일로 변경해야함
2 ctl파일을 만들거나 수정
3. sqlldr.exe를 사용해 dbms에 추가하기
사용법) DOS창에서 실행
sqlldr userid = 계정명/비번 control = ctl파일명
중복 배제
group by , distinct 두가지로 가능
distinct
- 컬럼에 중복값을 출력하지 않을 때 사용하는 키워드.
조회 컬럼명 앞에 정의.
error가 발생하지 않는다.
여러 행이 검색되는 컬럼과 같이 검색하면 중복배제를 하지 않는다.
사용법
select distinct 컬럼명
중복값이 없는 컬럼과 함께 사용되면 중복배제를 하지 않는다.
job만 검색하면 중복되는값을 잘 배제함
이때 ename은 중복되는값이 없기에 다 나옴
중복값이 있는 컬럼과 함게 사용되면 앞에 컬럼에 중복각ㅄ과 뒤에 사용되는 컬럼에 중보값이 존재하는 경우
해당컬럼에 중복배제를 수행함
job, mgr이 중복된다면 뒤의 컬럼인 mgr을 기준으로 중복처리를 한다.
group by 절
조회 컬럼의 중복값을 그룹으로 묶어서 조회하는일.
그룹으로 묶여지지 않는 컬럼이 조회컬럼에 나오면 error가 발생
select 그룹으로 묶인 컬럼명만 조회
from 테이블명
group by 그룹으로 묶을 컬럼명
집계함수와 함께 사용하면 그룹별 집계를 얻을 수있다
having 절을 사용하면 그룹으로 묶여질 조건을 설정할 수 있다.
사용법
select
from
group by 그룹화 할 컬럼명 , , ,
having 그룹으로 묶을 조건
order by 절
검색된 레코드를 정렬할 때 사용.
오름차순 정렬, 내림차순 정렬이 가능함
문자열의 정렬은 자릿수의 대한 정렬을 수행함.
문법)
order by 정렬할 컬럼명 정렬종류 , 정렬할 컬럼명 정렬 종류 , , ,
두번째로 나오는 컬럼명은 앞의 컬럼에 같은 값이 존재하면 두번째로 정렬할 컬럼명를 설장함.
정렬 종류는 asc(오름차순, 기본값) , desc(내림차순) 두개가 있다
쉽게말해 이게 겹치면 이 다음조건, 또 겹치면 그 다음 조건,,,
문자열 데이터형으로 만들어진 컬럼이 숫자 형식의 값을 가졌을 때,
정렬을 수행하면 자릿수에 대한 정렬을 수행을 한다.
num varchar2(10)
num |
1 |
1001 |
2 |
201 |
10004 |
25 |
이때
select num
from 테이블명
order by num; 하면 자릿수에 대한 정렬 수행
null비교 연산자
값이 있긴 하나 숫자도 문자열도 아닌 사용할 수 없는 값.
연산되면 연산으 ㅣ결과가 null이 나온다.
null은 ㅜㄹ력되지 않는다
null 은 관계연산자인 = 으로는 비교되지 않는다
사용법)
is null - null인값 비교ㅕ
is not null
컬럼에 null을 추가하자.
숫자(number) , 날짜(data) 컬럼은 컬럼을 생략해야만 null이 입력된다.
문자열(char, varchar2) 은 추가시 컬럼을 생략하거나 ' ' 을 입력하면 null이 입력된다.
function
자주 사용될 기능을 미리 구현하여 제공하는 것 .
오라클 자체에서 제공하는 내장함수(built-in function)와 사용자가 정의하는 함수(user define function) 2가지가 존재
함수는 PL/SQL을 사용하여 정의할 수 있다
함수는 create or relace function 함수명(매개변수)
return 데이터형
is
변수, table, record
begin
업무로직 구현
return 값
exception
end; //이게 함수 정의하는거 묘사한거임..
insert, where절, having절 , 조회 컬럼에서 사용할 수 있다
사용법)
함수명(값,값)
패키지명.함수명(값 , , , ,) //여기서 값들은 컬럼명이 될 수 있다.
dual 테이블
-모든 계정이 사용할 수 있는 가상의 테이블.
같은 이름으로 테이블이 생성되면 사라지고, 테이블을 삭제하면 다시 사용할 수 있다.
함수를 테스트할 때 사용하면 유용함.
select에 정의하는 값으로 컬럼을 만들고 한 행을 조회한다.
컬럼의 이름을 변경하고 싶다면 alias를 부여한다.
alias를 사용해 컬럼명을 설정하는 예시
조회컬럼을 대소문자를 구분하여 사용하고 싶다면 alias에 " " 을 사용하면 된다.
수치함수
절대값 :abs
사용법 abs(값)
반올림:round
사용법
round(값, 반올림하여 볼 자리수)
//이때 자리수를 양의 정수로 사용할 수 있다, 실수부 자릿수가 설정 되고 반올림했을때 볼 자릿수
예를들어
round(555.555 , 2) //이때 2는 반올림 했을때 볼 자릿수로
수업 pt 넣기
음의정수를 사용 - 정수부의 자릿수가 설정되고 해당자리에서 반올림하여 보여준다
올림: celi
ceil(값)
내림:floor
floor(값)
절사 : trunc
trunc(값,자릿수)
-양의정수- 실수부의 자릿수가 설정되고 설정한 다음 자리를 절사한다
trunc(555.555,2) //소수점 셋째 자리를 절사하여 2번째 자리를 보여줌 555.55
음의 정수 사용- 정수부의 자릿수가 설정되고, 해당 자리부터 절사한다