어제에 이어…
참고)
※ 파일로 데이터 베이스를 백업하는 방법
>mysqldump -u rhinoc -h localhost -p sawondb > c:sawondb2.sql
※ 파일로 데이터 베이스를 복구하는 방법
>mysql -u rhinoc -h localhost -p sawondb < c:sawondb.sql
4. 데이타 검색
형식)
select 특정데이타 from 테이블이름;
특정데이타 : 필드명,함수,계산식을 넣을 수 있다.
ex)
mysql> select * from person; =>person 테이블에 있는 저장된 모든 데이타 확인
mysql> select pno,pname,pay from person; 특정데이타(필드) 확인
mysql> select dno,dname from division;
※ 필드 alias => 필드의 별명을 부여
형식)
select 필드명 as 별명,…. from 테이블명;
as : 생략가능. alias의 약자
ex) person에서 pno=>사번,pname=>이름 하여 검색
mysql> select pno as 사번,pname 이름 from person;
ex) person에서 pno=>사원 번호,pname=>사원 이름 하여 검색
mysql> select pno ‘사원 번호’,pname ‘사원 이름’ from person;
※ distinct 사용
필드에 중복된 데이타는 제외하여 검색
필드 하나만 검색할 때 사용
ex) person에서 dno 필드의 데이타 중 중복된 데이타를 제거하고 검색
mysql> select dno from person;
mysql> select distinct dno from person; (사원 정보에서 dno의 종류 파악)
distinct dno : 하나 필드만 입력
primary key, unique 필드의 경우 중복된 데이타가 없으므로 사용할 의미가 없다.
※ mysql 연산자
산술연산자 : * / % + – ()
비교연산자 : > < >= <= = !=
논리연산자 : not and or
연산순서에 유의.
% : 나머지 연산자
!= : 같지 않다, <>
not : !
and : &&
or : ||
x>=10 && x<=30 (10보다 크고 30보다 작은 숫자)
x<=10 || x>=30 (10보다 작거나 30보다 큰 숫자)
산술연산자
ex) person에서 사원이름과 급여+300으로 검색
mysql> select pname,pay+300 from person;
문제) person에서 사원번호,사원이름,연봉을 검색하되 연봉필드는 year pay로 출력
mysql> select pno,pname,pay*12 ‘year pay’ from person;
※ null 처리
ifnull 함수
형식)
ifnull(필드,변경데이타)
=> 필드의 데이타가 null인 경우 변경데이타로 변환시켜주는 함수
=> 필드의 자료형과 동일한 형태로 변경데이타 사용할 것.
int 형이면 숫자로, date형이면 날짜형태로.
ex) person에서 이름,급여,보너스 검색
mysql> select pname,pay,bonus from person;
ex) person에서 이름,급여+보너스 검색
mysql> select pname,pay+bonus from person; null 데이터가 있는 필드연산은 null 값이 출력되는 문제가 발생한다.
==> 수정
mysql> select pname,pay+ifnull(bonus,0) as total from person;
◆ 조건절(where 절)
ex) person에서 사원번호가 1113인 사원의 이름,급여 검식
mysql> select pname,pay from person where pno=1113;
ex) person에서 사원이름이 smith의 사원의 사원번호,이름,급여 검색
mysql> select pno,pname,pay from person where pname=’smith’;
ex) 입사일 2002년 2월 24일인 사원의 모든 데이타 검색
mysql> select * from person where startdate=’2002-02-24′;
ex) person에서 job이 salesman인 사원의 모든 데이타 검색
mysql> select * from person where job=’salesman’;
ex) persom에서 부서코드가 10인 사원의 사번,이름,급여 검색
mysql> select pno,pname,pay from person where dno=10;
ex) person에서 급여가 3000 이상인 사원의 이름과 급여 검색
mysql> select pname,pay from person where pay>=3000;
ex) person에서 업무가 salesman이 아닌 사원의 모든 데이타 검색
mysql> select * from person where job!=’salesman’;
mysql> select * from person where job<>=’salesman’;
ex) person에서 연봉이 30000 이상인 사원의 이름과 연봉을 검색
mysql> select pname,pay*12 from person where pay*12>=30000;
ex) person에서 업무가 salesman이고 급여가 1500 이상인 사원의 이름,급여,업무 검색
mysql> select pname,pay,job from person where job=’salesman’ && pay>=1500;
mysql> select pname,pay,job from person where job=’salesman’ and pay>=1500;
ex) person에서 업무가 manager이거나 급여가 6000 이상인 사원의 이름과 급여 검색
mysql> select pname,pay from person where job=’manager’ or pay>=6000;
mysql> select pname,pay from person where job=’manager’ || pay>=6000;
ex) person에서 업무가 manager 또는 salesman 중 급여가 1500이하인 사원의 이름,업무,급여 검색
mysql> select pname,job,pay from person where (job=’manager’ or job=’salesman’) and pay<=1500;
기타연산자
1. 필드명 between 값1 and 값2 =>필드의 데이타가 값1부터 값2 번위 검색
주의 : 값1이 값2보다 작아야 한다.
ex)급여가 1000부터 3000인 사원의 이름과 급여를 검색
mysql> select pname,pay from person where pay between 1000 and 3000;
mysql> select pname,pay from person where pay>=1000 and pay<=3000;
2. 필드명 in (값,값,…) => 필드의 데이타가 값들 중 하나인지 검색
ex) person에서 사번이 1113,1116,1123인 사원의 사번과 이름 검색
mysql> select pno,pname from person where pno in(1113,1116,1123);
3. 필드명 like 값 또는 검색기호 =>검색기호를 이용한 검색을 할 때
※ 검색기호 % : 전체
_ : 한 문자
ex)사원의 이름이 s로 시작되는 사원의 사번,이름 검색한다.
mysql> select pno,pname from person where pname like ‘s%’;
ex) 사원의 이름이 s로 끝나는 사원의 사번,이름 검색
mysql> select pno,pname from person where pname like ‘%s’;
ex) 사원의 이름이 두번째 글자가 a인 사원의 사번,이름 검색
mysql> select pno,pname from person where pname like ‘_a%’;
ex) 사원의 이름에 o가 두번 들어가는 사원의 사번,이름 검색
mysql> select pno,pname from person where pname like ‘%o%o%’;
4. 필드명 is null 또는 is not null =>null을 비교하기 위해 검색
ex)보너스가 null이 아닌사원의 이름,급여,보너스 검색
mysql> select pname,pay,bonus from person where bonus is not null;
ex) 매니저가 null인 사원의 사번,이름 검색
mysql> select pno,pname from person where manager is null;