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가지 분류
- 논리 연산자
- 논리 비교 연산자
- 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 |
댓글