티스토리 뷰
<SQL>
- DQL(Data Query Language): select(행렬데이터 검색, 조회)
- DML(Manipulation): insert(행데이터 입력)
update(행데이터 수정, 갱신)
delete(행데이터 삭제)
- DDL(definition): create(객체 생성)
drop(객체 삭제)
alter(객체 변경)
rename(객체이름 변경)
truncate(저장공간삭제)
- TCL(Transaction Control): commit(논리적 작업에 대한 정상적인 종료, 실제 물리적인 반영,
트랜잭션종료, 트랜잭션시작)
rollback(트랜잭션 작업취소)
savepoint(부분 작업취소를 위해 저장점을 설정)
- DCL(control): grant(권한부여), revoke(권한회수) //관리자
* 명령어는 대,소문자 상관없지만 데이터는 대,소문자 구분
<SELECT문 형식>
SELECT 컬럼명1,컬럼명2
FROM 테이블명1,테이블명2;
select * -- *: 특정테이블(emp)의 모든 컬럼을 조회(--:설명문(주석))
from emp;
select empno, ename, sal -- 테이블내의 원하는 컬럼을 명시적으로 사용.
from emp;
select '안녕'
from emp;
--->'안녕' 14번 출력(사원수와 일치)
select '안녕'
from dual;
--->테이블과 관련없는 조회,검색을 할 경우
가상테이블(dummy)을 사용: dual
<NVL()함수>
형식)
nvl(null이 예상되는 컬럼명, 대치될 데이터)
※주의: 컬럼명과 데이터는 서로 자료형이 일치해야 함
nvl(comm, 0)
nvl(ename, 13) --(X)
nvl(ename, '무명') --(O)
select empno, ename, sal, nvl(to_char(comm),'없음'), sal*12+nvl(comm,0)
from emp;
--> comm의 숫자값을 문자로 변환하여 매개변수들의 자료형을 일치시킴.
<select형식>
select 컬럼명 [as] Alias, 데이터 --[]: 생략가능, Alias: 별명,별칭
from 테이블명;
<Concatenation연산자> ||
- 앞뒤 데이터를 접합시켜주는 기능
select ename||'사원의 직책은 '||job||'입니다.'
from emp;
ENAME||'사원의직책은'||JOB||'입니다.'
--------------------------------------
SMITH사원의 직책은 CLERK입니다.
ALLEN사원의 직책은 SALESMAN입니다.
WARD사원의 직책은 SALESMAN입니다.
JONES사원의 직책은 MANAGER입니다.
MARTIN사원의 직책은 SALESMAN입니다.
DISTINCTL: 중복된 데이터값을 제거 키워드
SELECT DISTINCT 중복컬럼명
FROM 테이블명
==================================================================
<SQLPLUS>
list(l): 버퍼에 있는 명령을 출력
/: 맨마지막에 버퍼에 담겨있던 명령어가 실행
run: 버퍼에 있는 명령어를 출력하고 명령어 실행
create table Person
(
이름 데이터타입(최대바이트)
name varchar2(15),
age number(3),
job varchar2(15)
);
insert into person (name,age,job) values('티스토리',15,'사이트');
테이블이름.sql으로 저장
person.sql
SQL>@d:\r\person.sql
SQL>edit d:\r\person.sql
==================================================================
<select문>
select 컬럼명
from 테이블명
where CONDITIONS;
<조건식구성> conditions
형식)
컬럼명 연산자 비교데이터
<비교연산자>
>, <, >=, <=, =(같다), != <> ^= (같지않다)
자바 오라클
&& --> AND(and)
|| --> OR(or)
<NOT연산자>: 결과값에 대한 반대 결과값
where not 컬럼명 = 30; -- where 컬럼명 != 30
<BETWEEN AND연산자>
- 특정 범위의 검색을 할 때 사용
- 주의: 명시된 값을 포함할 때 적용
형식)
BETWEEN A AND B
---> A: 최소값 B: 최대값
---> 최소값 이상 최대값 이하
<IN연산자>
- 특정한 값들의 나열안에 속하는 조건을 검색
- 여러개의 OR연산자를 대치할 용도로 사용.
형식)
IN(데이터 나열)
IN(list)
<LIKE연산자>
- 특정문자로 시작, 끝, 포함하는 데이터를 검색.
형식)
where 컬럼명 LIKE 'pattern'
패턴내에서 사용되는 와일드카드: %(0~무한대 대치) _(한문자 대치)
select ename
from emp
where ename='A';
---> 사원명이 'A'인 사원검색
select ename
from emp
where ename='A%';
---> 사원명이 'A%'인 사원검색
select ename
from emp
where ename LIKE 'A%';
---> 사원명이 'A'로 시작하는 사원검색
select ename
from emp
where ename LIKE '%A';
---> 사원명이 'A'로 끝나는 사원검색
select ename
from emp
where ename LIKE '%A%';
---> 사원명에 'A'문자가 들어간 사원검색
<NULL데이터 검색>★
---> 컬럼명 IS NULL ★
<NULL이 아닌 데이터 검색>★
---> 컬럼명 IS NOT NULL ★