SQL
-
030920SQL 2020. 9. 3. 10:45
TOP - N 구하기 rowsum 한계 --rownum은 컬럼처럼 사용 가능! --rownum은 orderby 에 먹히지 않는다. 하기 전에 먼저 측정된다. select rownum, e.* from emp e order by sal desc ; 해결책1 ) 서브쿼리 select rownum, ex.* from (select * from emp order by sal desc) ex where rownum < 3 ; -- 서브쿼리를 이용해야 내가 원하는 섞이지 않는 rownum이 나타난다. 해결책2) 뷰 create or replace view emp_view_sal as select empno, ename, nvl(sal, 0) sal from emp order by sal desc; select ro..
-
020920SQL 2020. 9. 2. 10:58
PL/SQL p.101 시작 제어문 if 조건식1 then 구문1 (다수 가능) elsif 조건2 (스펠링 확인,,, 저게 맞다는데?) then 구문2 (다수 가능) else 구문3 (다수 가능) end if; create or replace procedure dept_search(p_empno IN emp.empno%type) is --decalre v_deptno emp.deptno%type; begin dbms_output.enable; --메시지 버퍼 활성화 select deptno into v_deptno from emp where empno = p_empno ; if v_deptno = 10 then dbms_output.put_line('ACCOUNTING 부서 사원입니다.'); elsif ..
-
010920SQL 2020. 9. 1. 09:03
DDL - TABLE 과 CONSTRAINT DB의 기본 데이터 저장 단위인 TABLE은 사용자가 접근 가능한 데이터를 보유하여 RECORD(행)와 COLUMN(열)로 구성된다. 시스템 내에서 독립적으로 사용되길 원하는 데이터의 집합을 의미 집합 간의 관계를 표현할 수 있는데, 이를 위해서 FOREIGN KEY를 사용한다. DDL (Data Definition Language)를 이용해 TABLE을 CREATE, ALTER, DROP할 수 있다. DATA TYPE char 고정 길이 문자 데이터 입력된 데이터의 크기와 무관하게 고정된 길이만큼 저장 공간을 차지한다. 저장 공간의 크기를 명시해야 하며, 최소 크기는 1 varchar2 가변 길이 문자 데이터 실제 입력된 데이터의 크기만큼 공간을 차지한다. ..
-
310820SQL 2020. 8. 31. 09:00
지난 주 복습 데이터 베이스의 특징 4가지 1. 공용 2. 통합 3. 저장 4. 운영 필요한 데이터를 공동으로 사용할 수 있도록 중복을 최소화하여 통합 / 저장하는 데이터 집합체 create user stuoy identified by (passwords / 문자로 하려면 ' '로 감싸고) ; alter user stuoy identifiedy by (passwords/ 변경할 비밀번호 입력) account unlock ; drop user stuoy truncate table stuoy1 emp c를 임시 테이블에 저장하고, emp c를 지우고 임시 테이블을 emp c로 이름을 변경하는 과정이 생략되어 있다. : 비우는 것 / TUPLE의 갯수(Cardinality) 가 많을 때 , 속도가 빠르다. (..
-
300820SQL 2020. 8. 29. 22:01
자체적 연습 문제 1) 근무지가 "NEW YORK"이 아닌 사원들의 사원 번호, 사원 이름, 매니저 이름을 나타내시오. select e.empno, e.ename, (select ename from emp where e.mgr = empno), d.loc from emp e, dept d where d.loc ^= 'NEW YORK' and e.deptno = d.deptno ; 2) Manager와 Analyst의 평균 연봉과 President와 Clerk의 평균 연봉을 나타내시오. select (select avg(sal) from emp where job in ('MANAGER', 'ANALYST') ) AS "M와 A 평균 연봉", (select avg(sal) from emp where job ..
-
280820SQL 2020. 8. 28. 14:30
--A. JOB이 JOB으로 정렬되어 있고, SAL이 DESC되어있고, GRADE도 DESC되어있다. --EMP 테이블과 SALGRADE 테이블이 JOIN되어 있다. -- SELECT E.*, G.GRADE FROM EMP E JOIN SALGRADE G ON E.SAL >= G.LOSAL AND E.SAL where은 안써도 되는 것 같아 - 어차피 전부 다 해당해야하는 거니까. 삭제해도 문제 없는 거 같아. select e.*, s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal order by s.grade desc, e.sal desc ; > join문 사용했고, on 다음에 해당되는 column 그리고 between썼어..
-
270820SQL 2020. 8. 27. 10:12
CREATE TABLE T1STUDENT1 ( SNO NUMBER(12), --NULL값 허용 안한다, NAME VARCHAR2(60) NOT NULL, -- 한글 20글자까지 허용 PHONE NUMBER(12), MNO NUMBER(12), CONSTRAINT PK_SNO PRIMARY KEY (SNO), -- 정석 CONSTRAINT FK_MNO foreign KEY (MNO) REFERENCES MAJOR1 (MNO) ON DELETE SET NULL -- 특정 부분 NULL로 SET. / CASCCADE -전부 삭제 ) ; 처음 TABLE을 생성할 때, 제한 조건을 설정하는 방법이야 CONSTRAINT (NAME) PRIMARY KEY (COLUMN) -- Primary key는 unique 와 ..