본문 바로가기

나 취준생/SQL

(54)
SQL - 테이블 생성 1. 일반 테이블 생성하기 ( CREATE TABLE ) DDL 문 ( Date Definition Language ) : create, alter, drop, truncate, rename 겨울 왕국 대본을 오라클에 입력하고 엘사가 더 많이 나오는지 안나가 더 많이 나오는지,긍정 단어가 더 많은지, 부정 단어가 더 많은지 등을 SQL 문으로 검색하려면DDL 문을 이용해서 테이블을 생성할 수 있어야 한다. 예제 : 테이블 생성 스크립트 Create table emp500 --> 테이블 명 ( empno number(10), --> 컬럼명 데이터 유형 ( 길이 ) ename varchar2(20), 1. 문자형 2. 숫자형 3. 날짜형 sal number(10) ); 예제 : emp500 테이블에 데이터 ..
SQL - 계층형 질의문 2 계층형 질의문으로 서열을 주고 데이터 출력하기2 계층형 질의문과 짝꿍 함수인 sys_connect_by_path를 이용하면 listagg를 사용한 것처럼 가로로 결과를 출력할 수 있다. 예제 : 사원들의 노드 경로를 가로로 출력하기select ename, sys_connect_by_path(ename,',') as path from emp start with ename='KING' connect by prior empno=mgr; 이렇게 경로를 이름을 가로로 나열해서 출력할 수 있다. 예제 : 위의 결과에서 맨 앞 기호를 잘라버리시오 select ename, ltrim(sys_connect_by_path(ename,','),',') as path from emp start with ename='KING'..
SQL - 계층형 질의문 1 계층형 질의문으로 서열을 주고 데이터 출력하기 ** 순위와 서열을 출력하는 SQL 문 계층형 질의절은 Where 절 다음에 기술하며, from 절이 수행된 후 수행된다. start with 절과 connect by 절로 구성되며, start with 절이 수행된 후 connect by 절이 수행된다. 또한 start with 절은 생략이 가능하다. start with 절 --> 루트 노드를 생성하며 한 번만 수행된다.connect by 절 --> 루트 노드와 하위 노드를 생성하며 조회 결과가 없을 때까지 반복 수행된다. 예제 : 1부터 10까지의 숫자를 출력하기select level from dual connect by level
SQL - 데이터 입력, 수정, 저장 1. 데이터 입력하기 ( INSERT ) ** 테이블에 데이터를 입력하는 SQL 문장 insert into 테이블명(컬럼명) values (각 컬럼에 넣을 값) 예제 : emp 테이블에 사원 번호 : 1234, 사원 이름 : jack 월급 : 4500을 가진 데이터를 입력하기 insert into emp(empno, ename, sal ) values ( 1234, 'jack', 4500 ); 데이터 입력할 컬럼들을 기술한 뒤 위의 컬럼 순서대로 값을 기술하면 된다. 2. 데이터 수정하기 ( UPDATE ) ** 데이터를 수정하는 SQL 문장 update 테이블명 set 컬럼명 = 컬럼에 넣을 값 (where)예제 : KING 의 월급을 9000 으로 변경하기 update emp set sal = 900..
SQL - 서브 쿼리 1. 서브 쿼리 사용하기 1 ( 단일행 서브쿼리 ) 예제 : JONES의 월급보다 더 많은 월급을 받는 사원들의 이름과 월급을 출력하기 select ename, sal from emp where sal > ( select sal from emp where ename='JONES' ); 복잡해보이지만, where 절 속의 서브 쿼리 문을 해석하면 단순히 2975라는 값을 반환할 뿐이라는 것을 알 수 있다. 쿼리를 두 번 실행해야 할 수 있는 것을 한 번에 가능하게 하는 것이 서브 쿼리이다. 2. 서브 쿼리 사용하기 2 ( 다중 행 서브쿼리 ) * 서브쿼리의 종류 3가지 : 1. 단일행 서브 쿼리 : 서브쿼리에서 메인쿼리로 하나의 값이 리턴되는 경우 연산자: =, >, =, all, any,
SQL - 테이블 간 집합 연산자 * 데이터를 연결해서 출력하는 방법 2가지 1. 조인(join) : 데이터를 양옆으로 연결해서 출력하는 방법 2. 집합 연산자 : 데이터를 위아래로 연결해서 출력하는 방법 * 집합 연산자의 종류 4가지 1. union all 2. union 3. intersect 4. minus 1. 집합 연산자로 데이터를 위아래로 연결하기 1(UNION ALL) 예제 : 위 두개의 결과를 합쳐서 출력하기 : select job, sum(sal) select '전체토탈:' as job, sum(sal) from emp from emp; group by job; select job, sum(sal) from emp group by jobunion allselect '전체토탈:' as job, sum(sal) from em..
SQL - 테이블 조인 2 * 조인 문법 2가지 1. 오라클 조인 문법 - equi join - non equi join - outer join - self join 2. 1999 ANSI 조인 문법 - on 절을 사용한 조인 - using 절을 사용한 조인 - natural join - left/right/full outer 조인 - cross 조인 저번에 다룬 것은 오라클 조인 문법. 이번에는 ANSI 조인 문법으로 조인을 해보자. 1. 테이블의 데이터를 조인해서 출력하기 1 ( ON 절 ) 1. 오라클 equi join 2. on 절을 사용한 조인 select e.ename, d.loc select e.ename, d.loc from emp e, dept d from emp e join dept d where e.deptno..
SQL - 테이블 조인 1. 여러 테이블의 데이터를 조인해서 출력하기 1(EQUI JOIN) ** 조인을 이용하면 두개 이상의 테이블들의 컬럼들을 하나의 결과로 모아서 볼 수 있다. 지금까지는 한 테이블 안에 있는 컬럼들만 선택해서 출력했었는데,두 테이블에 있는 각각의 컬럼들을 출력할 수도 있을까? 예제 : emp 테이블에 있는 ename 이라는 컬럼과, dept 테이블에 있는 loc 이라는 컬럼을 출력하기 select ename, loc from emp, dept order by ename; 오! 결과가 나온다.그런데 자세히 보면, 한 이름 당 모든 부서가 출력되는 걸 확인할 수 있다.14 명의 사원이 있는 emp 테이블과 4개의 부서의 정보가 있는 dept 테이블이 모여14 * 4 = 56 건의 결과가 출력되었다. 모든 경..