old posting/MySQL

    [SQL] ROWNUM, ROW_NUMBER(), RANK()

    ROWNUM Oracle에서 붙여주는 행번호 객체 DBMS 마다 구현방법이 다르다. MySQL : LIMIT MS SQL server : TOP Oracle : ROWNUM 사용법 SELECT ROWNUM, no, name FROM test ORDER BY no DESC; SELECT ROWNUM no, name FROM test WHERE ROWNUM = 1 AND ROWNUM = 6 AND RNUM < 6 + 5; ROWNUM의 사본을 만들어 값으로 가져와 1이 명..

    [SQL] 제약조건(Constraint)

    제약조건(Constraint) DBMS는 데이터의 무결성을 보장하기 위해, 잘못된 데이터가 저장되는 것을 방지하기 위해 사용한다. 제약조건은 테이블의 컬럼에 설정하여 사용한다. 해당 컬럼에 설정된 제약조건에 위배된 데이터가 들어오는 경우 에러가 발생한다. 데이터 무결성(Integrity) : 저장된 데이터에는 잘못된 데이터가 없어야 한다. 제약조건 종류 NOT NULL 이 조건이 설정된 컬럼에는 NULL 입력 불가 UNIQUE 이 조건이 설정된 컬럼에는 중복값 입력 불가 PRIMARY KEY 테이블당 단 1개 설정 가능, 데이터의 유일성 보장 NOT NULL + UNIQUE의 의미 FOREIGN KEY 다른 테이블의 컬럼을 참조해서 무결성 검사, 외래키 값은 NULL 혹은 참조할 수 있는 값이어야 한다...

    [SQL] 집합연산자

    집합연산자 여러개의 질의 결과를 연결하여 하나로 결합하는 방식 집합연산자를 사용하는 경우 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때 동일 테이블에서 서로 다른 질의를 수행하여 합치고자 할 때 튜닝관점에서 실행계획을 분리하고자 하는 목적 튜닝관점 데이터베이스의 응용, 데이터베이스 자체, 운영체제의 조정 등을 통해 최적의 자원으로 성능을 얻을 수 있도록 개선하는 작업 집합연산자 사용 제약사항 SELECT 절의 컬럼 수가 동일해야 한다. SELECT 절의 동일 위치에 존재하는 컬럼의 데이터 타입이 상호 호환 가능해야한다. 반드시 통일된 데이터 타입일 필요는 없다. 집합연산자 종류 UNION 여러개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의..

    [SQL] Natural Join과 USING

    Natural Join 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 등가조인(EQUI JOIN)을 수행한다. Natural Join이 수행되면, USING, ON, WHERE 절에서 'Join 조건'을 정의할 수 없다. 별도의 컬럼 순서를 지정하지 않으면 Natural Join의 기준이 되는 컬럼들이 다른 컬럼보다 먼저 출력된다. Join에 사용된 컬럼들은 같은 데이터 유형이어야 한다. 별명(ALIAS)나 테이블명과 같은 접두어를 줄 수 없다. USING 같은 이름을 가진 컬럼들중에서 원하는 컬럼만 선택적으로 EQUI Join을 할 수 있다. 별도의 컬럼 순서를 지정하지 않으면 USING 조건절의 기준이 되는 컬럼이 먼저 출력된다. Join 컬럼에 대해서는 ALIAS나 테이블 이름과 같은 접두..