본문 바로가기
728x90
반응형

SQL18

Equi Join /Non-Equi Join Equi Join 기존 테이블과 조인 테이블에서 공통 칼럼을 '='(equal) 비교하여, 같은 값을 가지는 행을 연결하고 결과를 생성하는 조인 방법입니다. 가장 많이 사용되는 조인 방법이라고도 합니다. 학생 테이블과 부서 테이블을 EQUI JOIN하여 이름, 학과 번호, 소속 학과 이름을 출력 학생 테이블과 학과 테이블, 교수 테이블을 JOIN 하여 학생의 이름과 학과이름, 지도교수 이름을 출력 => 세 개의 테이블을 조인하는 경우, 기준이 되는 테이블이 중요합니다. 여기서 기준이 되는 테이블은 학생 테이블이겠죠? 학생에 대한 모든 정보가 주된 목적이니까요! 세 개의 테이블을 어떻게 묶느냐에 따라 결과가 달라지기도 하니 기준을 잘 정해야합니다. 그 후 각각 테이블의 연결고리를 잘 확인합니다. STUDE.. 2021. 3. 16.
오라클 ORDER BY 1 2 3 개념 및 예제 오라클에서 ORDER BY 1, 2, 3 이런 내용을 본 적이 있었을 텐데 뭔 말인고 하면 테이블의 1,2,3번째 컬럼 기준으로 정렬하겠다는 말이다 즉 ORDER BY 1 DESC는 첫번째 열 기준으로 내림차순 정렬이라는 말이다 컬럼 번호를 이용해 정렬하는 방식은 겉보기에는 그럴싸하지만 컬럼 숫자만으로는 어느 컬럼을 지정한 건지 알아보기 어렵고 컬럼을 추가, 삭제하는 등 변경했을 경우 ORDER BY가 꼬일 수 있기 때문에 컬럼명을 기준으로 ORDER BY를 거는 것을 권장한다 마지막으로 예제에 사용한 코드는 아래와 같다 SELECT * FROM SCOTT.EMP ORDER BY 1, 2, 3 -- 1,2,3번째 컬럼 순으로 오름차순 정렬 -- ORDER BY EMPNO, ENAME, JOB과 동일 SE.. 2021. 3. 16.
[Oracle] 오라클 EXISTS, NOT EXISTS 사용법 정리 (IN, JOIN 비교) 오라클에서 EXISTS( ) 함수를 처음 접하면 조금 어려움 느낌이 들 수도 있다. EXISTS를 사용하지 않아도 비슷한 결과를 만들 수 있는 기능이 많기 때문에, EXISTS에 대해 자세히 익히지 않고 넘어가는 경우가 많다. EXISTS(서브 쿼리)는 서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴한다. EXISTS는 서브 쿼리에 일치하는 결과가 한 건이라도 있으면 쿼리를 더 이상 수행하지 않는다. 아래의 샘플 테이블을 참고하여 예제 쿼리를 보면 쉽게 이해할 수 있을 것이다. SELECT a.empno , a.ename , a.deptno FROM emp a WHERE a.job = 'MANAGER' AND EXISTS (SELECT 1 FROM dept_history a.. 2021. 3. 16.
ANSI SQL이란? /LEFT OUTER JOIN/ RIGHT OUTER JOIN/FULL OUTER JOIN ANSI SQL DBMS(Oracle, My-SQL, DB2 등등)들에서 각기 다른 SQL를 사용하므로, 미국 표준 협회(American National Standards Institute)에서 이를 표준화하여 표준 SQL문을 정립 시켜 놓은 것이다. ANSI SQL 특징 표준 SQL문이기 때문에 DBMS의 종류에 제약을 받지 않는다. (MySQL, Oracle..) 즉, 특정 벤더에 종속적이지 않아 다른 벤더의 DBMS로 교체하더라도 빠르게 다른 벤더사를 이동할 수 있다. 특정 DBMS의 이탈이 가속되는 것도 ANSI SQL의 영향이 크다고 할 수 있다. 테이블간의 Join 관계가 FROM 에서 명시되기 때문에 WHERE 문에서 조건만 확인하면 된다. 즉, 가독성이 일반 Query문보다 좋다. ANSI.. 2021. 3. 16.
[ORACLE] 오라클 테이블 컬럼 추가/수정/삭제/이름 변경 하는 방법(ALTER 테이블 ADD/MODIFY/DROP/RENAME) 1. 테이블 컬럼 추가하기(ALTER TABLE ADD) [문법] ALTER TABLE 테이블명 ADD(컬럼명 데이타타입(사이즈)); ( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(13) 타입으로 추가할 때 -> ALTER TABLE USER ADD(USER_NAME VARCHAR2(13)); 2. 테이블 컬럼 수정하기(ALTER TABLE MODIFY) [문법] ALTER TABLE 테이블명 MODIFY(컬럼명 테이타타입(사이즈)); ( EX ) USER라는 테이블에 USER_AGE 라는 컬럼을 NUMBER(3) 타입으로 수정할 때 -> ALTER TABLE USER MODIFY(USER_AGE NUMBER(3)); 3. 테이블 컬럼 삭제하기(ALTER TABLE DR.. 2021. 3. 16.
JOIN이란? -JOIN이란? 두 개 이상의 테이블들을 연결하여 데이터를 검색하는 것을 JOIN 이라고 합니다. JOIN 시 사용되는 JOIN 연산자에 따라서 EQUI JOIN과 NON EQUI JOIN 으로 구별되며, FROM 절의 JOIN 형태에 따라서 INNER JOIN과 OUTER JOIN 으로 구별합니다. -JOIN 조건으로 사용되는 연산자에 따른 분류 JOIN 설명 EQUI JOIN 두 테이블 간의 칼럼 값들이 서로 일치하는 경우 JOIN 조건으로 '=' 연산자를 사용 NON EQUI JOIN 두 테이블 간의 칼럼 값들이 서로 일치하지 않는 경우 JOIN 조건으로 'BETWEEN ~ AND' 등의 범위 비교 연산자를 사용 -FROM 절의 JOIN 형태에 따른 분류 JOIN 설명 INNER JOIN JOIN .. 2021. 3. 16.
[SQL Server] SELECT TOP 1. SELECT ... TOP(N) 상위 N개의 결과만 보고 싶을 때 SELECT ... TOP(N) 구문을 사용한다. -- 가장 키가 큰 3명만 출력해 보자 -- TOP 3으로 해도 되지만, 가급적 TOP(3)으로 사용하자 SELECT TOP(3) Name, BirthYear, Height FROM UserTable ORDER BY Height DESC TOP(N)은 이전 버전의 SQL Server와의 호환성을 위해 TOP N 형식으로 사용해도 되나, 되도록 TOP(N) 형식을 권장한다. TOP(N) 구문은 원하는 상위 N개의 결과를 보는 것도 중요하지만, SQLServer의 부하를 많이 줄이는 방법이라는 점에서 의미가 있다. SQLServer 2005 부터는 TOP(N) 구문이 변수, 수식 및 하위.. 2021. 3. 16.
SQLD 시험 요약 정리본 SQLD 시험 에 도움 될만한 요약본 파일 올립니다. 저는 문제는 SQL시험 대표 (?)책인 노랑색으로 문제 풀고있습니다. 2021. 3. 15.
오라클 cascade 사용방법 및 예제 오라클에서 cascade란 두 테이블을 연결해서 PK를 가지고 있는 쪽의 값을 삭제하면 FK로 연결된 값이 동시에 삭제되게 하는 옵션이다 예제에서는 부모 역할을 할 MOTHER_TABLE에 테이블 생성과정 중 CONSTRAINT 제약조건명 PRIMARY KEY (PK컬럼명); 으로 테이블 PK를 설정하고 위 테이블과 연결시킬 CHILD_TABLE을 만들면서 하단에 CONSTRAINT 제약조건명 FOREIGN KEY (CHILD_TABLE의 FK로 사용할 컬럼명) REFERENCES 연결시킬_테이블(연결시킬_테이블의_PK_컬럼명) ON DELETE CASCADE 을 넣어주면 된다 만약 생성과정이 아닌 ALTER로 테이블에 CASCADE를 설정해 준다면 ALTER TABLE 테이블명 ADD CONSTRAIN.. 2021. 3. 14.
728x90
반응형