이로
Oracle 기본 쿼리 정리 본문
Select 검색문
1. 기본 검색문
SELECT 테이블의 검색할 컬럼 FROM 테이블명;
테이블의 모든 속성을 띄우고 싶으면 테이블의 검색할 컬럼에 * 을 입력하면 된다.
SELECT * FROM 테이블명
2. 검색문에 조건추가 [WHERE]
*주의사항 '조건'에 들어가는 내용은 문자열 타입이라 가정하겠습니다. 그 외 타입일 시 적절히 ' '를 제거해주세요.
1) 기본 조건절
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼='조건' ;
한 개의 조건 검색시 WHERE='조건'을 사용하면 되고, 두 개 이상의 조건절 사용시 둘다 참인 경우 AND로 잇는다.
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1=조건 AND 테이블컬럼2='조건' ;
만약 두개 이상의 조건절 사용시 둘 중 하나만 참이면 될 경우 OR 로 잇는다.
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1=조건 OR 테이블컬럼2='조건' ;
2) BETWEEN AND 를 사용한 조건절(범위 연산자를 사용한 조건절)
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 BETWEEN 조건1 AND 조건2;
이 쿼리는 다음 쿼리와 같다
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 >= 조건1 AND 테이블컬럼1<=조건2;
3) IN을 사용한 검색
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 IN 조건; --조건=(조건1,조건2)
조건 안에 있는 값들을 OR로 연결시킨 것 과 같다.
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 = 조건1 OR 테이블컬럼1= 조건2;
4) LIKE를 이용한 조건절(문자열 비교를 사용한 조건절)
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 LIKE '조건%';
테이블컬럼1 에서 조건 으로 시작하는 테이블컬럼1 을 모두 검색한다.
5) NULL을 사용한 검색
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 IS NULL;
테이블컬럼1 에서 NULL인 값을 모두 검색한다.
*NULL의 경우 비교 연산자와 함께 사용할 수 없다.
3. DISTINCT를 이용한 중복 제거
SELECT DISTINCT 테이블컬럼 FROM 테이블명;
테이블 컬럼에 중복된 데이터가 있을 때 하나만 표시해준다.
* 테이블컬럼자리에 테이블컬럼1, 테이블컬럼2 를 넣을 경우, 테이블컬럼1,2 둘다 같은 값만 중복 제거해준다.
4. GROUP BY를 이용한 그룹화
1) 기본 그룹화
SELECT 그룹함수(테이블컬럼) FROM 테이블명 GROUP BY 테이블컬럼;
테이블컬럼을 그룹화하여 출력한다. 그룹함수는 COUNT(컬럼), AVG(컬럼), SUM(컬럼), MIN(컬럼), MAX(컬럼) 등 있다.
*컬럼 대신 * 이 들어갈 수 있다.
*그룹화는 출력할 값들이 그룹화 할 수 있는지 생각해 봐야한다. 수많은 시행착오를 해보는 것이 좋다.
*그룹함수는 GROUP BY가 없어도 사용할 수 있다.
2) HAVING 을 사용한 그룹조건 명시
SELECT 그룹함수(테이블컬럼) FROM 테이블명 GROUP BY 테이블컬럼 HAVING 그룹조건;
HAVING 의 그룹 조건에 그룹함수(테이블컬럼)>4 이렇게 넣을 수 있다.
5. ORDER BY를 이용한 정렬검색
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 =조건 ORDER BY 테이블컬럼명 ASC;
SELECT 테이블의 검색할 컬럼 FROM 테이블명 WHERE 테이블컬럼1 =조건 ORDER BY 테이블컬럼명 DESC;
*WHERE절은 없어도 된다. 위치를 설명하기 위해 넣었다.
정렬 방법(ASC, DESC)를 명시하지 않을 경우 기본적으로 ASC(오름차순)으로 정렬된다.
6. 부속질의를 사용한 검색
1) FROM 자리에 부속질의
SELECT A테이블컬럼 FROM (SELECT A테이블컬럼 FROM A테이블 WHERE A테이블컬럼=조건);
먼저 테이블에서 원하는 결과를 추린 다음 추려진 데이터에서 원하는 쿼리를 실행할 수 있다.
2) WHERE 자리에 부속질의
SELECT A테이블컬럼 FROM A테이블 WHERE A테이블 컬럼 IN (SELECT B테이블컬럼 FROM B테이블 WHERE B테이블컬럼=조건);
B테이블이라고 편의상 나누었으나, A테이블에서 검색하여도 무관하다. 상황에 맞게 사용하면 된다.
3) WHERE 에 EXISTS를 사용한 부속질의
부속질의의 결과가 여러개의 속성일 때 사용한다.
SELECT A테이블컬럼 FROM A테이블 WHERE EXISTS (SELECT * FROM A테이블 WHERE A테이블컬럼1=조건 AND A테이블조건2=조건);
7. 데이터 삽입(INSERT)
INSERT INTO 테이블명 VALUES(속성1의 값,속성2의 값,...,속성END의 값);
INSERT INTO 테이블명 (속성1, 속성END) VALUES(값1, 값END);
*아래 경우 나머지 속성들은 NOT NULL조건이 없어야 가능하다. 입력하지 않은 값들은 NULL로 삽입된다.
*위의 경우는 입력하지 않은 속성의 값이 있을경우 데이터가 삽입되지 않는다.
8. 데이터 삭제(DELETE)
DELETE FROM 테이블 WHERE 조건식;
WHERE절이 없으면 테이블의 모든 값을 삭제한다.
9. 데이터 갱신 (UPDATE)
UPDATE 테이블 SET (속성이름=값) WHERE 조건식;
WHERE 조건식에 수정할 데이터들을 찾을 정보를 줘야한다.