DB 총정리

Popconnect·2023년 3월 29일
Oracle / Mysql

데이터베이스 운영 (DBA)
SQL (개발자)
ANSI 표준 SQL + 확장 sQL

> DML select insert update delete
DDL create alter drop rename truncate
DCL grant revoke
TCL commit rollback savepoint


데이터베이스화 장부-> 프로그램화 ERP
   Extended ERP
      사람 -- 물건
      직원 - 고객(회사) - CRM
      
ERP
insert update delete

Extended ERP
select 컬럼명
from 테이블명
where 조건
order by 정렬
limit 



함수
   단일행 함수  => 1 : 1
   		information 	- 시스템 정보
        Numeric			- 수학 함수
        String 			- 문자열 처리 함수 (1)
        Date			- 날짜 함수 (2)
        Control			- 제어 (3)
        	ifnull + 산술연산자
   그룹 함수 	=> 여려개 : 1
   		
        
select deptno, count(*) from emp group by deptno;
직업코드의 수를 구하고 직업코드 / 개수로 표기
select job, avg(sal) from emp group by job;
직책별 평균 급여를 계산해서 job / avg 로 표시
 
group by ~~ 를 그룹으로 묶어서 카운팅 
그룹화되서 앞에 절에 ~~를 출력가능
      
select deptno, job, sum(sal) from emp group by deptno, job
deptno 와 job 을 동시에 그룹으로 묶어서 합계를 출력
group by 안에는 order by 정렬기능이 포함되어있다.

select empno, ename, sal
from emp
where job in (select distinct job from emp where deptno=20);

< ANY : 서브쿼리의 리턴값 중 최대값
> ANY : 서브쿼리의 리턴값 중 최소값
< ALL : 서브쿼리의 리턴값 중 최소값
> ALL : 서브쿼리의 리턴값 중 최대값

------------
INNER JOIN
------------
Join
select * from emp inner join dept where emp.deptno = dept.deptno
조인 조건 = equi join

출력할 테이블
select e.empno, e.ename, d.dname, d.loc, e.deptno, e.job 
emp 와 dept를 엮음
from emp e inner join dept d 
		-- on (매칭조건)
		on (e.deptno = d.deptno)
        -- e.job 이 clerk 검색
		where e.job= 'clerk';
        
        
----------
OUTER JOIN
----------
한쪽 정보 완전히 출력 나머지 연결만 null
right outer join	(오른쪽 중심의 오른쪽 연결)
left outer join		(왼쪽 중심의 왼쪽 연결)
full outer join		(양쪽 다 확인)


---------
SELF JOIN
---------
한 테이블 내부에 조인
inner join
outer join


        
profile
Programmer

0개의 댓글