본문 바로가기
IT/SQL

데이터 검색

by 봉즙 2019. 6. 5.

SELECT 구문의 기본 문형(SELECT~FROM)

1
2
SELECT (DISTINCT) 칼럼명(ALIA)
FROM 테이블명;

 

  • SELECT   : 검색하고자 하는 데이터(칼럼)을 나열한다.
  • DISTINC : 중복행을 제거한다.
  • ALIAS    : 나타날 때 칼럼에 대하여 다른 이름을 부여한다.
  • FROM   : 선택한 칼럼이 있는 테이블을 명시한다.

 

전체 데이터의 검색  - 테이블에 잇는 모든 데이터 검색은 SELECT *을 통해 검색한다.

1
SELECT * FROM s_dept;

select * from employee_info;

select * from employee_info;

특정칼럼의 검색 - 특정 칼럼의 데이터 검색하려는 경우 SELECT절 뒤에 칼럼을 ,(콤마)로 구분하여 나열 기술한 칼럼의 순서대로 결과가 나타난다.

1
2
SELECT name, start_date, salary
FROM s_emp;

 

1
2
select * from employee_info;

 

1
select * from s_dept; 

 

1
2
select name as 이름, start_date 시작날짜, salary*18 as 연봉 from s_emp;

산술식을 이용한 검색 - 데이터 타낼때 산술연산을 사용하여 나타낼수 있다. +, -, *, /, ()가 있다.

1
2
SELECT name, salary*18
FROM s_emp;

 

칼럼에 대한 ALIAS 부여 - 검색결과를 나타낼때 칼럼에 대한 ALIAS지정하여 HEADING을 바꿔줄수 있으며 AS는 생략이 가능하다. 하지만 두단어로 구성된 경우 반드시 " "를 붙여줘야한다.

1
select name as 이름, start_date 시작날짜, salary*18 as 연봉 from s_emp;

 

칼럼의 합성(CONCATENATION) - 합성연산자(||)를 사용하여 칼럼을 다른 칼럼이나 값과 연결하여 하나의 칼럼으로 출력할수 있다.

1
2
3
SELECT name|| ' ' || title
FROM s_emp;

 

중복행의 제거(DISTINCT) - SELECT를 한경우 기본적으로 테이블에 중복행이 있더라도 모든 행들에 대하여 결과가 나타나는데 중복을 제거하기 위해 사용한다. 아래의경우 name, salary  모두에게 적용된다.

1
2
3
SELECT DISTINCT name, salary
FROM s_dept;

 

정렬 순서의 지정(ORDER BY) - 데이터를 정렬한다.

1
2
3
4
SELECT (DISTINCT) 칼럼명 (ALIAS)
FROM 테이블명
ORDER BY 칼럼이나 표현식 (ACS 또는 DESC);
  • ASC : 조회한 데이터를 오름차순으로 졍렬, 기본값이기에 생략할 수 있다.
  • DESC : 조회한 데이터를 내림차순으로 정렬한다.
1
2
3
select distinct name, title from s_emp
order by title asc; --asc는 오름차순, desc는 내림차순

 

1
2
3
4
5
 
--Q1.직원테이블(s_emp)에서 모든 사원의이름, 직책을 같이 출력하시오.
 
select name 이름, title 직책 from s_emp;
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

특정 행의 검색(WHERE) - 조건에 맞는 특정 행 선택한다.

1
2
3
4
SELECT (DISTINCT) 칼럼명 (ALIAS)
FROM 테이블명
WHERE 조건식
ORDER BY 칼럼이나 표현식 (ASC 또는 DESC);
  • 조건식 : 칼럼이나 표현식 상수, 연산자로 구성된다.
1
2
3
4
5
6
7
--Q2.직원(s_emp)중에 사원인(title=사원)사람을 모두 출력하시오
select * from s_emp
where title = '사원'
--where salrary between 1000 and 2000--연봉이 1000<= <=2000 인경우
;
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

WHERE절에 사용되는 연산자

1
WHERE 형식 연산자 

 

1
2
WHERE title = '사원'
WHERE salary BETWEEN 1000 AND 2000

 

1
2
3
 select name, start_date from s_emp
where start_date > '15/01/01' -- where to_char(start_date,'yy/mm'dd')과 같다.
;
 

WHERE절에 사용되는 연산자의 3가지 분류

  1. 논리 연산자
  2. 논리 비교 연산자
  3. SQL 비교 연산자
 

조건의 부정 - 사용자가 원치 않는 데이터를 조건식을 통하여 제외할 때, 각 연산자에 부정식을 써서 데이터를 제거 할 수 있다.

  • 논리 비교 연산자 - !=, <>, ^=
  • SQL 비교 연산자 - NOT BETWEEN ~ AND ~, NOT IN, NOT LIKE, IS NOT NULL
1
2
3
SELECT name, salary
FROM s_emp
WHERE salary >= 1000;

 

1
2
3
SELECT name, start_date, dept_id
FROM 
WHERE start_date < '16/12/31';

 

1
2
3
SELECT name, salary
FROM s_emp
WHERE salary BETWEEN 1000 AND 1500;

 

1
2
3
SELECT name, title, dept_id
FROM s_emp
WHERE dept_id IN (110,113);

 

1
2
3
SELECT name, start_date, title
FROM s_emp
WHERE start_date LIKE '17%';

 

1
2
3
4
5
6
7
--Q3. 직원중에 mailid가 없는 직원 출력
select * from s_emp
where mailid is not null
;

 

1
2
3
select name, salary from s_emp
where salary <=1000;
 

※논리 연산자의 우선순위가 정해져있지만  ( )를 통해 처리하는게 일반적이다.

'IT > SQL' 카테고리의 다른 글

Developer 설치  (0) 2019.06.07
SUBGROUP으로 데이터 분류  (0) 2019.06.05
함수 2가지  (0) 2019.06.05
테이블 생성 및 데이터 조작(DML)  (0) 2019.06.05
권한과 역할(privilege & role)  (0) 2019.06.05

댓글