2016년 1월 16일 토요일

[oracle]select 문 조건및 연산자와 함수 사용

/*select 문

select 컬럼명, 컬럼명
from 테이블;

*/
select * from professor;

/*
결과

P11 신기술 교수 컴공 765-4111 ksshin@cyber.ac.kr 학과장 P00
P12 이대호 부교수 컴공 765-4112 dhlee@cyber.ac.kr P11
P13 유소연 전임강사 컴공 765-4113 syyoo@cyber.ac.kr P11
P21 박지성 부교수 정통 765-4211 jspark@cyber.ac.kr 학과장 P00
P22 김하늘 조교수 정통 765-4212 hnkim@cyber.ac.kr P21
P23 이상혁 전임강사 정통 765-4213 shlee@cyber.ac.kr P21
P41 안연홍 부교수 경영 765-4411 yhahn@cyber.ac.kr 학과장 P00
P51 함영애 부교수 행정 765-4511 yaham@cyber.ac.kr 학과장 P00
*/


/* select 문 */
/* distinct 컬럼명
   해당컬럼의 검색된 데이터를 중복을 제거하여 출력한다.
 
   결과
 
   행정
   컴공
   정통
   경영
 
*/
select distinct dept_id
from professor;

/* 별명 (aliase 사용)
  컬럼이나 테이블에 이름을 부여할수 있다.
  "" 더블코테이션에 유의한다.
*/

select distinct dept_id as "학과"
from professor;

/*
  결과
행정
컴공
정통
경영

데이터는 변하지 않았지만 컬럼명은 학과로 출력된다.
*/

/*
order by : 출력결과를 오름차순 또는 내림차순 으로 정렬한다.
asc  : 작은 값부터 큰값으로 정렬한다 숫자형은 0부터 9 영문자는 A 부터 Z 한글은 가나다 순
desc : 큰값부터 출력
일반적으로 최신데이터를 불러올때 pk 가 정수 형 증가형태일경우 desc 로 출력 하면 최신 데이터 부터 출력된다.

*/

select * from course;

/*
course_id title c_number professor_id course_fees

L1011 컴퓨터구조 2 P11 0
L1012 웹디자인 2 20000
L1021 데이터베이스 2 P12 0
L1022 정보통신개론 2 P21 0
L1031 SQL 3 P12 30000
L1032 자바프로그래밍 3 P13 0
L1041 컴퓨터네트워크 2 P21 0
L1042 Delphi 3 P13 50000
L1051 웹서버관리 2 P11 0
L1052 전자상거래 3 P22 30000
L2031 게임이론 3 P23 50000
L0011 TOEIC연구 2 0
L0012 문학과 여행 2 0
L0013 문학개론 2 0
*/



select course_id as "과목코드", title as "과목명", c_number as "과목명"
from course
order by title asc;

/*
결과
과목코드 과목명 과목명
L1042 Delphi 3
L1031 SQL 3
L0011 TOEIC연구 2
L2031 게임이론 3
L1021 데이터베이스 2
L0013 문학개론 2
L0012 문학과 여행 2
L1012 웹디자인 2
L1051 웹서버관리 2
L1032 자바프로그래밍 3
L1052 전자상거래 3
L1022 정보통신개론 2
L1011 컴퓨터구조 2
L1041 컴퓨터네트워크 2

과목명 값이 높은 순으로 출력되었다.

*/

/* 산술연산
select 절에 수식을 사용할수 있다.
*/

update course
set course_fees = 0
where course_fees is null;

/*
(c_number * 30000 + course_fees) as "과목별수강료" 추출해온 컬러값에 수식 계산을 적용하고
이름을 부여한다.

order by "과목별수강료" 부여된 이름으 값들을 기준으로 order by 절을 사용할수 있다.

*/

select course_id "과목코드" , title "타이틀" ,  c_number "학점수", (c_number * 30000 + course_fees) as "과목별수강료"
from course
order by "과목별수강료" desc, course_id asc;

/*
결과

L1042 Delphi 3 140000
L2031 게임이론 3 140000
L1031 SQL 3 120000
L1052 전자상거래 3 120000
L1032 자바프로그래밍 3 90000
L1012 웹디자인 2 80000
L0011 TOEIC연구 2 60000
L0012 문학과 여행 2 60000
L0013 문학개론 2 60000
L1011 컴퓨터구조 2 60000
L1021 데이터베이스 2 60000
L1022 정보통신개론 2 60000
L1041 컴퓨터네트워크 2 60000
L1051 웹서버관리 2 60000

*/

/*
where 절에 검색조건 지정

문법 :  where 식  and  || or  수식 에 방법으로 작성
and : 모두 참일때

or : 조건중 하나라도 참일떄


산술 연산자, 관계연산자

+,-,%,/
*/
select * from course;

select c_number
from course
where c_number*1000 > 2000;

/*
결과

3
3
3
3
3

  >= 크거나 같다 , <= 작거나 같다 <> != 같지않다  등의 연산자 사용가능

*/

/*
논리 연산자

a and b and c and ... : a,b,c... 의 모든식의 결과가 합일때 출력
a or b or c... : a,b,c... 중 하나만 만족해도 출력
not a : a 가 참이 아니면 출력 <> != 같은의미
*/


/*
연결 연산자
select 후 || 연산자를 통해 문자열을 결합하고 그 결과물에 이름을 부여할수 있다.
like 연산자
조건식에서 특정 패턴의 문자를 포함하는지에대한 결과식을 만들경우 like '%문자열%'
(%는 기타 문자열 _는 )   상황에 따라 '%문자'  '문자%' '%문자%'  로 사용

!!  데이터를 받아와서 특정문자열로 비교해서 추출시는 upper()  함수 또는 lower() 함수를 주로 사용한다.
*/

select * from student;

select dept_id || '학과의'  "학과" , year || '학년' "학년"  , name || ' 입니다' "성명"
from student
where dept_id like '%컴공%' and year = 2;

select email  from student where email like lower('%CYBER%');
select email  from student where upper(email) like ('%CYBER%');


/*
in 연산자

대상컬럼의 값이 특정 지정 값들의 일부와 일치여부에 따라  true or false 를 반환하는 식에서 사용한다.


*/

select * from student where dept_id in ('컴공','경영');

/*
between 값 and 값
일정 범위내의 값을 추출하고자할때 검색 조건으로 사용한다.

*/

/*
is null 칼럼
값이 공백이아닌 null 일 경우 true 를 반환한다.
*/

댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1