반응형
SELECT
저장되어 있는 데이터를 조회하고자 할 때 사용하는 명령어
SELECT 컬럼1, 컬럼2, ... FROM 테이블명 WHERE 컬럼1 = '아무개';
컬럼을 따로 명시하지 않고 *(asterisk)를 쓰면 전체 컬럼이 조회되며 조회되는 컬럼의 순서는 테이블의 컬럼 순서와 동일, 별도의 WHERE 절이 없으면 테이블의 전체 Row가 조회됨!
SELECT * FROM 테이블;
- 테이블이나 컬럼명에 별도의 별칭(Alias)를 붙여줄 수 있음
- 여러개의 테이블을 조인하거나 서브쿼리가 있을 때 컬럼명 앞에 테이블명을 같이 명시해야 하는 경우
예제
다음 중 문법 에러가 발생하는 SQL은 어느 것일까?
1. select d.dept_no from departments d;
2. select departments.dept_no from departments t where dept_no = 'd009';
3. select departments.dept_no from departments where dept_no = 'd009';
4. select dept_no from departments t where t.dept_no = 'd009';
정답 ) 2
풀이) 테이블 명에 Alias를 설정했을 경우 컬럼명에 테이블 명 대신 Alias를 이용해야 한다.
select t.dept_no from departments t where dept_no = 'd009';
산술연산자
- 수학에서 사용하는 사칙연산의 기능을 가진 연산자
- NUMBER DATE 유형의 데이터와 같이 사용할 수 있다.
- ( ) : 괄호로 우선순위를 조정할 수 있음
- : 곱하기
- / : 나누기
- : 더하기
- : 빼기
select 10+5, 10-5, 10*5, 10/5 from dual;
select * from sample;
select col1 + col2 AS A,
col1 - col2 AS B,
col1 * col2 AS C,
col1 / col2 AS D
from sample;
select col1+col2*col1 AS R1,
(col1+col2)*col1 AS R2
from sample;
예제
다음 SQL의 결과는 무엇인가?
select col1 + col2 AS RESULT from sample2;
[SAMPLE2 테이블]
정답)
해설) 다른 컬럼끼리 연산(가로연산)에서 NULL이 포함되어 있으면 결과값은 Null이 된다.
합성 연산자
- 문자와 문자를 연결할 때 사용하는 연산자
-- Oracle
SELECT 'S'||'Q'||'L'||'개'||'발'||'자' AS SQLD FROM DUAL;
-- MySQL
SELECT CONCAT('S', 'Q', 'L', '개', '발', '자') AS SQLD FROM DUAL;
select * from sample3;
-- Oracle
select col1 || ' ' || 'SQLD' || ' ' || col2 AS RESULT from sample3;
-- MySQL
select concat(col1, ' ', 'SQLD', ' ', col2) AS RESULT from sample3;
반응형