728x90
반응형
-- select 컬럼명1, 컬럼명2, ... || *
-- from 테이블명
-- where [조건문] => 레코드 선택의 조건.
-- where 구문이 없는 경우 모든 행을 선택
-- 컬럼에 사용되는 연산자
-- || : 연결연산자. 두개의 컬럼을 연결하여 하나의 컬럼으로 생성
-- 산술연산자 : +, -, *, /
-- = : 등가연산자. 두개의 값이 동일 true or fall
-- >, <, >=, <=: 관계연산자. 크거나, 작거나, 크거나같다, 작거나같다.
/*
컬럼이나 where 조건문에 산술연산이 가능.
연산자
연결연산자 : ||
산술연산자 : + - * /
비교연산자 : =, >, <, >=, <=, !=
SQL연산자 :
컬럼명 between A and B
컬럼명 in (값1,값2,...)
컬럼명 not in (값1,값2,...)
컬럼명 like, not like
% : 임의의 문자 0개이상
_ : 임의의 문자 1개
order by 구문 : 정렬. select 구문의 마지막에 기술
acs : 오름차순 정렬. 생략 가능. 기본값 (default값).
desc : 내림차순 정렬. 생각 불가.
집합연산자 : 두개의 select 구문 결과를 합해서 출력
union : 정렬. 결과의 중복허용 안함. 합집합.
union all : 두개의 결과를 물리적으로 연결
desc 테이블명 : table 구조 조회
selct 구문 형식
select 컬럼명1,컬럼명2,... || *
from 테이블명
[where 조건문] : 생략 될 경우는 모든 레코드 조회함
[group by 컬럼] : 컬럼으로 그룹화
[having 그룹함수] : 그룹함수의 조건문
[order by 컬럼|순서|별명] : 정렬(sort)
리터널로 컬럼 생성. ' '
컬럼의 alias(별명) :
컬럼명 별명
컬럼명 "별 명"
컬럼명 as "별명"
distinct : 중복제거. 첫번째 컬럼에 한번만 사용 가능
where : 레코드 선택의 조건문
*/
/*
함수 정리
1. 문자함수
initcap : 첫문자는 대문자. 나머지는 소문자로.
upper : 모든 문자를 대문자로 변환
lower : 모든 문자를 소문자로 변환
length : 문자열의 길이
lengthb : 문자열을 이루는 바이트 수
substr : 부분문자열.
substr(컬럼|문자열,시작인덱스(1부터시작),[문자의 갯수])
instr : 주어진 문자의 위치 리턴
instr('문자열'||컬럼명,'문자열',[시작인덱스],[번째])
lpad, rpad : 왼쪽/오른쪽 문자 추가
lpad(문자열||컬럼명, 전체길이, 채울문자)
ltrim, rtrim : 왼쪽/오른쪽 문자(공백) 제거.
ltrim(문자열||컬럼명,['제거할 문자'])
trim : trim(문자열||컬럼명) : 양쪽의 공백 제거
2. 숫자 관련 함수
round : 반올림 함수
round(숫자||컬럼,숫자) : 0인경우 정수로 표시
1 인경우 소숫점이하 한자리만 표시
-1 인경우 10자리까지만 표시
trunc : 버림함수
ceil : 근사정수. 숫자보다큰 근사정수
ceil(숫자||컬럼) :
floor : 근사정수. 숫자보다 작은 근사정수
mod : 나머지 함수. mod(숫자1,숫자2) 숫자1 에서 숫자2로 나눈 나머지
power : 제곱 power(3,3) : 3 * 3 * 3
abs : 절대값.
sign : 부호 리턴. 양수:1, 음수:-1, 영:0
3. 날짜 관련 함수
sysdate : 현재일시
months_between : 두날짜 사이의 개월수
round : 날짜관련 반올림.
trunc : 날짜관련 버림
last_day : last_day(날짜). 날짜의 월의 마지막 날자 리턴
4. 형변환함수
to_char : 날짜=>문자열, 숫자=>문자열 패턴: 날짜인경우=>yyyy,mm,dd,hh .......
숫자인경우=> 9, 0, ,(천단위콤마), .(소숫점표시)
to_number : 숫자형문자 => 숫자.
to_date : 문자열=>날짜 패턴: 날짜인경우=>yyyy,mm,dd,hh .......
5. 일반함수
nvl : nvl(컬럼,기본값) : 컬럼의 값이 null인 경우는 기본값으로 치환.
6. 그룹함수
count : 레코드의 건수 리턴, null 값은 제회
count(컬럼명) : 해당 컬럼의 값이 null아닌 갯수
count(*) : 전체 레코드의 갯수
*/
/*
join
cross join : 사용시 주의를 요함. 결과가 m*n개의 갯수로 리턴.
Equi Join : 조인컬럼의 조건이 =인 조인을 등가조인이라함.
Non Equi Join : 조인컬럼의 조건이 =가 아닌 조인을 비등가조인이라함.
inner join : 기본. 조인컬럼의 조건을 만족하는 레코드만 조회.
outer join : 조인컬럼의 조건을 만족하지 않아도 한개/두개 테이블의 내용을 모두 조회가능한 조인
left outer join : 왼쪽 테이블의 내용을 모두 조회.
오라클방식: 조인컬럼의 오른쪽에 (+) 표시
ANSI방식 : left outer join
right outer join : 오른쪽 테이블의 내용을 모두 조회.
오라클방식: 조인컬럼의 왼쪽에 (+) 표시
ANSI방식 : right outer join
full outer join : 양쪽 테이블의 내용을 모두 조회.
오라클방식: left outer join, right outer join을 union 방식으로 구현
ANSI방식 : full outer join
self join
조인되는 테이블이 같은 경우를 self join 이라함.
테이블명에 반드시 별명을 지정해야 함.
조회되는 모든 컬럼도 테이블의 별명을 붙여야 함.
*/
/*
SUBQUERY
SELECT 구문 내부에 SELECT 구문이 존재.
단일행 서브쿼리 : 서브쿼리의 결과가 1개인 경우.
사용가능 연산자 : =, >, < ...
다중행 서브쿼리 : 서브쿼리의 결과가 여러개인 경우.
사용가능 연산자 : in
*/
/*
DML :
insert : 새로운 레코드를 추가하는 명령어.
컬럼명 구현 생략시 스키마와 같은 순서로 모든 컬럼의 값이 설정되야 함.
insert into 테이블 [(컬럼명1,컬럼명2...) ] values (값1,값2...)
insert into 테이블 [(컬럼명1,컬럼명2...) ] select 구문 -- 기존 테이블의 값으로 레코드 추가
update : 레코드의 값을 수정하는 명령어.
update 테이블명 set 컬럼명1 = 값1, 컬럼명2 = 값2,...
[where 조건문] => 변경되는 레코드 선택하는 조건.
=> 기술되지 않은 경우 모든 레코드의 값이 수정됨.
delete : 조건에 맞는 레코드 제거.
delete [from] 테이블명
[where 조건문] => 삭제될 레코드의 조건.
where 조건문이 없는 경우는 모든 레코드가 삭제됨. 주의 요함.
CRUD : 데이터를 처리하는 기능.
(C)reate : 데이터 추가. insert
(R)ead : 데이터 조회. select
(U)pdate : 데이터 변경. update
(D)elete : 데이터 삭제. delete
TCL (Transaction Controll Language)
commit : 업무 정상 종료. 물리적으로 저장 완료됨.
rollback : 업무가 비정상 종료시, commit 완료시 이후의 DML 명령어 실행을 취소함.
DDL : Data Definitaion Language
객체를 생성,변경,제거 기능을 담당하는 명령어
Trsaction 처리 불가능. auto commit 됨.
derate, drop, alter
create table: table 객체 생성.
create table 테이블명 (
컬럼명 자료형 제약조건
)
create table 테이블명
as select 구문.
drop table : table 삭제.
drop table 테이블명.
*/
/*
alter : 기존객체의 구조를 변경하는 명령어
컬럼을 추가 또는 변경, 삭제 가능함.
컬럼 추가 : ALTER TABLE 테이블명 ADD 컬럼명 자료형
컬럼 삭제 : ALTER TABLE 테이블명 DROP COLUMN 컬럼명 자료형
컬럼 크기 변경 : ALTER TABLE 테이블명 MODIFY 컬럼명 변경할 자료형
컬럼 이름 변경 : ALTER TABLE 테이블명 RENAME COLUMN 현재컬럼명 TO 변경컬럼명
*/
-- 컬럼 추가
SELECT *
FROM DEPT3
;
-- DEPT3 테이블에 LOC 컬럼 추가하기
ALTER TABLE DEPT3 ADD LOC VARCHAR2(30)
;
-- 컬럼 수정 : 컬럼의 크기를 크게 하는 경우는 가능
-- 컬럼의 크기를 작게 하는 경우는 저장된 데이터의 크기보다 작으면 오류 발생
-- DEPT3 테이블에 LOC 컬럼의 크기를 50자리로 변경하기
ALTER TABLE DEPT3 MODIFY LOC VARCHAR2(50)
;
-- 결과
DESC DEPT3
;
-- 컬럼 제거
ALTER TABLE DEPT3 DROP COLUMN LOC
;
-- 컬럼 이름 변경
-- DEPT3테이블의 AREA 컬럼을 LOC컬럼으로 변경하기
ALTER TABLE DEPT3 RENAME COLUMN AREA TO LOC
;
728x90
반응형