[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 → 컬럼명 오입력 시
*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업
'DB > Oracle' 카테고리의 다른 글
[Oracle] 연산자 (0) | 2024.03.15 |
---|---|
[Oracle] 잠깐! Commit에 대해 알아보자 :: SQL Developer와 DBeaver의 commit 설정 특징 (1) | 2024.03.15 |
[Oracle] Oracle의 ANSI-SQL 자료형 (1) | 2024.02.25 |
[Oracle] ANSI-SQL :: DDL, DML, DCL, DQL, TCL이란? (0) | 2024.02.20 |
[Oracle] SQL이란? :: 데이터베이스 수업을 들어가며 (0) | 2024.02.20 |
블로그의 정보
All of My Records
캐떠린