SQL(11)
-
SQL 차집합, 교집합, 합집합(Union, Union all, intersect, minus, exists)
--실습테이블 생성----테이블 생성--create table class_1(id varchar2(100),constraint number_pk primary key(id),name varchar2(100) not null,total_scoure varchar2(100));create table class_2(id varchar(100),constraint in_2 primary key(id),name varchar2(100) not null,total_scoure varchar2(100));--값 삽입--insert into class_1 values('1001A', '나상현', 500);insert into class_1 values('1002A', '유다빈', 480);insert into clas..
2024.09.17 -
SQL 윈도우 함수(집계함수와 윈도우 함수, 순위함수)
--윈도우 함수-- select * from emp; select sum(sal) as sum_sal from emp; select empno, ename, job, deptno, sum(sal) as sum_sal from emp; --에러!--합계, 평균, 갯수 등 집계된 값을 확인하기 위해서는 보통 group by를 사용하지만 group by를 사용할 경우 그룹된 값과 집계된 값 이외에는 값을 확인할 수 없다. 만약, 부서별로 급여의 합계를 구하고싶은데, 그 부서에 누가있는지, 직업은 뭔지 등 구체적인 정보와 함께 출력하고 싶다면 윈도우 함수를 사용하면 된다. windowing function--윈도우 함수_집계함수와 함께 사용하기-- --급여전체합계 구하기-- select empno, ename,..
2024.09.15 -
SQL join종류와 테이블 복사하기
joinjoin은 정규화 작업시 분리시켜놨던 테이블들이 가지고있는 공통된 KEY를 가지고 합하여 한꺼번에 하나의 테이블로 출력하는 걸 말한다. join의 종류inner joinleftouter joinrightouter joinfull outer joinself joinnatural joincross join cross join등이 있다.오라클의 경우 주의해야할점은 표준 조인과 쿼리문 작성방법에 약간의 차이를 가진다. inner join--inner join--select * from emp;select * from dept;--부서정보와 사원정보 한꺼번에 출력하기--select e.empno, e.ename, e.job, e.sal, e.deptno, d.dnamefrom emp e ,dept dwh..
2024.09.13 -
SQL 그룹함수(group by, grouping, rollup,cube)와 having
group bygroup by는 해당 컬럼의 같은 값끼리 그룹화를 진행시켜주는 구문이다. 형식은 group by 컬럼명의 형태로 적는다.--부서별로 그룹나누기--select deptno from empgroup by deptno;--직업으로 그룹화하기--select job, count(*) as job_count from empgroup by job order by job_count;group by를 사용할 경우, group by에 정의되지 않은 컬럼은 select 절에서 사용할 수 없다. 부서별로 그룹화했는데 사원이름인ename을 함께 출력하고자 하여 select 절에 ename을 추가하게 되면 에러가 발생한다. 이미 그룹화를 하여 그룹별 하나의 값인 단일행으로 그룹화되었는데 사원이름은 다중행이다보니..
2024.09.12 -
SQL 데이터베이스 다루기_[alter,별칭]
테이블의 구조변경(DDL)테이블의 내용이 아닌, 테이블 구조 자체를 변경하는 가장 대표적인 DDL중 하나인 alter에 대해서 알아보자.alter은 테이블의 구조를 수정하거나 변경할때 사용하며, sql언어마다 대부분 비슷하지만 오라클addmodifydrop columnrename torename column to*오라클의 경우 column이 붙은 명령어는 단일행만 수정가능하다. mysql(MongDB포함)add columnmodify columndrop columnrenamechange column 이정도의 차이점이 존재한다.그럼 일단 alter을 연습할 테이블을 간단하게 하나 만들어주고 시작하자..!--테이블 생성create table emp1( empno number, ena..
2024.09.11