서버를 종료하면 ftp도 종료 다시 시작하려면 디폴트 ftp 다시 실행

*관리자로 로그인

명령프롬프트 실행


sqlplus sys/세팅한비밀번호입력 as sysdba


(sys가 관리자 아이디)



입력


show user





파일 <scott.txt>

C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql


@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql

show user SYSTEM 아닌 SCOTT 으로 바뀜


alter user scott identified by tiger;

명령어로 비밀번호를 tiger로 바꾼다.






scott.txt


둘째줄 

@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql


을 명령창에 친다


show user


명령창에 치면


user is scott

  



alter user scott identified by tiger;


명령창에 치면


User altered.




select*from tab;


내가 가진 모든 테이블을 본다.




치면 데이터베이스 내에 존재하는 파일들이 나온다? (파일 하나가 테이블)




***************************


SQL문



SELECT


INSERT


UPDATE


DELETE





COMMIT







*****************************


select*from dept;


select*from emp;


select*from salgrade;



from ~ : ~테이블로 부터


* : 모두


*대신 field 명을 넣어서 보고싶은것만 출력 가능



select GRADE,HISAL from salgrade;


(등급과 최고값을 salgrade 테이블로 부터 불러온다)


select hisal,grade from salgrade;


순서바꿔서 보기


명령어, 필드이름은 대소문자 구분 필요 없다.





select empno,ename,sal,comm from emp;


>직원번호, 이름, 연봉,수수료 3개 필드를 emp 테이블로부터 불러온다




select empno,ename,sal*12 from emp;


> 샐러리에 12를 곱해서 1년치를 본다.

(12를 곱해서 볼 뿐이지 데이터를 바꾸는게 아니다.)

(연산도 가능)




특정 행을 보고 싶을 경우

where 조건절 사용


select*from emp where empno=7521;


사원번호가 7521인 사원 보기



select*from emp where mgr=7698;


매니저번호가 7698번인 사원 보기



SQL에서는 ==가 아니라 = 사용





****************


사원번호, 이름, 직업, 부서번호를 불러온다


조건은 월급이 1000 이상



select empno,ename,job,deptno from emp where sal>=1000;






**

오라클 홈


인스턴트 클라이언트 다운


http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html



 Instant Client for Microsoft Windows (x64)    서버는 32비트지만 게스트64이므로


11g 버전




*Instant Client Package - SQL*Plus: Additional libraries and executable for running SQL*Plus with Instant Client

Download instantclient-sqlplus-windows.x64-11.2.0.4.0.zip (821,172 bytes)


다운

설치안됨 취소

********


select*from dept where deptno=30;



select*from emp where ename='KING';



문자열을 검색할 때는 앞 뒤로 ' ' 작은 따옴표를 붙여준다.

데이터 값들은 대소문자를 구분한다.






********************************

desc dept;


dept 테이블의 설명을 보겠다


NOT NULL 있는 항은 무조건 기입해야함


타입에서 NUMBER에는 숫자

VARCHAR에는 문자 넣기


데이터 입력



insert into dept(deptno,dname,loc)

2 values(50,'information','SEOUL');


새로운 데이터 추가


확인


select * from dept;



연습


insert into dept(deptno,dname,loc)

2 values(60,''marketing','LA');


insert into dept(deptno,dname,loc)

2 values(50,'HR','SEATTLE');



확인


select * from dept;



테이블면안치고 입력하기

insert into dept

2 values(80,'clean','DAEGU');



대신 순서가 중요함




컨트롤+c 누르면 SQL 빠져나옴 


다시 들어가기 scott 유저로 들어가기


sqlplus scott/tiger


아까 as admin 은 관리자이므로 


유저는 안해도 됨.






commit;


이전 자료 저장??


커밋 이후로 친 자료는 저장 전단계


insert into dept

2 values(99,'test','tset');


추가됨


그 다음


rollback;


롤백을 치면 commit 치기 이전 상태로 돌려 놓는다.



commit 과 rollback



저장을 해야겠다 싶으면 commit 해두자




수정


update 문




updata 테이블명 

set 필드명1=값1, 필드명2=값2, ...




실습



 update dept

2 set loc='BUSAN'

3 where deptno=50;



확인


select*from dept;


인포메이션부서가 부산으로 위치가 바뀌어있다.




실습2


hr>it

seattle>pangyo



update dept

2 set dname='IT' , loc='PANGYO'

3 where daptno=70;






부서번호 50이상의 지역을 구로로 바꾸고 싶다.


update dept

2 set loc='GURO'

3 where deptno>=50;



확인


select*from dept;




update dept

2 set loc='SUWON'

3 where deptno=50 or deptno=80;


두개 행 업데이트


부서번호 50, 80번 지역을 수원으로 변경


확인


select*from dept;





삭제


delete




실습


delete dept

2 where deptno=50;


부서번호 50번 데이터 삭제


확인


select * from dept;



부서번호 50번 데이터가 삭제되었다.



***


다시 관리자 로그인


sqlplus sys/비밀번호 as sysdba


sqlplus / as sysdba


로컬에서만 가능한 


/로 가능 (원격에선 불가능)






Table space 생성


oracle_table.txt

이 파일 서버로 보내기



create tablespace user01

2 datafile 'c:\oraclexe\oradata\user01.dbf'

3 size 10M ;



해당폴더에 가면 DBF 파일이 생성되어 있음


create user user01 identified by user01

2 default tablespace user01;






grant connect,resource to user01 ;


커넥트, 리소스 권한을 유저01에게 주겠다



Grant succeeded.



ctrl + c 빠져나가기



이제 user01로 접근하기


sqlplus user01/user01



select*from tab;


모든 테이블 보기 


아직 안만들었으므로 비어있다.



******************************************************

오라클의 데이터 형


1.NUMBER(전체자릿수,소수점자릿수)

자바와 달리 오라클 DB에서는 정수(int) 실수(double) 모두 NUMER 데이터타입


NUMBER(전체 자릿수, 소수점 자릿수)



NUMBER(2) : 0~99

NUMBER(3) : 0~999


NUMBER(3,1)  =>> 132.1 불가능(전체 4자리),  12.1 가능(전체 3자리)


 

2.CHAR(바이트수)

-고정 길이 문자열을 저장

-최대 2000바이트 까지 저장가능

-입력되는 문자수와 상관없이 항상 지정된 바이트 수만큼 공간이 할당

-ex)전화번호,주민번호,계좌번호 .. 고정된 자릿수


3.VARCHAR2(바이트수)

-가변 길이 문자열을 저장

-최대 4000 바이트 까지 저장

-입력되는 문자수 만큼 공간이 할당. 데이터 값이 유동적인 경우에 권장

-ex)이름,id,pw 등등


4.DATE 날짜 ,   TIMESTAMP : 이건 DATE보다 좀 더 정밀


**리터럴(Literal)

>문자 데이터와 날짜 데이터에는 ' ' (홑따옴표)를 사용하여 표현한다. 리터럴은 대소문자를 구별





****************************8

              

create table students(

테이블명

필드명 데이터타입



)


primary key : 유일한키 , 빈값X , 중복X

NOT NULL : 빈값X, 중복O



create table students(

2 num number(2) primary key,

3 name varchar2(10) not null,

4 kor number(3),

5 eng number(3),

6 math number(3) ) ;



select*from tab;

모든 테이블 보기



select * from students;

reat

방금만든 스튜던트 테이블 보기


결과


no rows selected


행이없음


따라서 데이터 추가



insert into students

2 values(1,'suji',80,90,100);



select * from students ; 


확인하기



insert into students

2 values(2,'iu',75);


나머지 점수들은 낫널이므로 비워서 넣어보면 에러메세지

not enough values


이런경우


insert into students (num,name,kor)

2 values(2,'iu',75);




10명의 학생을 추가한다.


그 다음 국어점수 60점이상 영어점수 80점 이상인 학생 찾기


select name from students where kor>=60 and eng>=80;



iu빠진거 고치기 > 수정 > update




영어 90점 이상 ,

수학 80점 이상인 학생들을 찾아서 국어점수를 40점으로 만들기



update students

2 set kor=40

3 where eng>=90 and math>=80 ;








Teacher 테이블 생성

ID,PW,이름, 과목, 나이, 성별, 경력, 


create table teachers(

2 id number(3) primary key,

3 pw number(3) not null,

4 name varchar2(10) not null,

5 subject varchar2(20),

6 age number(3),

7 sex char(5),

8 years number(3) ) ;




******************************8


alter (수정 - 필드)



****************************

ojdbc14.jar


ojdbc14  파일을  



C:\Program Files\Java\jdk1.8.0_51\jre\lib\ext


이 폴더에 옮긴다.



이클립스 실행


윈도우


쇼 뷰


아더스


데이터메니지먼트


데이터 소스 익스플로러 오캐



하단

데이터베이스 커넥션 우클릭 뉴


밑에 오라클 선택


넥스트


우측 뉴 드라이버 데피니션 클릭


Oracle Thin Driver 중 11 클릭 11g설치했으므로


오른쪽 메뉴 jar list


있는거 지우고


add jar 


아까 복사한 경로 가기


ojdbc14 열기


다시 네임 타입


다시 11 선택하고 ok



SID : xe

host : 호스트 아이피  192.168.116.128


포트넘버 : 1521 기본 오라클기본


User name : user01

password : 비번입력 user01


우측하단 테스트 커넥션


ping succeed


피니시


하단 메뉴


데이터베이스 커넥션 확장


마이 오라클 우클릭


Open SQL 스크랩북


타입


Oracle_11 (오라클 11깔았으니까)


name : MyOracle


Database:xe



select * from students

드래그 하고 우클릭

Execute Selected text




****************************************8





























블로그 이미지

테시리

,