본문 바로가기

Oracle

Oracle 기본 Query문 2

-- 주석 처리

F5 실행

Table 생성

(varchar2가 최신 버전이어서 주로 사용하는 추세임)

create table 이름(주로 소문자 사용)(
ID number,
NAME varchar2(20)
);

 

 

테이블 확인 및 선택

select * from 테이블이름;

 

선택적으로 field명만 지시해 해당 column만 확인하고 싶을 시

select field이름 from 테이블이름;

 

테이블의 column 갯수를 확인하고 싶을 시,

select count (*) from tab01;

 

중복된 것 제외할 시

select count (distinct name) from tab01;

 

각 field에 별칭을 추가(aliasing)하기 위해 쓰는 방법

select id as 아이디, name as “이   름”, salary as 급여 from tab01;

 

이런 식으로도 가능하나, query 코드 가독성으로는 좋지 않기 때문에 아래 방식은 잘 안쓴다.

select id 아이디, name 이름, salary 급여 from tab01;

 

테이블을 합칠 시 예시

select name||salary as 합친거 from tab01;

select name||salary as 합친거 from tab01;

 

중복된 column 제거한 데이터 찾기

select distinct name from tab01;

 

삭제

drop table 테이블이름;
purge recyclebin; --완전 삭제

 

중복 생성 방지를 위한 query문, drop 먼저 하고 create 하는 방식

drop table tab01;

 

예시)

create table tab01(
ID number,
NAME varchar2(20)
);

 

A에서 B로 이름 바꿈

rename A to B

 

테이블 속성

desc 테이블이름;

 

속성을 뜻하는 용어

attributes(또는 field, 열, column) - 세로 열

행(record, tuple) - 가로 행

 

테이블 갱신(위험한 용어!! 조심해서 사용해야 함.)

기존 테이블 안에 새로운 field 추가

alter table tab01 add(address varchar2(20));

 

2개 이상 넣을 시에는 다음과 같이 추가 가능

alter table tab01 add(phone number not null, gender varchar2(20) not null);

 

테이블 안의 속성 변경

alter table tab01 modify(name not null);

 

테이블 삭제

alter table tab01 drop(gender);

 

데이터 추가 시 (묵시적 방법, 필드를 이미 적어놓았다고 가정하는 것)

insert into tab01 values(1,’a’,’asdf’);

 

또는 (명시적 방법, field 개수를 다 넣지 않아도 가능)

insert into tab01(id,name,address) values(2,'b','asdf');

 

아래와 같은 방식으로 연산식을 query문에 넣을 수 있음.

프로그램으로 만들 때, 변수로 지정할 수 있다!

insert into tab01 (salary)values (10+10);
insert into tab01 (salary)values (3600*3600);

 

외부로 입력받아 처리 시 다음과 같이 입력. 문자열 입력 시에는 query문처럼 똑같이 ‘’을 달아야 함.

insert into tab01 values(&a,&b,&c);

 

‘’넣기 귀찮으면 다음과 같이 미리 넣어버리는 방법도 있음.

insert into tab01 values(&a,'&b',&c);

 

데이터의 산술 연산 가능함.

select salary as 급여, salary*1.2 as 수령액, salary*1.2-salary as 보너스 from tab01;

출력 예.

select name as 이름, salary as "월급(만 원)", salary *12 as "연봉(만 원)" from tab01;

 

데이터의 정렬

--(오름차순)
select * from tab01
order by salary asc;

--(내림차순)
select * from tab01
order by salary desc;

 

첫번째 field 기준으로 정렬 시 다음과 같이 사용

select * from tab01
order by 1;

 

첫 번째는 salary 내림차순, id 오름차순

select * from tab01
order by salary desc, id asc;

 

출력 시 중간에 목록 안 나오고, 페이지 사이즈 늘려서 데이터가 쭈욱 나오게 할 수 있다.

또한, QUERY가 수행된 시간을 출력하려면 SET TIMING을 ON 하면 된다.

-- 원하는 줄만큼 출력
SET PAGESIZE 64;
-- 원하는 숫자 넣으면 됨

-- 실행에 걸린 시간 출력
SET TIMING ON;

 

'Oracle' 카테고리의 다른 글

Oracle - join  (0) 2020.06.02
Oracle EMP Table 예시  (0) 2020.06.01
Oracle 기본 Query문 4  (0) 2020.06.01
Oracle 기본 Query문 3  (0) 2020.05.27
Oracle 기본 설정, query문 기본  (0) 2020.05.27