오라클 sql select
- 코딩/Oracle
- 2019. 8. 16.
쿼리문 작성시
-
대소문자 구분X
-
여러 라인에 걸쳐서 작성이 가능하고 가독성을 위해 들여쓰기 하는 것을 추천
-
키워드는 여러 행에 나누어 쓰거나 약어로 쓸 수 X
-
여러 컬럼을 검색할 때 쉼표로 컬럼을 구분한다.
- SELECT절에서 출력 결과에 표시할 순서대로 컬럼을 지정한다.
- SELECT결과 열 머리글(Heading)은 기본적으로 대문자로 표시된다.
기본 SELECT문
형식
SELECT 컬럼1, 컬럼2, 컬럼3, …
FROM 테이블명;
SELECT one, two
FROM EVERLAND;
SELECT *
FROM EVERLAND;
※별표(*)는 모든 컬럼을 조회하겠다는 뜻이다.
컬럼은 대소문자 구분를 구분하지 않는다.
SELECT ONE, two
FROM EVERLAND;
컬럼의 중복도 상관 없다.
SELECT ONE, two, one
FROM EVERLAND;
컬럼을 이용한 연산이 가능하다(기존 테이블에는 영향이 없다. 단순히 값을 꺼내온 후 연산하여 보여줄 뿐이다)
SELECT ENAME, 2*sal
FROM emp;
별칭 (별명)
칼럼명이 길면 엄청 귀찮아 지는데 이를 별칭을 이용해 이름 변경 없이 간단하게 사용 할수있다.
SELECT one o, two t
FROM EVERLAND;
주로 연산이 수행된 컬럼에 사용된다.
컬럼명 다음에 AS를 쓴 뒤 그 뒤에 별칭으로 사용할 단어를 제시한다(AS는 생략 가능).
- 대소문자를 구분하지 않는다. 단, 큰 따옴표(” ”)로 묶어주면 대소문자 구분이 가능하다.
SELECT one "ONE", two "TWO"
FROM EVERLAND;
- 특수 문자나 공백을 컬럼의 별칭으로 사용하고자 하면 별칭에 큰 따옴표(" ")를 사용한다.(Sal7은 큰 따옴표가 필요 없으나 7Sal은 필요하다)
SELECT one "ONE", two*7 "7TWO"
FROM EVERLAND;
주의!
Where절에서는 별칭을 사용할 수 없다!!!! 왜냐하면 DB는 from절 다음에 select절이 아닌 where절을 바라보기 때문이다.
SELECT one newone, two newtwo
FROM EVERLAND
WHERE newtwo > 100;
※ 별칭은 조회값들은 전부 가져온 후 붙여지는 것이지 하나하나씩 값이 가져온 후에 붙여지는 것이 아니다. 때문에 아래와 같은 쿼리는 정상적으로 작동하지 않는다.
SELECT one newone, two newtwo, newtwo+1
FROM EVERLAND
WHERE newtwo > 100;
리터럴
특정 문자, 숫자, Date 타입 등의 상수를 출력하고 싶을 때 사용한다.
Date 타입이나 문자열은 작은 따옴표('')로 둘러싸야 한다.
SELECT 'one', 'two'
FROM EVERLAND;
각 문자열은 각 행(Row)가 반환될 때마다 한 번씩 출력된다.
SELECT 1, two+1, 'two*2+1'
FROM EVERLAND;
DISTINCT 중복 행 제거
같은 컬럼에 있는 동일한 값을 한번만 출력한다. SELECT 바로 뒤에 사용한다.
SELECT DISTINCT one
FROM EVERLAND;
DISTINCT 다음에 여러 열을 지정할 수 있다(선택한 모든 열에 영향을 주어 결과로 고유한 열 조합이 표시된다)
SELECT DISTINCT one, two
FROM EVERLAND;
'코딩 > Oracle' 카테고리의 다른 글
[ORACLE] ora-01017 invalid username/password logon denied (0) | 2019.08.21 |
---|---|
오라클 sql ORA-06550 : 식별자가 정의되어야 합니다. (1) | 2019.08.20 |
[Oracle] 오라클 dump(dmp) 파일 import 하는방법 (0) | 2019.08.16 |
[Oracle] 계정 생성 및 권한 부여 방법 (0) | 2019.08.15 |
[Oracle] ora 01031 insufficient privileges (1) | 2019.08.15 |