정렬

select * from {테이블명} order by {컬럼명} ;  -> 오름차순 정렬

select * from {테이블명} order by {컬럼명} desc ;  -> 내림차순 정렬


문자함수

upper, lower, intcap

select {컬럼명}, upper(컬럼명), lower(컬럼명), intcap(컬럼명) from employee ;


날짜

sysdate() <- 현재 날짜를 구하는 함수

select sysdate() from dual ;   ------------->dual = dummy 테이블


길이

length함수

select length('    ') from dual ; -> ' ' 내의 바이트의 길이를 알려줌

select char_length('    ') from dual ; -> 순수한 문자의 길이


붙이기 = concat

select concat ('붙' , '이기') from dual ;  


substr (문자열, 시작위치 ,가져올 갯수) 

select substr('abcdefghij', 4, 3) from dual ;  -> def

select substr('abcdefghij', -4 ,3) from dual ; -> ghi   >> 음수면 오른쪽부터 시작 위치 선정   

select substr('abcdefghij',  3) from dual ;    -> cdefghij >>3번째부터 전부

select substr('abcdefghij',  -3) from dual ;   -> hij >> 뒤에 3번째부터 전부


그룹함수 : 테이블의 전체 데이터(혹은 특정 조건을 만족하는 데이터 집합)에서 통계적인 결과를 구하는 함수들

-> 그룹함수는 하나이상의 행을 그룹으로 묶어 연산하여 하나의 결과를 구함

 sum, avg, count, max, min

select sum(컬럼명) as '  ' from {테이블명} ; 

select avg(컬럼명) as '  '  from {테이블명} ;

select max(컬럼명) as '  ' from {테이블명} ;

select min(컬럼명) as '  ' from {테이블명} ;

null 값은 무시;


distinct -> 중복값 제거

select distinct 컬럼명 from {테이블명};

select count(distinct 컬럼명) from {테이블명};


select 컬럼명 from {테이블명} where 컬럼명 = (select max(컬럼명) from {테이블명}) ;


데이터 그룹 사용하기 

select 컬럼명1, avg(컬럼명) from {테이블명} group by 컬럼명1 ;


직업이 MANAGER가 아닌 친구들에 대해 직업별로 그루핑해서 직업과 그룹별레코드수 ,그룹변 sal총합을 구하고

그중에서 sal총합이 5000보다 작으면 없애버리고 sum(sal) 기준으로 오름차순 정렬


select * from {테이블1}, {테이블2} ; -> 두개의 테이블을 같이 조회                               join

select * from employee e, dept d ; 

select * from employee, dept where e.deptno = d.deptno ;

select * from employee, dept where employee.deptno = dept.deptno ;

select * from employee e join dept d using(deptno);

select * from employee e join dept d on e.deptno = d.deptno;


self join -> 자기 자신과 자기 자신을 합치는거



+ Recent posts