*.비교연산자II(%,_)
LIKE A ~~~ : 애매모호한 범위 나타냄.. A 머시기~~~
% : 0개이상의 자릿수
_ : 1개 자릿수.
escape '~' : ~문자뒤에 있는 %,_은 %,_가 아니라 단순히 문자라는 표시.

ex) %
select * from emp
where ename like 'A%'

select * from emp
where ename like '%N'

*.입력
insert into 테이블명[(컬럼명, 컬럼명,..)]
values(값, 값,..)
ex)
 insert into emp(empno, ename)
 values(8000,'세바스%찬')
ex)
 insert into emp(empno, ename)
 values(8100,'마이_콜')

위내용 검색시... %, _로 검색시.
escape 사용
ex) 세바스%찬 찾기.
select *
from emp
where ename like '%#%%' escape '#'
ex) 마이_콜 찾기..
select * from emp where ename like '%@_%' escape '@'

*.삭제
delete [from] 테이블명 [where 조건]
ex) %들어간것 삭제
delete from emp
where ename like '%#%%' escape '#'

*.함수(function)
- 함수명(~~)
 .max/min : 해당열의 최대/최소값
 .sum/avg : 해당열의 총합/평균값
 .count : 행의 갯수카운트.
 .stddev
ex)
 select max(sal), min(sal), sum(sal), avg(sal)
 from emp
ex) -- 소문에 듣는 count(*), count(컬럼명) 차이,
-- *은 컬럼검색없이 rows계산, 컬럼명은 컬럼명검색후 계산
 select count(*), count(sal)
 from emp
- 그룹함수
 select ~
 from 테이블명
 group by 그룹기준
 

Posted by 말없제이
,

계정은 scott/tiger

1. xx번 부서는 ~~~ ->출력. concat 사용.
select concat(deptno, '번 부서는' || dname)
from dept;

2. 커미션이 확정된 사원의 사원번호,사원명,급여, 커미션 조회
select empno, ename, sal, comm
from emp
where comm is not null

3. 2번결과내 급여가 1500 이상인 사원번호,사원명,급여,커미션 조회
select empno, ename, sal, comm
from emp
where comm is not null and sal >= 1500

4. 3번결과를 급여 오름차순 조회.
select empno, ename, sal, comm
from emp
where comm is not null and sal >= 1500
order by sal asc

5.10번또는 20번 부서에 근무하는 사원들의
부서번호,사원명,급여,커미션,bonus를 bonus 오름차순, 동일보너스내 사원명 오름차순
bonus=기본 커미션+300. 커미션이 null이면 50을 기본커미션으로 함.
select empno, ename, sal, comm, (nvl(comm, 50)+300)as bonus
from emp
where deptno in (10, 20)
order by bonus asc, ename

Posted by 말없제이
,

조건에 관한 연습.

*.오라클 내장함수

*.연결연산자(Concatenation) : ||
컬럼사이 특정값을/컬럼을 한줄로 출력할수 있음.
ex)
select dname || ' 부서코드는 ' || deptno from dept;
OPERATIONS 부서코드는 40

*.함수명(~~,~~) : parameter, argument, 인수, 인자, 매게변수
concat(표현식, 표현식~~)
ex)
select concat(deptno, '번 부서')
3개를 넣으면 concat내에서는 인수2개받은 방법이라..

select concat(deptno, '번 부서 : ' || dname)
from dept;

*.현재 날짜와 시간조회.
 select sysdate from dual
 
 *.일시적으로 시간 변형함수.(형변환 함수사용)
To_Char(날짜, '날짜시간Format')
ex)
select sysdate, to_char(sysdate, 'yyyy/mm/dd HH:mi:ss') from dual
ex) 월표시
select sysdate, to_char(sysdate, 'yyyy/month/dd HH:mi:ss') from dual
09/06/22 2009/june     /22 09:49:37  --공백도 포함
ex) 월 축약
select sysdate, to_char(sysdate, 'yyyy/mon/dd HH:mi:ss') from dual
09/06/22 2009/jun/22 09:49:37
ex) 요일, 24시간 표시
select sysdate, to_char(sysdate, 'yyyy/mon/dd day HH24:mi:ss') from dual
ex) 서기-- 표시
select sysdate, to_char(sysdate, 'BC yyyy-mon-dd day HH24:mi:ss AM') from dual

*.alter session set NLS_Date_Format = '날짜시간format'
 alter session set nls_date_format= 'yyyy/mm/dd hh24:mi:ss';

 *.조건문(where) 사용.
select ~
from 테이블명
[where 조건]
[order by 정렬명 정렬방식]
ex)
select empno, deptno
from emp
where deptno=10
order by deptno asc

*.논리 연산자 :
~ or ~ : 단하나라도 만족해도
~ and ~ : 모두 만족해야.
not : 아닌값.
in(값,값) : 값인것..

ex) or
select empno, deptno
from emp
where deptno=10 or deptno=20

ex) in
select empno, deptno
from emp
where deptno in (10, 20)
order by deptno asc

ex) not in
where deptno not in (10, 20)

ex) 10과 30사이
where deptno between 10 and 30
where deptno not between 10 and 30

*.비교연산자 : 기준 비교방법 비교할값
a > b : a는 b보다 크다(초과)
a >= b : a는 b보다 크거나 같다.(이상)
a < b : a는 b보다 작다(미만)
a <= b : a는 b보다 작거나 같다(이하)
a <> b : a는 b와 같지 않다.
a != b : a는 b와 같지 않다.
ex) 1500 이상 2850이하.
select  ename, sal
from emp
where sal>=1300 and sal<=2850
order by sal asc
ex)
select  ename, sal
from emp
where sal between 1300 and 2850
order by sal asc

*.문자처리함수
Upper(~) : 대문자로 처리함수.
Lower(~) : 소문자로 처리함수
initcap(~) : 앞문자만 대문자처리함수
ex)
 select empno, lower(ename), initcap(ename), sal, hiredate
 from emp
 where ename=upper('allen')

*.NULL 조회...
 where comm is null
 where comm is not null
 null은 미확정값이므로 정렬시 무한대로 인식.

*.null과 관련된 함수
nvl(colum, ~) : null일경우 그 컬럼을 ~으로 처리.
ex)
select ename, sal, comm, nvl(comm,100), nvl(comm,100)+sal, nvl(sal+comm,100+sal)
from emp
order by comm asc

Posted by 말없제이
,

-- 주석처리
/* 다중주석처리 */  

*.조회
select {*|컬럼명} from table명;

*.정렬
select {*|컬럼명}
from table명
order by 컬럼명 {desc(내림차순) | [asc](오름차순) [,정렬기준2]};
..오름차순 작->큰, a-z, A-Z,ㄱ-ㅎ,날짜 순
...
order by [번째숫자로 대용가능]
ex)
select ename, deptno, sal
from emp
order by deptno, 3 desc, enam

*.distinct 중복한것 한개만.
select {distinct|[all]} 컬럼명 from 테이블명;
all 모두

*.컬럼명에 이름 붙이기.(alias)
select 컬럼명 [as ]바꿀이름
from table명
- " " : 공백이 있을경우 반드시 사용, 한글은 사용안해도 되지만 사용. 소문자, 특수문자

*.산술연산 가능.
ex)
select empno, sal, sal*13 as 년봉
from emp
order by empno, sal

*.연산(+,-,*,/)시 등의 더미테이블(dual) 사용
dual..
ex)select 1+1 from dual

*. /, run 차이점(run 은 쿼리 한번 더 보여줌)


Posted by 말없제이
,

오라클 접속
방법 1.
.DOS모드 접속
-cmd
-sqlplus [유저명/비밀번호]

.사용자확인
show user

방법 2.
-SQL*Plus

방법 3.
.. 다른프로그램들..


- - - - - -
*.sql은 ;로 끝나며 실행됨.
현재 사용자를 보여줌.
select username from dba_users;


*.사용자 변경
conn[ect] user명/비번
ex)connect scott/tiger
.scott/tiger : 임시로 테스트가능하도록 권한연습위한 계정.

sys로 사용자 변경.
SQL> connect /as sysdba
연결되었습니다.
SQL> show user
USER은 "SYS"입니다.

c:\sqlplus "/as sysdba"

*.ed[it] : 버퍼에 마지막으로 사용된 쿼리명령어 편집가능.
편집후 실행은 sql에서 "/"로 실행
SQL> edit
file afiedt.buf(이)가 기록되었습니다

  1  alter user hr
  2* account unlock
  3  /

사용자가 변경되었습니다.

SQL> conn hr/hr
ERROR:
ORA-01017: invalid username/password; logon denied


경고: 이제는 ORACLE에 연결되어 있지 않습니다.
SQL> conn HR/HR
ERROR:
ORA-01017: invalid username/password; logon denied

- 위 사용자의 잠긴권한은 풀었으나 패스워드가 없어서..
- 패스워드 생성... 아래..내용.
*alter user user명
[identified by 비번]
[account unlock]

SQL> edit
file afiedt.buf(이)가 기록되었습니다

  1  alter user hr
  2  identified by hr
  3* account unlock
SQL>
SQL> /

SQL> conn hr/hr
연결되었습니다.
SQL> show user
USER은 "HR"입니다

*.사용자가 권한 가진 테이블 : select * from tab;
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
COUNTRIES                      TABLE
DEPARTMENTS                    TABLE
EMPLOYEES                      TABLE
EMP_DETAILS_VIEW               VIEW
JOBS                           TABLE
JOB_HISTORY                    TABLE
LOCATIONS                      TABLE
REGIONS                        TABLE

8 개의 행이 선택되었습니다.

*.table 구조 조회
desc[ribe] 테이블명

*.table 내용조회
select from table명

*.table너비 사이즈 조절
set linesize 사이즈

*.table높이 사이즈 조절 : 기본은 14.
set pagesize 사이즈

*.버퍼에 남은 명령어 실행
"/"

*.null : 입력당시값을 입력받지 못하면 null로 받음.

*.기본키(primary key)/외래키(foreign key)
emp 테이블의 기본키 -> empno
dept 테이블의 기본키 -> deptno
emp 테이블의 외리키 -> deptno
select * from emp;


Posted by 말없제이
,

orcle, 9i .. cd3장으로 구성

## 오라클 설치
이름 OraHome92
경로 c:\oracle\ora92
Enterprise Edition
일반적인 목적(javaw 차단해제)
포트번호 : 1521
전역데이터베이스 이름 : 예)ORCL
비밀번호 : 예)test (apache 차단해제)

## 오라클 삭제
1.오라클 설치제품 모두 해제
2.관리도구-서비스-오라클 관련 서비스 중지
3.시작-실행-regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\EventLog\Aplication\
오라클로 시작되는 폴더 삭제
HKEY_LOCAL_MACHINE\SOFTWARE\ORCALE 폴더 삭제
(참고) ODBC폴더가 여기에 존재, 오라클 메뉴얼에는 이 ODBC폴더 삭제권고.(현재는 삭제안함)
4.(안전모드 부팅후) C:\ORCALE폴더삭제
5.정상부팅후 시작의 오라클 관련 메뉴 삭제
6.첫번째 디스크 놓고 재설치
6-1.경우에 따라 오라클이 설치완료되었다는 메시지가 바로
나타나는 경우 1번만 다시 실행하고
현재 창을 닫고 오라클설치프로그램 재시동.

## 오라클 설치확인
1.관리도구-서비스-오라클 관련 서비스 시작
2.시작-실행-cmd-sqlplus


Query :
DML : select,insert, delete, update
DDL 데이터 정의어 : Create, drop, alter
TCL 트랜젝션 컨트롤 언어

모델링 : table 관계구성도.

JavaScript : 유효성검사/필수입력. 동적효과
JavaServerPage/Servlet

서비스 - 확인

사용자 삽입 이미지

Posted by 말없제이
,