반응형

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;

 

반응형

'SQL > SQL_이론' 카테고리의 다른 글

SQL의 종류  (1) 2024.09.19
관계형 데이터베이스와 테이블  (0) 2024.09.19
WHERE 절  (0) 2024.06.25
프로시저  (0) 2023.09.15
VIEW  (0) 2023.09.15

+ Recent posts