[SQL] Select문을 사용하여 데이터검색

·2025년 5월 19일

SQL

목록 보기
1/126

select절과 from절은 필수!

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

기본 SELECT문

SELECT * | { [DISTINCT] column [alias], ...}
FROM table;
  • SELECT : 표시할 열을 식별
  • FROM: 이러한 열을 포함한 테이블을 식별

    select 컬럼명(콤마(,)로 구분)
    from 테이블이름 ;

모든 열 검색

* : all

select *
	from departments;

특정 열 선택

select department_id, location_id
from departments;

SQL문 작성

  • 대소문자 구분 X
  • 한 줄 또는 여러 줄에 입력 가능
  • 키워드는 약어로 표기하거나 여러 줄에 걸쳐 입력할 수 X
  • 절은 대개 별도의 줄에 입력함
  • 가독성을 높이기 위해 들여쓰기 사용
  • SQL Developer에서 SQL문은 선택적으로 세미콜론(;)으로 끝날 수 있음. 세미콜론여러 SQL문을 실행하는 경우에 필요
  • SQL*Plus에서는 각 SQL문이 반드시 세미콜론(;)으로 끝나야 됨

열 머리글 기본값

  • SQL Developer
    • 기본 머리글 정렬: 왼쪽 정렬
    • 기본 머리글 표시: 대문자
  • SQL*Plus
    • 문자와 날짜 열 머리글: 왼쪽 정렬
    • 숫자 열 머리글: 오른쪽 정렬
    • 기본 머리글 표시: 대문자

산술식

+: 더하기
-: 빼기
*: 곱하기
/: 나누기

select last_name, salary, 12*salary+100
from employees;
select last_name, salary, 12*(salary+100)
from employees;

ㄴ 둘의 결과 다름

Null 값 정의

  • Null은 사용할 수 없거나, 할당되지 않았거나, 알 수 없거나, 적용할 수 없는 값
  • 0이나 공백과 다름

(null) 표시

  • 데이터가 비어있음을 의미
  • 저장되는 값이 X

산술식의 Null 값

  • null값을 포함하는 산술식은 null로 계산됨
  • 데이터가 비어있는 상태(null)에는
    사칙연산, 비교연산이 불가능
    --> 결과값 또한 null이 됨

열 alias 정의

  • 열 머리글의 이름을 바꿈
  • 계산에서 유용함
  • 열 이름 바로 뒤에 나옴. 열 이름과 alias 사이에 선택사항인 AS 키워드가 올 수 있음
  • 공백이나 특수문자를 포함하거나 대소문자를 구분하는 경우 큰따옴표가 필요함
  • AS 생략 가능
SELECT last_name AS name, commission_pct comm
FROM employees;
SELECT last_name "Name", salary*12 "Annual Salary"
FROM employees;

연결 연산자

  • 열이나 문자열을 다른 열에 연결
  • 두 개의 세로선(||)으로 나타냄
  • 결과 열로 문자식을 생성
SELECT last_name || job_id AS "Employees"
FROM employees;

리터럴(literal) 문자열

  • 리터럴은 SELECT 문에 포함된 문자, 숫자 또는 날짜
  • 날짜 및 문자 리터럴 값작은따옴표로 묶어야 됨
  • 각 문자열은 반환되는 각 행에 한 번 출력됨
  • 사용자가 임의로 작성하여 출력하는 문자값 (select절에 작성)
  • 테이블의 column을 작성하지 않아도 출력행에 전부 나타남
SELECT empno, ename, sal, sal*12, 12
	FROM emp;

ㄴ 12는 모든 행이 12로 나옴

SELECT empno, ename, sal, sal*12, 'A'
	FROM emp;

ㄴ 꼭 작은따옴표로 써주어야 모든 행이 A로 나옴

SELECT last_name || ' is a ' || job_id
		AS "Employee Details"
FROM employees;

대체 인용(q) 연산자

q'[ ]'
[ ] 안에 작성된 내용은 literal로 인식하도록 작성하는 방법

  • 자신의 따옴표 구분자를 지정함
  • 구분자를 임의로 선택
  • 가독성 및 사용성이 증가함
select department_name || ' Department''s Manager Id: '
        || manager_id
        as "Department and Manager"
    from departments;

ㄴ 위 방법을

select department_name || q'[ Department's Manager Id: ]'
        || manager_id
        as "Department and Manager"
    from departments;

ㄴ 위 방법으로 대체할 수 있다

중복 행 제거(distinct)

  • 기본적으로 query 결과에는 중복되는 행을 포함한 모든 행이 표시됨
  • distinct 키워드는 중복되는 행을 제거
select distinct department_id
from employees;
select distinct department_id, employee_id
from employees;

ㄴ select절에서 여러 column을 출력할 때
완전히 동일한 행이 아니라면 제거되지 X

테이블 구조 확인/표시

  • DESCRIBE 명령을 사용 => 줄여서 DESC 가능
  • 또는 Connectinons 트리에서 테이블을 선택하고 Columns탭을 사용하여 테이블 구조 확인

DESCRIBE 테이블명
DESC 테이블명

0개의 댓글