본문 바로가기

JAVA/Oracle

사원관리 시스템 개발 시 필요한 정보와 like 연산자 사용(칼럼의 값이 특정 무자열을 포함하고 있는 자료의 검색)

반응형

** 사원관리 시스템을 개발하고자 한다.

사원의 정보를 저장하기 위한 테이블 생성하려고 한다.

사원에 대해서는 어떤 정보가 필요할까요?


///////////////////////////////////////////////////////////////


cmd - sqlplus - scott/tiger


ed emp;


** 테이블 생성하기 1-1


 ( 사원, 대리, 과장, 차장, 부장, 이사, 대표이사)


사원 emp

담는거 변수명 자료형[제약사항]

사원번호 no varchar(20) 주식별자

이름 name varchar(20)

부서명 dname varchar(20)

입사일 hiredate date

전화 tel varchar(20)

급여 sal number

직급 rank varchar(20)

사진 img varchar(30)

주소 addr varchar(50)

주민번호 jumin varchar(14)


** 테이블 생성하기 1-2

create table emp(no varchar(20) primary key,

name varchar(20),

dname varchar(20),

hiredate date,

tel varchar(20),

sal varchar(20),

rank varchar(20),

img varchar(30),

addr varchar(50),

jumin varchar(14))


@ emp;


desc emp;


** 생성된 사원 테이블 emp에 자료 넣기1-1


=> insert into 테이블명 values (값1,값2,...);

값의 순서는 테이블구조와 같아야 한다.

또, 문자와 문자열은 홋따옴표로 만들어야 한다.

또, 날짜자료형도 홋따옴표로 묶는다. 예) '2014/01/05'

만약 오늘날짜를 넣고자 한다면 sysdate

만약, 값이 없을때는 null


** 사원정보 추가하기 1-2


==>

사원번호 100

이름 홍길동

부서 null

입사일 2012.01.05

핸드폰 010-1234-5678

월급 1500만원

직급 대표이사

사진 h100.jpg

주소 인천시 남동구 서창동

주민번호 690416-1234567


** 테이블 삭제

drop table emp;


**데이터 추가 반이름 


연습) 

개발1부나 개발2부에 근무하는 사원들 중에 직급이 '사원'이고 급여가 500만원이하인 모든 사원의

사원번호, 사원명, 부서명, 급여, 주소를 검색하시오.

단, 부서명 순으로 검색하고 동일할때는 사원명순으로 검색합니다.


select no, name, dname, sal, addr from emp where dname in ('개발1부'  ,  '개발2부')

or (rank = '사원' and sal <= 500) order by dname, name;


** 자료 검색 sql 명령어 형식

select * from 테이블명 [where 조건식 order by 원하는 순서]


select 칼럼명1 + ~~ 처럼

수식이나 연산자를 표현 할 수 있다.


연습)

모든 사원의 사원번호, 사원이름, 연봉을 검색하시오.

select no, name, sal*12 from emp;


밑에 질의문처럼 하면 출력시 원하는 제목을 얻을 수 있다.

select no, name, sal*12 연봉 from emp;

select no 사원번호, name 사원명, sal*12 연봉 from emp;


연습)

개발1팀의 근무자들 중에 연봉이 1억 이상인

모든 사원의 사원번호, 사원명, 연봉, 주소를 검색하시오.

단, 연봉이 높은순으로 검색하고 동일할 경우 사원명 순으로 나타냅니다.


select no, name, sal*12, addr from emp 

where dname='개발1부'

and sal*12 >= 10000 

order by sal*12 desc, name;


** 컬럼의 값이 특정 문자열을 포함하고 있는 자료의 검색

like 연산자를 이용한다.

like 연산자와 같이 사용하는 키워드

% : 모르는 0개이상의 글자

_ : 모르는 1개의 글자

예)

select 칼럼명 from 테이블명 like 'k%' ;

==> 칼럼의 값 중 'k'로 시작하는 칼럼명

k

ko

korea

.......


'k' 글자가 칼럼의 어디에 있더라도 찾으려면

select 칼럼명 from 테이블명 like 'k%' ;

abck

k

ko

abckxyz

.......


select 칼럼명 from 테이블명 like 'k%' ;

==> 'k'로 시작하는 두글자 데이터

ko

ka

k // 못찾음

ak // 못찾음


select 칼럼명 from 테이블명 like 'k%' ;

==> 'k'로 끝나는 세글자 데이터

abk

ak // 못찾음

kbo // 못찾음


연습)

전체근무자들 중에 성씨가 "김"씨인 모든근무자들의

사원명, 연봉, 주민번호를 검색하시오.


select name, sal*12 annsal, jumin from emp where name like '김%';


연습)

전체근무자들 중에 거주지가 "인천시" 이거나 "고양시"인 근무자들에게

교통비를 지급하고자 한다. 대상자의 사원번호, 사원명, 주소, 교통비를 검색하시오.

단, 지급하는 교통비는 급여의 10%이다.


select no, name, sal*0.1 교통비 from emp where addr like '인천시%' or addr like '고양시%';

반응형