티스토리 뷰
190401
금일은 SQL의 간단한 정의와, 가장 중요하고 기본이 되는 SELECT문에 대해 다뤄보도록 하겠습니다.
Database는 쿼리문 안에서 모든 설명과, 코드를 같이 넣을 예정으로, 같이 넣도록 하겠습니다.
* SQL에서 --은 주석처리입니다.
* --가 없는 행은 소스라고 보시면 되겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | -- <SQL> -- Structured Query Language(구조화된 질의언어) -- 데이터베이스를 대상으로 질의를 수행할 수 있다. -- 데이터의 조회, 데이터의 추가, 데이터의 변경, 데이터의 삭제 -- 데이터베이스의 객체(테이블, 뷰, 인덱스, 시퀀스, 시노님, 프로시저, 함수)의 생성 및 삭제 -- 제약조건의 추가/삭제/활성화/비활성화 -- 사용자의 추가/삭제, 권한부여/권한제거 -- 트랜잭션 처리 -- SQL의 종류 -- DML(데이터 조작 언어 : Data Mannipulation Language) -- 데이터의 추가(insert into), 변경(upadte), 삭제(delete), 조회(select) -- DDL(데이터 정의 언어 : Data Deifinition Language) -- 데이터베이스 객체 생성(create), 삭제(drop), 변경(alter) -- DCL(데이터 제어 언어 : Data Control Language) -- 트랜잭션의 실행(commit), 취소(rollback) --< select문 > -- 데이터베이스에서 정보를 조회(검색)한다. -- 테이블의 모든 데이터 조회 -- select * << *은 해당 테이블의 모든 조회를 뜻함. -- from 테이블명; -- 데이터베이스 null의 의미 : 값이 아직 정해지지 않음 -- 모든 부서정보 조회하기 select * from DEPARTMENTS; -- 모든 국가정보 조회하기 SELECT * from COUNTRIES; -- 모든 사원정보 조회하기 -- 오라클의 키워드와 테이블이름, 컬럼이름은 대소문자를 구분하지 않는다. SELECT * FROM EMPLOYEES; -- 모든 직종정보 조회하기 SELECT * FROM JOBS; -- 모든 직종변경 이력정보 조회하기 SELECT * FROM JOB_HISTORY; -- 테이블의 특정 열(컬럼)의 데이터 조회하기 -- select 컬럼명, 컬럼명, 컬럼명 -- from 테이블명 -- 부서정보중에서 부서번호와 부서이름을 조회하기 select DEPARTMENT_ID, DEPARTMENT_NAME from DEPARTMENTS; -- 사원정보중에서 사원아이디, 이름, 급여를 조회하기 (tip 컬럼명은 숙지하고 코딩하는 것을 지향!) select EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY from EMPLOYEES; -- 사원정보중에서 부서아이디, 사원아이디, 직종아이디, 이름, 급여를 조회하기 select department_id, employee_id, job_id, FIRST_NAME, salary from EMPLOYEES; -- SELECT절에서는 산술연산자(+,-*,/)의 사용이 가능하다. -- 숫자 데이터 및 날짜 데이터에 대해서 사용가능하다. -- select 컬럼명 + 컬럼명, 컬럼명 - 숫자, 컬럼명 * 숫자, 컬럼명/숫자, 컬럼명/컬럼명 -- from 테이블명 -- 사원 아이디, 이름, 급여, 연봉을 조회하기 select employee_id, first_name, salary, salary * 12 from EMPLOYEES; -- 별칭 부여하기 -- select 컬럼명 as 별칭, 컬럼명 as 별칭, 산술식 as 별칭 ( 컬럼명 별칭 : as 생략 가능) -- from 테이블명 -- 사원 아이디, 이름, 급여(주급), 시급(원으로 환산한 값: 1달러 1130원) select employee_id, first_name, salary, (salary/40)*1130 as 시급 from EMPLOYEES; select employee_id as id, first_name as name, hire_date as "date" from employees; -- date는 오라클의 예약어로 별칭으로 사용 불가!! -- 연결 연산자 -- 연결 연산자(||)는 컬럼과 컬럼, 산술식과 컬럼, 산술식과 산술식을 연결해서 문자를 생성한다. -- 사원아이디, 이름, 급여를 조회하기 -- (단, 급여를 조회할 때 화폐단위를 같이 표현할 것) select employee_id, first_name, salary || '달러' 급여 -- 문자,문자열은 ''(작은따옴표)로 감싼다. from EMPLOYEES; -- 사원아이디, 이름, 직종을 조회하기 -- (단, frist_name과 last_name을 연결해서 조회하고, 별칭을 full_name으로 붙이기) select employee_id, first_name || last_name as full_name, job_id from EMPLOYEES; select employee_id, first_name || ' ' || last_name as full_name, job_id from EMPLOYEES; -- 사원들이 현재 근무하고 있는 직종을 조회하기 select jod_id -- 중복도 같이 나옴. from EMPLOYEES; select DISTINCT job_id -- 컬럼명앞에 DISTINCT를 적으면 중복 제외검색 from EMPLOYEES; select DISTINCT employee_id, job_id from EMPLOYEES; -- 선택되는 행을 제한하기 -- where 절을 사용하면 조회되는(선택되는) 행을 제한할 수 있다. -- where 절은 from 절 다음에 위치한다. -- 조건절의 조건식을 만족하는 행의 모든 컬럼을 조회한다. -- select * -- from 테이블명 -- where 조건식 -- 조건절의 조건식의 만족하는 행의 지정된 컬럼을 조회한다. -- select 컬럼명,컬럼명 -- from 테이블명 -- where 조건식 -- 오라클의 비교조건 -- 같다 = 대입연산자 := -- 같지않다 != <> -- 크다, 작다 >,< -- 크거나같다 >= -- 사원정보에서 60번부서에 소속된 사원의 아이디, 이름, 직종을 조회하기 select employee_id 아이디, first_name || ' ' || last_name full_name, job_id 직종 from EMPLOYEES where DEPARTMENT_ID = 60; -- 사원정보에서 급여를 15000달러 이상 받는 사원의 아이디, 이름, 직종, 급여를 조회하기 select employee_id, job_id, salary from EMPLOYEES where salary >= 15000; -- 사원정보에서 사원 아이디가 200번인 사원의 아이디, 이름, 전화번호, 이메일, 소속부서 아이디 조회하기 select employee_id, first_name || ' ' || last_name full_name, phone_number, email, department_id from EMPLOYEES where EMPLOYEE_ID = 200; -- 국가정보에서 아시아 지역에 위치하고 있는 나라의 국가코드, 국가명 조회하기 select country_id, country_name from COUNTRIES where REGION_ID = 3; -- where절에서 사용가능한 기타 비교조건 -- where 컬럼명 between 값1 and 값2 -- 지정된 컬럼이 값1 이상 값2 이하인 행을 선택한다. -- where 컬럼명 in (값1, 값2, 값3) -- 지정된 컬럼의 값이 값1, 값2 값3 중의 하나와 일치하는 행을 선택한다. -- 괄호안에 포함되는 값의 갯수는 1개 이상 여러개 -- where 컬럼명 like '문자패턴' -- 지정된 컬럼의 값이 문자패턴과 유사한 행을 선택한다. -- where 컬럼명 in null -- 지정된 컬럼의 값이 null인 행을 선택한다. -- 컬럼된 값이 null인 행을 선택할 �� where 컬럼명 = null과 같이 사용하지 않는다. -- where 컬럼명 is no null -- 지정된 컬럼의 값이 null이 아닌 행을 선택한다. -- 컬럼의 값이 null이 아닌 행을 선택할 때 where 컬럼명!= null과 같이 사용하지 않는다. -- 급여가 10000~ 15000달러를 받는 사원의 아이디, 이름, 직종, 급여를 조회하기 select employee_id, first_name || ' ' || last_name full_name, job_id, salary from EMPLOYEES where salary BETWEEN 10000 and 15000; -- 사원 아이디가 150 ~ 170에 속하는 사원의 아이디, 이름 조회하기 select employee_id, first_name || ' ' || last_name full_name from EMPLOYEES where employee_id between 150 and 170; -- 소속부서 아이디가 30, 60, 90인 사원의 아이디, 이름, 직종, 부서아이디를 조회하기 select employee_id, first_name || ' ' || last_name full_name, department_id from EMPLOYEES where DEPARTMENT_ID in (30, 60, 90); -- 직종 아이디가 'ST_MAN'이거나 'ST_CLERK'인 직종의 아이디, 제목, 최소급여, 최대급여 조회하기 select job_id, job_title, min_salary, max_salary from JOBS where job_id in ('ST_MAN', 'ST_CLERK'); -- 값은 대소문자 구별. -- 오라클의 문자패턴 형식 -- where job_id like 'ST%' <-- job_id가 'ST'로 시작하는 것 검색 : 'ST_MAN', 'ST_CLERK' -- where job_id like '%MAN' <-- job_id가 'MAN'로 끝나는 것 검색 : 'ST_MAN', 'SH_MAN', 'SR_MAN' -- where first_name like '%e%' <-- first_name이 'e'를 포함하는 것 검색 : 'elsa','gabliel', 'jane' -- where name like '이__' <-- 이름이 '이**' 인 사람을 검색 : 이순신, 이성계 -- where name like '이_' <-- 이름이 '이*' 인 사람을 검색 : 이산, 이황, 이이 -- 이름에 'e'를 포함하고 있는 사원의 아이디, 이름을 조회하기 select employee_id, first_name || ' ' || last_name full_name from EMPLOYEES where first_name like '%e%'; -- 이름이 'A'로 시작하는 사원의 아이디, 이름을 조회하기 select employee_id, first_name || ' ' || last_name full_name from EMPLOYEES where FIRST_NAME like 'A%'; -- 이름이 'L'로 시작하고 이름이 4글자인 사원의 아이디, 이름을 조회하기 select employee_id, first_name || ' ' || last_name full_name from EMPLOYEES where first_name like 'L___'; -- 부서정보에서 담당자가 지정되어 있지 않는 부서의 아이디, 부서이름을 조회하기 select department_id, department_name from DEPARTMENTS where MANAGER_ID is null; -- 사원정보에서 커미션을 받는 사원의 아이디, 이름, 급여, 커미션을 조회하기 select employee_id, first_name || ' ' || last_name full_name, COMMISSION_PCT from EMPLOYEES where COMMISSION_PCT is not NULL; -- 사원정보에서 소속부서가 지정되어 있지 않는 사원의 아이디, 이름, 직종을 조회하기 select employee_id, first_name || ' ' || last_name full_name, job_id from EMPLOYEES where DEPARTMENT_ID is not null; | cs |
SELECT문의 기본적인 실행과정, 순서입니다.
오늘 배운 SELECT문을 통한 과제파일입니다.
주석처리로 되어 있으니 쿼리문에 바로 복사 + 붙여넣기 하여 작성하시면 되겠습니다.
위 설명 쿼리문과 과제 답안 쿼리문입니다.
'Programming > Database' 카테고리의 다른 글
Database #5 SQL : 비등가조인 & 셀프조인 & 그룹함수(다중행함수) (0) | 2019.04.16 |
---|---|
Database #4 SQL : 조인 (join) (0) | 2019.04.16 |
Database #3 SQL : 논리연산자 & 내장함수 (0) | 2019.04.02 |
Database #1. < Database & QueryBox 설치 > (0) | 2019.04.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- spring
- inline element
- jhta
- 국비
- sql
- Database
- 자바
- 강제형변환
- Oracle
- 데이터베이스
- 브라캣
- 이클립스
- 중앙HTA
- 인라인엘리먼트
- 스프링
- Class
- copotter
- API
- querybox
- 자바 독학
- 태그
- h#
- block element
- html
- 프레임워크
- 오라클 문법
- 블록엘리먼트
- 자바 기초
- 비등가조인
- 자바 국비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함