SQL(20)
-
SQL case when 구문과 활용방안(순서 치환), comment 달기
case whencase when은 기존 테이터 테이블에서 원하는 데이터를 원하는 특정값으로 분기처리해서 출력할 수 있는 구문이다. case when의 경우 단순case when 표현식과 검색 case when표현식으로 작성한다. 단순 case when 표현식--실습테이블 불러오기-- select * from emp1; --단순 case 표현식-- select ename, empno, sal, deptno, case deptno when 10 then '개발부' when 20 then '영업부' when 30 then '마케팅부' when 40 then '기획부' else '해당없음' end as denam from emp1; 단순case구문에서는 case옆에 분기처리할 해당 컬럼을 적고 when값에는 ..
2024.09.14 -
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 (시퀀스와 제약조건, 식별자, 비식별자)
시퀀스시퀀스란 번호를 순차적으로 증가하는 숫자를 생성하는 객체이다.MariaDB 의 경우 컬럼 자체에 auto_increment라는 번호를 자동으로 증가를 할 수 있는 옵션이 있으나 오라클에서는 자동 증가 컬럼을 사용할 수가 없다. 그러므로 오라클에서는 컬럼의 값을 증가시키기 위해서는 시퀀스를 사용하거나 MAX(컬럼) + 1 을 사용하여 번호를 증가시켜야 한다. 시퀀스 옵션CREATE SEQUENCE 시퀀스명[INCREMENT BY n] [START WITH n] [MINVALUE n | NOMINVALUE] [MAXVALUE n | NOMAXVALUE] [NOCYCLE | CYCLE] [NOCACHE | CACHE] [NOORDER | ORDER] *하지만 실무에서는..
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 order by(다양한 정렬방법들) 와 집계함수
orderby order by는 쿼리문중에 순서상 가장 마지막에 수행된다. 정렬을 수행하는 구문이기때문에 출력할 값들을 전부 고른 후에 어떻게 정렬할지 order by구문에서 정의되기때문이다.order by가 생략될 경우에는 출력되는 컬럼들은 랜덤으로 정렬되어 출력된다 order by_오름차순--order by----asc, desc--select * from emp;--select절의 맨 마지막에 작성--select * from emp order by sal; --오름차순--select ename, job from emp order by sal; --select 절에 명시되지 않은 컬럼을 기준으로 정렬하는것도 가능함----이렇게 적을 경우 orderby가 항상 마지막에 실행되기 때문에----사원이름과 ..
2024.09.12 -
SQL dual 테이블과 연산자와 where절
dual테이블dual테이블은 쿼리 결과를 쉽게 확인해볼 수 있는 임시 테이블이다.--dual테이블 사용하기--select * from dual;--daul테이블에서는 true라면 x가 출력된다--select 100+88+90 from dual;select 273/3 from dual;--dual테이블을 사용하지 않는 경우select * from dept;--dept테이블의 행은 4개--select 2*2 from dept;--연산을 할때 dept테이블을 사용했으므로 행의 개수인 4개만 출력--dual테이블을 다른 연산자없이 사용하게되면 위의 스크립트 창처럼 x라는 값을 반환하는데 이는 그냥 x라는 단하나의 값을 저장하고있을뿐 사실상 의미는없다.쿼리문 실행결과가 하나의 행으로 출력하기 위해 하나의 값을 구..
2024.09.12