본문 바로가기
Server/Oracle

[Oracle] 오라클 기본 SQL 쿼리 정리 (스크랩)

by 뒹굴거리는프로도 2017. 12. 6.
반응형

 


 

SELECT 문

SELECT * FROM 테이블명 WHERE 필드='조건' AND 필드2='조건2'

SELECT 필드1, 필드2, 필드3 FROM 테이블명

SELECT * FROM TAB; 존재하는 모든 테이블 보기

SELECT DISTINCT 필드1 FROM 테이블명; 중복제거하기

SELECT 필드1 FROM 테이블 WHERE 필드2 BETWEEN 00 AND 00; //00부터 00사이에서

SELECT 필드1 FROM 테이블 WHERE 필드2 IN (00, 00); //00과 00중에서

SELECT 필드1 FROM 테이블 WHERE 필드2 LIKE '%단어%';

SELECT 필드1 FROM 테이블 WHERE 필드2 IS NULL; or NoT IS NULL

 

UPDATE문

UPDATE 테이블명 SET 필드='값', 필드2='값', 필드3='값' WHERE 필드 LIKE '조건'

 

INSERT문

INSERT INTO 테이블명(필드1, 필드2) VALUES ('값', '값' );

 

테이블 생성 예시

CREATE TABLE 테이블명 (
      필드명 타입 조건,
      id varchar2(15) primary key,
      pass varchar(15) not null,
      no number(5)
)

 

시퀀스 생성 예시

CREATE SEQUENCE 시퀀스이름
       increment by 1
       start with 1
       nomaxvalue
       nocycle
       nocache;

 

외래키 생성

ALTER TABLE 테이블명 ADD ( FOREIGN KEY (필드) REFERENCES 테이블명2);

 

컬럼 수정

ALTER TABLE 테이블명 MODIFY (필드 타입);

 

컬럼 추가

ALTER TABLE 테이블명 ADD ( 필드이름 필드타입 );

 

칼럼 이름 변경

ALTER TABLE 테이블명 RENAME COLUMN 컬럼이름 TO 새이름;

 

NULL 처리

SELECT isNULL(필드, '0') FROM 테이블

 

방금 저장한 자동 증가값 ID 가져오기

SELECT @@IDENTITY (현재 세션에서만 사용가능)

 

현재 테이블의 가장 큰 값 가져오기

SELECT IDENT_CURRENT('테이블명')

 

수행된 SQL 문에 의해 영향 받은 행의 수

SELECT @@ROWCOUNT

 

날짜 계산하기 예시

SELECT * FROM 테이블명 
WHERE DATEADD(DAY, CONVERT(INT, 컬럼명), 날짜컬럼) > getdate()

 

테이블 정보 보기

EXEC sp_help 테이블


컬럼 정보 보기

EXEC sp_columns 테이블


앨리어스 사용

SELECT 필드 AS A FROM 테이블 
--(별칭에 특수문자 있으면 [] 사용]


주석 방법

-- or /* */


변수 선언

DECLARE @변수명 자료형, @변수명 자료형


변수 할당

SET @변수명 = 값


변수 값 가져오기

SELECT @변수명


테이블 값 일부만 가져오기

SELECT TOP 5 컬럼 FROM 테이블


범위 정하기

SELECT 컬럼 FROM 테이블 WHERE 컬럼 BETWEEN 10 AND 20

SELECT 컬럼 FROM 테이블 WHERE 컬럼 IN ('aaa', 'bbb', 'ccc')


패턴 매칭

SELECT 컬럼 FROM 테이블 WHERE 컬럼 LIKE '%제목%"

--
_ : 어떤것이든 한 문자
               
% : 없거나 아무 글자오거나
               
[] : []안에 있는 글자들 - [b-f]
               
[^] : ^다름에 있는 글자를 제외한 다른 것
--


중복 제거

SELECT DISTINCT 컬럼 FROM 테이블


GROUP BY 사용 예시

SELECT 컬럼1, sum(컬럼2) 
FROM 테이블 
WHERE 조건 
GROUP BY 컬럼1 HAVING sum(컬럼2) >= 30

--
(계산함수가 반드시 있어야 한다, GROUP BY ALL을 사용하면 WHERE제외된것 도 포함)
--


이너조인

SELECT 컬럼 
FROM 테이블 
INNER JOIN 테이블 ON 컬럼=컬럼


아우터 조인

SELECT 컬럼 
FROM 테이블 
LEFT OUTER JOIN 테이블 ON 컬럼=컬럼
                  
--(어느 한 쪽의 데이터를 모두 가져온다.)


IN 사용 예시

SELECT 컬럼 
FROM 테이블 
WHERE 컬럼2 IN ( SELECT 컬럼2 FROM 테이블 )

--(IN안의 하위질의는 DISTINCT가 붙은 것으로 동작)


EXISTS 사용 예시

SELECT 컬럼1 
FROM 테이블  
WHERE EXISTS ( SELECT * FROM 테이블 WHERE 조건 )
             
--(EXISTS 는 하위쿼리가 어떤 결과라도 돌려지면 참)


임시 테이블 생성

SELECT INTO SELECT * INTO 새테이블명 FROM 테이블 --(다른세션에서도 가능, DROP해야 삭제됨)
                            
SELECT INTO SELECT * INTO #새테이블명 FROM 테이블 --(해당세션에서만 가능, 세션끊어지면 삭제됨)
                           
SELECT INTO SELECT * INTO ##새테이블명 FROM 테이블 --(다른세션에서도 가능, 세션끊어지면 삭제됨)


UNION 예시

SELECT 컬럼1, 컬럼2 FROM 테이블
UNION            
SELECT 컬럼1, 컬럼2 FROM 테이블

--
(UNION은 컬럼의 자료형과 순서가 맞아야 한다. 
중복데이터는 제거되며 UNION ALL을 하면 중복데이터도 가져온다.)
--

 

컬럼 추가

ALTER TABLE 테이블명 
ADD 새컬럼 VARCHAR(10) NULL


컬럼 변경

ALTER TABLE 테이블명 
ALTER COLUMN 컬럼 VARCHAR(10) NULL


컬럼 삭제

ALTER TABLE 테이블병 DROP COLUMN 컬럼


삭제

DELETE FROM 테이블명 WHERE 조건


업데이트

UPDATE 테이블 SET 컬럼 = 값 WHERE 조건


트랜젝션

BEGIN TRAN
              
ROLLBACK
              
COMMIT

 

 




출처 https://blog.outsider.ne.kr/22

 

SQL 쿼리 정리 :: Outsider's Dev Story

이 글은 지극히 개인적인 용도이다.쿼리는 보기 시작한지도 얼마 안되었고 DB도 여러가지 볼때마다 헷갈리고 써도 쓸때만 찾았다가 또 잊어먹고 하다보니 좀 헛된 검색과 낭비를 좀 막아보고자

blog.outsider.ne.kr

 

 

반응형