티스토리 뷰
SQL (Structured Query Language) 구조화된 질의 언어
- DDL (Data Definition Language) : DB 스키마 정의 조작
- DML (Data Manipulation Language) : Data 조작
- DCL (Data Control Language) : Data 제어
DML (Data Manipulation Language) 데이터(TUPLE / ROW) 조작 언어
- SELECT : 데이터 읽기
- INSERT : 데이터 삽입
- UPDATE : 데이터 수정
- DELETE : 데이터 삭제
<SELECT>
SELECT FROM
SELECT 컬럼명, ...
FROM 테이블명;
오라클 내부 실행 순서는 FROM -> SELECT 입니다!
ex) 사원 테이블(EMP) 의 전체 목록을 보자!
SELECT *
FROM EMP;
몇 가지 예제를 통해 기본적인 SELECT 문의 사용법을 살펴보겠습니다.
문제에 사용하는 테이블은 Oracle DB 를 설치하면 기본적으로 제공되는 EMP Table 입니다.
그전에 문제에 사용 될 Query 의 기본적인 기능 몇가지를 소개합니다.
- * Alias (별칭)
- SELECT ENAME AS ”사원명” FROM EMP;
- * 테이블 구조 확인
- DESC 테이블명; (=DESCRIBE 테이블명;)
- * Line 크기 변경 / Page 크기 변경
- SET LINESIZE 크기; / SET PAGESIZE 크기;
- * 문자열 연결
- STRING||STRING
--Q1) 사원 테이블(EMP)의 모든 데이터를 출력하자.
SELECT *
FROM EMP;
--Q2) 사원 테이블에서 사원의 이름(ENAME), 사원의 번호(EMPNO), 월급(SAL)을 출력하자.
SELECT ENAME, EMPNO, SAL
FROM EMP;
--Q3) 사원 테이블에서 사원의 이름과 연봉을 출력하자.
SELECT ENAME, SAL
FROM EMP;
--Q4) 사원의 이름, 입사일(HIREDATE), 부서번호(DEPTNO)를 출력하자.
SELECT ENAME, HIREDATE, DEPTNO
FROM EMP;
--Q5) 사원의 이름과, 사원을 관리하고있는 관리자(MGR)를 출력하자.
SELECT ENAME, MGR
FROM EMP;
--Q6) 부서 테이블(DEPT)의 모든 데이터를 출력하자.
SELECT *
FROM DEPT;
--Q7) 부서 테이블의 구조를 보자
DESC DEPT;
--Q8) 사원 테이블에서 사원의 이름, 월급, 커미션(COMM)을 출력하자.
SELECT ENAME, SAL, COMM
FROM EMP;
--Q9) 사원 테이블의 모든 데이터를 "OO님이 OO에 입사를 하고 OO의 월급을 받습니다." 형식인 하나의 컬럼으로 출력하자.
SELECT ENAME||'님이 '||JOB||'에 입사를 하고 '||SAL||'의 월급을 받습니다.'
FROM EMP;
SELECT FROM WHERE
SELECT 컬럼명,…
FROM 테이블명
WHERE 컬럼의 조건;
WHERE 절을 통해 컬럼에 조건을 걸어 원하는 데이터를 얻어낼 수 있습니다.
Oracle 내부 실행 순서는 FROM -> WHERE -> SELECT 입니다.
문제로 넘어가기 전 WHERE 절에서 사용되는 몇가지 기능을 보도록 하겠습니다.
- 컬럼의 값을 연산 (산술, 비교 등)
- > , >=, <, <=, =, !=(<>), BETWEEN, IN, NOT IN, ANY …
- 조건 연결은 AND, OR 로..
--Q1) 사원테이블에서 사원번호가 '7844' 인 사원의 사원번호, 이름, 월급을 출력하자.
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE EMPNO = 7844;
--Q2) 사원테이블에서 'SMITH'의 사원번호, 이름, 월급을 출력하자.
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE ENAME = 'SMITH';
--Q3) 사원테이블에서 입사일이 1980년 12월 17일인 사원의 모든 데이터를 출력하자.
SELECT *
FROM EMP
WHERE HIREDATE = '1980-12-17';
--Q4) 1980년도에서 1982년도 사이에 입사한 사원의 이름과 입사일을 출력하자.
SELECT ENAME, HIREDATE
FROM EMP
WHERE HIREDATE BETWEEN '1980-01-01' AND '1980-12-31';
--Q5) 월급이 2000 이하인 사원의 이름과 월급을 출력하자.
SELECT ENAME, SAL
FROM EMP
WHERE SAL <= 2000;
--Q6) 월급이 1000에서 2000 사이인 사원의 이름과 월급을 출력하자.
SELECT ENAME, SAL
FROM EMP
WHERE SAL BETWEEN 1000 AND 2000;
--Q7) 사원번호가 7369, 7499, 7521인 사원들의 이름과 월급을 출력하자.
SELECT ENAME, SAL
FROM EMP
WHERE EMPNO IN(7369, 7499, 7521);
<INSERT>
TABLE 에 ROW/TUPLE를 삽입!
INSERT INTO 테이블
VALUES(값, ...);
INSERT INTO 테이블(컬럼, 컬럼)
VALUES(값, 값);
ex) 사원테이블에 사원번호 1111, 이름 HONG, 직업 DEVELOPER, 관리자 없음 입사일 오늘날짜, 월급 3000, 커미션 400, 부서번호 30 을 추가해보자
INSERT INTO EMP
VALUES(1111, 'HONG', 'DEVELOPER', NULL, SYSDATE, 3000, 400, 30);
<UPDATE>
TABLE 에 특정 ROW/TUPLE 를 수정
UPDATE 테이블명
SET 컬럼 = 값, 컬럼 = 값, ...
WHERE 조건;
ex) 사원테이블에서 HONG의 월급을 3500으로 수정
UPDATE EMP
SET SAL = 3500
WHERE ENAME - 'HONG';
<DELETE>
TABLE 에 특정 ROW/TUPLE 를 삭제
DELETE FROM 테이블명
WHERE 조건;
ex) 사원 테이블에서 월급이 3500인 사원 삭제
DELETE FROM EMP
WHERE SAL = 3500;
'DB > Oracle' 카테고리의 다른 글
SQL 기초 4. CONSTRAINT (제약조건) (0) | 2019.11.29 |
---|---|
SQL 기초 3. DCL (Data Control Language) 데이터 제어 언어 (0) | 2019.11.29 |
SQL 기초 2. DDL (Data Manipulation Language) 데이터 정의 언어 (0) | 2019.11.29 |
SQL 기초 (0) | 2019.11.28 |
데이터베이스 기본 개념 (0) | 2019.11.28 |
- Total
- Today
- Yesterday
- JDBC 프로그램 작성단계
- Delete
- java 환경설정
- java
- JdbcTemplate
- 객체
- MVC
- Update
- Oracle
- 객체지향
- 추상화
- OOP
- view
- Scott/Tiger
- 캡슐화
- jdbc
- .
- 다형성
- ojdbc6.jar
- select
- model
- 상속
- INSERT
- controller
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |