분류 전체보기 850

oracle 조인

--두 테이블을 함께 출력하는데 from절에서 그냥 아싸리 컴마를 이용해서 지정해주면 그냥 다 나오게 된다. 기본이 non-equaljoin이기 때문이다.--equal조인은 테이블을 비교해서 departmentID가 같니 이렇게 따져봐서 한번밖에 출현안함안나온놈의의 반대편에 (+)을 표시한다.없는애를 있게 만든다는 그거null값을 포함하고 있어서 안나오는애들은 어디서 데이터를 출력하는애들에 따라 다름outer join - 그냥 안나오는애 다들 뿅 튀어나오게 하려는데 목적이 있다. 셀프조인도 알아보자select e.employee_id, e.first_name, e.salaryfrom employees e, employees mwhere e.manager_id = m.employee_id(+)

데이터베이스 2014.09.11

oracle 날짜함수

--날짜함수. 기준이 월이다. --오늘의 날짜는?select sysdate from dual --입사일로부터 경과일수는? 일수는 무조건 빼기select first_name, hire_date, sysdate - hire_date from employees -- 일자 잘라버리기select first_name, hire_date, trunc(sysdate - hire_date,2) from employees --몇달 지난지 계산하고 싶으면select first_name, hire_date, trunc(months_between(sysdate, hire_date)/12,2) from employees --추가--오늘부터 10일 후는 며칠select sysdate + 10 from dual --입사 1000일이..

데이터베이스 2014.09.11

oracle 숫자함수 사용하기

--숫자함수는 기본적으로 자바와 비슷한 면이 많다. ceil(천장) 무조건 올림floor(바닥) 무조건 버림round 반올림(자리수 지정이 가능)trunc 버림(자리수 지정이 가능) -- 자리수 지정은 정수는 소수점, select 123.45,round(123.4567, 2),round(123.4567, -2),trunc(123.4567, 2) "소수점버림",trunc(123.4567, -2) "정수버림"from dual 결과는 123.46, 100, 123.45, 100과 같다. --각 사원별로 커미션의 금액을 알고자 한다.select first_name, nvl(salary * commission_pct,0) from employees

데이터베이스 2014.09.11

oracle 오라클에서 쓸수있는 문자함수

--대문자 소문자 변환select upper(first_name), lower(last_name) from employees --이름중에 대소문자 구분없이 'a'가 포함된 사원은?select lower(first_name || last_name) from employees --where절에도 lower로 바꿀수있다.select first_name, last_name, salaryfrom employeeswhere lower(first_name || last_name) like '%a%' --첫글자만 대문자로 변경, 함수를 겹쳐써도 된다.select initcap(lower(first_name) || last_name), salaryfrom employees --지정한 글자수만 뽑아서 출력 => subst..

데이터베이스 2014.09.11

oracle 비교연산자를 쓰지말고 is null, is not null 로 null을 골라내자

is null, is not null => null값 비교, null값은 비교연산자를 사용하지 않는다.비교연산자, 즉 =을 사용하면 결과는 데이터를 찾을수가 없다고 나오기 때문에,= 대신 is를 써야한다.null이 아닌놈들을 골라낼때는 is not null구문으로 null이 아닌놈을 골라낼수 있다 --예제select first_name, salary, commission_pctfrom employeeswhere commission_pct is null

데이터베이스 2014.09.11

oracle in과 any 이용해 between여러가지 조건을 편하게 검색

--and를 귀찮게 적어줄필요 없이 in을 통해 여러 조건을 매칭시켜볼수 있다.--in(value1, value2, ...) ()안의 값이 매칭된 놈만 출력이 되는것이다. select * from employees where salary in(9000,10000,8000) --in을 any로 바꿀수 있는데, 이때는 컬럼명 = any(value1, value2...)의 형태로 쓴다. select * from employees where salary = any(9000,10000,8000) --any는 비교연산자를 사용하기때문에 다른 결과를 출력할수도 있다. select * from employees where salary >= any(9000,10000,8000)--()안에 가장 작은 값이상 항목을 리턴해..

데이터베이스 2014.09.11

oracle ||을 이용해 컬럼 붙여서 하나의 컬럼으로 출력하기

-- 컬럼 이어쓰기 => ||-- 예를들어 first이름과 last이름이 다른 컬럼에 구분되어 저장이 되고 있다면, ||를 통해 붙여서 출력할수 있다. select first_name || last_name, salary from employees --한칸을 띄어서 주면 더 깔끔하게 나올수 있다. 물론 별칭을 줘도 아주 좋다.select first_name || ' ' || last_name 이름, salary from employees --이름을 ()로 감싸서 이어서 공백을 두고 출력하고자 하면 어떻게 해야될가select (first_name || ' ' || last_name) 이름, salary from employees--이런식으로 하면 괄호가 나오지 않는다. select '(' || first_..

데이터베이스 2014.09.11

Oracle Alias 쓰기

Column Alias(컬럼명에 별칭을 주기 위해 사용한다)컬럼명 as Alias컬럼명 Alias컬럼명 "Alias" => Alias자체에 공백을 포함하고 있는 경우에 대부분 쓴다. 공백이 없어서 당연히 쓸수있다. 오라클 DB에서 ""를 쓰는 경우는 Alias와 DB명을 지정할 경우 2가지 외에는 없다.나머지 텍스트등은 쌍따옴표가 아닌 걍따옴표를 쓴다. Alias에 싱글코테이션을 쓰면 에러가 날것이다. select first_name Name, salary as 연봉, commission_pct "커미션", hire_date "입사 연도" from employees

데이터베이스 2014.09.11