All of My Records

[Oracle] SELECT문

by 캐떠린

SELECT문

  • DML, DQL(SELECT문만 특별히 DQL이라고도 부른다.)
  • SQL은 SELECT로 시작해서 SELECT로 끝난다.
  • CRUD 중 가장 많이 쓰이는 ‘R’에 쓰이는 명령어가 바로 SELECT문이다.
  • SELECT * FROM 테이블 쿼리문 각 절의 실행 순서: ① FROM절 ② SELECT절
--SQL 형식
[WITH <Sub Query>]
SELECT column_list        -- 2. 원하는 컬럼을 지정하여 가져와라!
FROM table_name           -- 1. 데이터소스. 어떤 테이블로부터 데이터를 가져와라!
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expresstion [ASC|DESC]];
  • SELECT * FROM tblType; : "tblType로부터 모든 컬럼을 가져와라" (※여기서'*'란? 모든 컬럼을 의미한다.)
  • 컬럼을 나열하는 순서는 자유다.
  • 동일컬럼을 반복하는 경우도 왕왕 사용된다. WHY? 컬럼을 가져와서 가공할 수 있기 때문이다.

 

SELECT * FROM dual; → 시스템 테이블(1행 1열 테이블) ☞ 유용하게 쓰인다
-- ex) 현재 시간 조회
SELECT sysdate FROM dual;​

 

SELECT문 사용 예시

-- 단일 컬럼 조회
SELECT name FROM tblComedian;

-- 다중 컬럼 조회(컬럼명, 컬럼명, 컬럼명...)
SELECT name, age, email FROM tblComedian;

-- 테이블의 전체 데이터를 조회할 때, 아래와 같이 두가지 방법(* 사용, 모든 컬럼 나열)모두 다 잘 쓰인다.
SELECT * FROM tblComedian;
SELECT name, age, email, gender, height, weight FROM tblComedian;
-- '*'는 편하지만 가독성이 떨어진다는 단점이 있다.
-- 모든 컬럼을 나열하는 경우 해당 테이블에 어떤 컬럼이 있는지 한눈에 파악이 가능하다는 장점이 있다.
-- > 각각의 장단점이 뚜렷하기에 혼용해서 잘 쓰인다. (과거에는 모든 컬럼을 나열하는 방법이 속도가 더 빨랐다고 한다. 현재는 어떤 변화가 있는지는 잘 모르겠다.)

-- 동일 컬럼 반복 사용 + 가공
SELECT name, length(name) FROM tblComedian;

 

아래와 같은 방식으로 표기도 가능하다.

-- 1) SELECT 계정명.테이블명.컬럼명 FROM 계정명.테이블명
SELECT hr.tblMen.name, hr.tblMen.age, hr.tblMen.height, hr.tblMen.weight FROM hr.tblMen;

-- 2) FROM 계정명.테이블명
SELECT name, age, height, weight FROM hr.tblMen;

-- 3) SELECT 테이블명.컬럼명 FROM 테이블명
SELECT tblMen.name, tblMen.age, tblMen.height, tblMen.weight FROM tblMen;

 

SELECT문 사용 시 자주 발생하는 Error

  • ORA-00942: table or view does not exist → 테이블명 오입력 시
  • ORA-00904: "FIRS": invalid identifier → 컬럼명 오입력 시

 

*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업

블로그의 정보

All of My Records

캐떠린

활동하기