데이터베이스 언어
1. 질의어 (DQL: Data Query Language)
SELECT =>DML에도 포함됨
=> 데이터 검색
2. 데이터 조작어 (DML : Data Manipulation Lang)
SELECT, INSERT, UPDATE, DELETE
=> 데이터 입력, 수정, 삭제
3. 데이터 정의어 (DDL : Data Definition Lang)
CREATE, ALTER, DROP
=> 테이블 생성, 변경, 삭제
※
파일 =엔터티 =테이블
레코드 =튜플 =행(row) //자료
키 =유일값 =기본키
필드 =속성(attribute) =열(column) //항목
DQL
- SELECT : 테이블 내 검색 (데이터 조회)
select * from employee; //employee(사원정보 테이블)에서 모든 데이터 불러옴
set linesize 130 //데이터 가로폭 130줄 보여주기
=>
ENO ENAME JOB MANAGER HIREDATE SALARY COMMISSION DNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80/12/17 800 20
7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30
7521 WARD SALESMAN 7698 81/02/22 1250 500 30
7566 JONES MANAGER 7839 81/04/02 2975 20
7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30
7698 BLAKE MANAGER 7839 81/05/01 2850 30
7782 CLARK MANAGER 7839 81/06/09 2450 10
7788 SCOTT ANALYST 7566 87/07/13 3000 20
7839 KING PRESIDENT 81/11/17 5000 10
7844 TURNER SALESMAN 7698 81/09/08 1500 0 30
7876 ADAMS CLERK 7788 87/07/13 1100 20
ENO ENAME JOB MANAGER HIREDATE SALARY COMMISSION DNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
7900 JAMES CLERK 7698 81/12/03 950 30
7902 FORD ANALYST 7566 81/12/03 3000 20
7934 MILLER CLERK 7782 82/01/23 1300 10
14 행이 선택되었습니다. //14개 자료(레코드) 선택됨
- DESC : 테이블 구조 확인
desc employee
=>
이름 널? 유형
----------------------------------------------------------------------- -------- ------------------------------------------------
ENO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MANAGER NUMBER(4)
HIREDATE DATE
SALARY NUMBER(7,2)
COMMISSION NUMBER(7,2)
DNO NUMBER(2)
//
not null : null 불가
varcahr2(10) : 10자 이하 문자
number(7,2) : 7자 이하 숫자, 소숫점 2개 이하
- 값 일괄 변경
select ename, salary, salary*12 from employee;
=>
ENAME SALARY SALARY*12
-------------------- ---------- ----------
SMITH 800 9600
ALLEN 1600 19200
WARD 1250 15000
JONES 2975 35700
MARTIN 1250 15000
BLAKE 2850 34200
CLARK 2450 29400
SCOTT 3000 36000
KING 5000 60000
TURNER 1500 18000
ADAMS 1100 13200
ENAME SALARY SALARY*12
-------------------- ---------- ----------
JAMES 950 11400
FORD 3000 36000
MILLER 1300 15600
- NVL - NULL 대응 함수
select ename, salary, job, dno, commission, salary*12+commission from employee;
=>
ENAME SALARY JOB DNO COMMISSION SALARY*12+COMMISSION
-------------------- ---------- ------------------ ---------- ---------- --------------------
SMITH 800 CLERK 20
ALLEN 1600 SALESMAN 30 300 19500
WARD 1250 SALESMAN 30 500 15500
JONES 2975 MANAGER 20
MARTIN 1250 SALESMAN 30 1400 16400
BLAKE 2850 MANAGER 30
CLARK 2450 MANAGER 10
SCOTT 3000 ANALYST 20
KING 5000 PRESIDENT 10
TURNER 1500 SALESMAN 30 0 18000
ADAMS 1100 CLERK 20
ENAME SALARY JOB DNO COMMISSION SALARY*12+COMMISSION
-------------------- ---------- ------------------ ---------- ---------- --------------------
JAMES 950 CLERK 30
FORD 3000 ANALYST 20
MILLER 1300 CLERK 10
//commission 없을 때 null 처리되어 연산 불가 => salary*12+commission 결과에서 제외됨
=>수정
select ename, salary, job, dno, commission, salary*12+nvl(commission,0) from employee;
//NVL(COMMISSION, 0) : commission 값이 null이면 0으로 대체
=>
ENAME SALARY JOB DNO COMMISSION SALARY*12+NVL(COMMISSION,0)
-------------------- ---------- ------------------ ---------- ---------- ---------------------------
SMITH 800 CLERK 20 9600
ALLEN 1600 SALESMAN 30 300 19500
WARD 1250 SALESMAN 30 500 15500
JONES 2975 MANAGER 20 35700
MARTIN 1250 SALESMAN 30 1400 16400
BLAKE 2850 MANAGER 30 34200
CLARK 2450 MANAGER 10 29400
SCOTT 3000 ANALYST 20 36000
KING 5000 PRESIDENT 10 60000
TURNER 1500 SALESMAN 30 0 18000
ADAMS 1100 CLERK 20 13200
ENAME SALARY JOB DNO COMMISSION SALARY*12+NVL(COMMISSION,0)
-------------------- ---------- ------------------ ---------- ---------- ---------------------------
JAMES 950 CLERK 30 11400
FORD 3000 ANALYST 20 36000
MILLER 1300 CLERK 10 15600
- 함수 컬럼에 별칭 생성
//select ename, salary, job, dno, commission, salary*12+nvl(commission,0) 연봉 from employee;
//띄어쓰기 불가
select ename, salary, job, dno, commission, salary*12+nvl(commission,0) as "연 봉" from employee;
//띄어쓰기 가능
- DISTINCT : 중복값 제외
select distinct(dno) from employee;
=>
DNO
----------
30
10
20
- 임시 테이블 (테스트용)
desc dual
=>
이름 널? 유형
----------------------------------------------------------------------- -------- ------------------------------------------------
DUMMY
select * from dual;
=>
DU
--
X
- WHERE 조건문
SELECT 필드명 FROM 테이블명 WHERE 필드명 연산자 값;
※연산자
>, <, =(같음), <>(같지 않음)
select * from employee where salary>=3000;
select * from employee where ename='SCOTT'; //문자열 => 홑따옴표, 대소문자 구분 必
select * from employee where hiredate<='1981/01/01'; //날짜 => 홑따옴표 必
- 복수 조건
논리연산자로 연결 (AND, OR, NOT)
select * from employee where dno=10 and job='MANAGER';
- NOT
//select * from employee where dno<>10;
select * from employee where not dno=10;
- BETWEEN
//select * from employee where salary>=1000 and salary<=1500;
select * from employee where salary between 1000 and 1500;
select * from employee where hiredate between '1982/01/01' and '1982/12/31';
- IN : 괄호 안 조건에 해당하는 값 선택
cf. not in
select * from employee where commission in (300,500,1400);
- 와일드카드
= 대신 like 사용 (부분 일치하는 값)
% : 글자수 제한 X
_ : 한 글자
select * from employee where ename like 'F%'; //F로 시작하는 값
like '%M%'; //M 포함하는 값
like '%M'; //M으로 끝나는 값
not like '%A%' //A 포함되지 않은 값
'_A%' //두번째 글자가 A인 값
- IS NULL : NULL인 값 선택
select * from employee where commission is null;
- ORDER BY 항목 ASC/DESC : 정렬
생략 시 오름차순
select * from employee where ename like '%M%' order by salary desc;
- 복수 정렬
select * from employee order by hiredate desc, ename asc; //hiredate 내림차순, 같은 값일 시 ename 오름차순
SQL PLUS (오라클)
명령어:
https://blog.naver.com/leejongcheol2018/222035935941
https://mirwebma.tistory.com/12
1. LIST
: 버퍼(임시 기억저장소)에 저장된 SQL문 확인 (이전 명령 보여줌)
L 만 입력해도 가능
2. /
: 버퍼에 저장된 쿼리문 실행
3. RUN
버퍼에 저장된 SQL문을 보여주고 실행
4. HOST
DOS 환경으로 나감
5. EXIT
SQL PLUS로 돌아옴
'Programming > 국비학원' 카테고리의 다른 글
220831 - 오라클 - 숫자, 날짜, 변환, 일반, 그룹 함수, GROUP BY절 (0) | 2022.09.02 |
---|---|
220830 - 오라클 - SQL PLUS, 쿼리문 (0) | 2022.08.31 |
220826 - 오라클 환경구축 (0) | 2022.08.28 |
220825 - 반응형/적응형 웹 제작 (nike) (0) | 2022.08.26 |
220822~24 - 반응형 웹 제작 (nike), 적응형 웹 제작 (0) | 2022.08.25 |