본문 바로가기

Oracle/SQL

SQL Select문, (*), As, || 연결연산자, "" 더블쿼테이션 마크 의사용

[1] Query 문

  • 테이블 table - 행과 열로 이루어진 데이터 저장/ 관리 하는 저장소

(1) 기본 select 문 구조 

  select (검색하고자 하는 컬럼명)             ——> select ename

  from (table 명)                        —— >from  emp;

참고로 emp = 사원테이블 입니다. (가상으로 만들어 놓은 테이블 )

사원테이블의 컬럼이 무엇이 있는지 조회하시오 

describe emp;

테이블에서 모든열 (컬럼) 출력하기 (*)

select *

form emp;

설명 : * = 'asterisk' 를 사용하면 모든 컬럼들을 조회 할 수 있다.


(AS)컬럼 별칭

as 는 생략 가능

예제 : ename 을 이름으로, sal 은 월급으로 컬럼명 바꾸기

select ename as 이름 , sal as 월급

form emp​

별칭에 Salary 라고 앞에 글자만 대문자로 나오려면 "Salary" 큰 따옴표 사용해 준다.

오라클 전체에서 " 더블 쿼테이션 마크" 를 사용해야 하는 경우는 ("")

  1. 컬럼 별칭을 출력할때 대소문자를 구분해서 출력하고 싶을때
  2. 공백문자, 특수문자 (_, $) 를 컬럼별칭에 사용하고 싶을때

(||)연결 연산자

select ename || ' 의 월급은' || sal ||' 입니다'

from emp;

→ 출력결과 : select ename || ' 의 월급은 ' || sal || ' 입니다.'
                        문자형   ||   문자형     || 숫자형 || 문자형 
sal 은 숫자형 데이터로 생성되어있어 앞뒤의  문자형과 숫자형이 충돌하는데
오라클이 알아서 sal 의 데이터를 숫자에서 - 문자로 형 변환(암시적형변환)을 시켜줘서
충돌없이 코딩이 실행 되었다. -> 실질적으로 좋은 코딩은 아니다. 


(distinct) 중복된 데이터를 제거해서 출력하는 방법

직업이 중복되서 출력되는 것을 막고 하나씩만 출력 하는 방법이다.

select distinct job

from emp;

(order by 컬럼명 asc or desc) 데이터를 정렬하여 출력하기

order by 절에는 select 절의 컬럼 순서인 번호를 사용하여 컬럼을 작성 할 수 있다.

이름과 월급을 출력하는데 월급이 낮은 사람부터 출력 하세요

select ename, sal
from emp
order by sal asc ; 

select ename, sal
from emp
order by 2 asc; # 컬럼 순서인 번호를 사용하여 컬럼을 작성 할 수 있다.

select 절에 컬럼이 없어도 테이블에 있는 컬럼들로 order by 절에 정렬을 할 수 있다.
asc : ascending : 오름 차순으로
desc : descening : 내림 차순으로

order by 절의 디폴트 값은 asc 입니다. 


where 검색조건절

select ename, sal, job

from emp

where sal = 3000 ;

문자와 날짜는 양쪽에 ' 싱클 쿼테이션 마크' 로 둘러야 한다.
데이터는 대소문자를 구문하기 때문에 입력할때 대소문자를 구문해서 작성해야한다.
sql 문은 대소문자 상관없음 (select , from , 등등)