오라클 1일차

1. 오라클 설치및 간단한 명령어작성법



※ http://chs02.tistory.com/68(오라클 11g 삭제방법)

C:\webtest – oracle – ora11g

1.
오라클 설치시 중간에 한글폴더가 있으면 한글인식 불가
->설치시 문제발생
c:\oracle => 설치경로
2. sid=>orcl(통일)
3. 오라클이 설치되는 파일경로
-> c:\oracle\oradata(실질적인 설치경로)
4.기본계정 암호->oracle로 설정=>경고창 무시


※ SQL Plus창의 속성창에 들어가서 관리자 모드로 실행할 수
있도록 설정 크기, 글자색변경
● 옵션탭->빠른 편집 모드 체크(편집이 가능하다)

option
● 글꼴탭->크기->12×27로 설정

font
● 색탭->화면텍스트->검정, 화면 배경->하얀색설정

color
● 호환성탭-> 관리자 권한으로 이 프로그램 실행

compatible
● 컴퓨터->관리->서비스 및 응용 프로그램
OracleOraDb11g_home1TNSListener ->자동에서 수동으로

oracle_listener
● OracleServiceORCL ->자동에서 수동으로

oracle_ORCL


<문제1>현재 오라클에서 어떠한 계정명으로 로그인하고있는지 확인?
SQL> show user
USER은 “SCOTT”입니다
==================
<문제2>현재 계정으로 로그인했을때 지금까지 작업한 내용을 확인?
SQL> select * from tab;
TNAME                  TABTYPE  CLUSTERID
——————— ————— ————–
BONUS                    TABLE
DEPT                        TABLE
EMP                          TABLE
SALGRADE            TABLE
================================
<문제3> p428 사용자 관리
실습시나리오->관리자->계정을 발급->오라클에 접속->특정 테이블 작성->데이터를 저장?
♦ DDL(데이터정의어)
create ~
관리자에서 사용자계정을 만드는 방법
형식) create user 계정명 identified by 암호명;
SQL> create user test1 identified by 1234;
          identified by 1234
           *
2행에 오류: -오류발생-
ORA-01031: 권한이 불충분합니다(아무나 만들수 없다)
======================================
<문제4>관리자로 로그인
형식) connect 계정명/암호(일반유저)
SQL> connect sys/sys12345;
ERROR: -오류발생-
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
경고: 이제는 ORACLE에 연결되어 있지 않습니다.(일반유저는 이렇게 하면 안됨)
SQL> create user test01 identified by oracle;
사용자가 생성되었습니다.
SQL> conn test01/oracle
ERROR: -오류발생-
ORA-01045: user TEST01 lacks CREATE
SESSION privilege; logon denied
경고: 이제는 ORACLE에 연결되어 있지 않습니다.
====================================
<문제5> 권한을 부여하기
grant 권한종류,,, to 계정명, 계정명2,,,
grant 권한종류    to public => 모든 계정한테
형식) connect 관리자/암호 as sysdba
SQL> conn sys/sys12345 as sysdba
연결되었습니다.
♦ DCL(Data Control Language)
SQL> grant connect,resource to test01;
권한이 부여되었습니다.
connect-> DB에 접속
resource-> 테이블생성->데이터저장
SQL> conn test01/oracle
연결되었습니다.
SQL> select * from tab;
선택된 레코드가 없습니다.
===================
<문제6>테이블을 생성->p412
형식) create table 생성할 테이블명(
필드명(=컬럼명) 자료형(number(숫자)
varchar2(자릿수)
)
SQL> create table prtest(
              id varchar2(10),
              name varchar2(10));
테이블이 생성되었습니다.
※오라클 명령어->편집모드⇓
SQL> ed(it)
SQL> 수정을 다하고나서 실행-> / 또는 r(un)을 사용하면 된다.

※ 테이블 저장=> 문자저장, 숫자저장
Ex) 고객번호(varchar2),사원번호(varchar2), 주민등록번호(varchar2), 나이(number)
우편번호(varchar2)=>계산이 되면 number
====================================
<문제7>데이터를 입력?문자 또는 날짜(‘2015-03-09′)
insert명령어(♦ DML(종류-update,delete))
형식) insert into 테이블명 values(‘문자’, 숫자,,,);

SQL> insert into prtest value(‘001′,’홍길동’);
SP2-0734: “SQL> inser…”(으)로 시작되는 알 수 없는 명령 – 나머지 줄은 무시되었습니다. -오류발생-
SQL> ed
file afiedt.buf(이)가 기록되었습니다
  1* insert into prtest values(‘001′,’홍길동’)
SQL> r
  1* insert into prtest values(‘001′,’홍길동’)
1 개의 행이 만들어졌습니다.
====================================
※ 오라클의 데이터형(p380)

○ 숫자저장->number(3)->나이
53.7kg->number(3(전체자릿수),2(소수점자릿수))
○ 문자->char(자릿수)->고정길이
varchar,varchar2->유동성데이터(동적길이) =>주소
○ 날짜->Date(회원가입날짜),생일
====================================
<문제8> 테이블 데이터를 조회하는 경우?
=>Select~from구문
형식) select 필드명,,,,(*) from 테이블명;
SQL> select * from prtest;(실무에서 쓰면 안됨)
ID           NAME
———- ———-
001         홍길동
===========
update(p407)
<문제9> 데이터를 잘못 입력->저장
=>수정?
형식) update 수정할 테이블명 set 수정할필드명=수정할값,
수정할필드명2=값2,,,,(=>모든데이터가 다변경됨)
형식) update 수정할 테이블명 set 수정할필드명=수정할값,,,
where 조건식(찾고자하는 필드명 연산자 찾을값)
Ex) 홍길동->김길동
SQL> update prtest set name=’김길동’ where id=’001′;
                                 ~                                    (=where name=’홍길동’)
1 행이 갱신되었습니다.
================
delete(p408)
<문제10>데이터를 삭제?
형식) delete from 테이블명;//모든 레코드 삭제
delete from 테이블명 where 조건식; ==>조건에 만족하는 레코드 삭제
SQL> delete from prtest where id=’001′;
1 행이 삭제되었습니다.
=================
SQL> insert into prtest values(‘001′,’홍길동’);
SQL> insert into prtest values(‘002′,’김길동’);
SQL> insert into prtest values(‘003′,’테스트’);
SQL> insert into prtest values(‘004′,’임시’);
SQL> insert into prtest values(‘005′,’테스트2′);
SQL> insert into prtest values(‘006′,’임시테스트’);
SQL> select * from prtest;
ID          NAME
———- ———-
001        홍길동
002        김길동
003        테스트
004        임시
005        테스트2
006     임시테스트
=============

<문제11> 테이블의 구조를 확인
=>구조(Schema)를 확인?
※화면지우기->clear screen
SQL>conn scott/tiger
형식) desc[ribe] 테이블명;
SQL> desc emp
 이름                                          널?           유형
 —————————– ———– ———————

 EMPNO(사원번호)      NOT NULL  NUMBER(4)
 ENAME(사원명)                                   VARCHAR2(10)
 JOB(직급 또는 직책)                            VARCHAR2(9)
 MGR(관리자 번호)                               NUMBER(4)
 HIREDATE(입사일)                           DATE
 SAL(급여)                                              NUMBER(7,2)
 COMM(보너스)                                    NUMBER(7,2)
 DEPTNO(부서번호)                            NUMBER(2)
=======================================
<문제12>select~where구문
형식) select 보여줄 필드명,,,(*)
from 테이블명1, 테이블명2,,,
where 조건식(찾을 필드명 연산자 찾을값)
Ex) emp 테이블에서 사원이름, 급여, 입사일 검색하는 SQL?
SQL> select ename, sal, hiredate from emp;
ENAME   SAL   HIREDATE
———– ——- —————–
SMITH    800      80/12/17
ALLEN   1600     81/02/20
==========================
<문제13>select 필드명 구문=>검색?
=>가공처리-> 원하는 계산식적용->가상의 필드
Ex) emp 테이블에서 사원이름, 급여,연봉순으로 화면에 출력시켜주는 SQL?
SQL> select ename, sal, sal*12 from emp;
ENAME       SAL     SAL*12
———— ———- ———-
SMITH        800       9600
ALLEN      1600      19200
=====================
<문제14>필드명을 보기편하게 한글로 변경해서 보여주고 싶다.(별명,별칭을 부여)
SQL> select ename as 사원이름, sal 급여, sal*12 “연 봉” from emp;
” “-> 하나의 단어로 인식
오라클에서 맨 마지막에 작업한 SQL구문->편집(SQL Buffer창)->SQL명령어만
/ -> SQL Buffer에 저장된 SQL구문을 실행
or
r -> SQL Buffer에 저장된 SQL구문을 화면에 한번 다시 보여주고나서 실행
SQL> ed
file afiedt.buf(이)가 기록되었습니다
  1* select ename as 사원이름, sal 급여, sal*12 “연 봉” from emp
SQL> /
사원이름   급여      연 봉
———- ———- ———-
SMITH    800       9600
ALLEN   1600      19200
SQL> r
  1* select ename as 사원이름, sal 급여, sal*12 “연 봉” from emp –>한번더 보여줌
사원이름    급여      연 봉
———- ———- ———-
SMITH     800       9600
ALLEN    1600      19200
===================
<문제15>가공처리->두개의 필드->하나의 필드로 합쳐서 볼 수도 있다.
Ex) ename + job => 하나의 필드로 만들어서 화면에 출력? +-> ||(결합)
String s = “abc”, String s2 = “ddd”; -> s+s2=”abcddd”;-> s || ” ” ||s2
SQL> select ename, job, ename || ‘ ‘ || job as Employee from emp;
ENAME          JOB                    EMPLOYEE
———— —————- —————————-
SMITH         CLERK            SMITH CLERK
ALLEN    SALESMAN   ALLEN SALESMAN
==================================
<문제16>데이터를 검색?=>중복된 데이터출력형
형식) select distinct 필드명 from 테이블명;
중복된 데이터가 들어가 있는 필드에 distinct예약어를 앞에 써주면 중복데이터 배제 =>하나의 데이터만 출력
SQL> select distinct job from emp;
JOB
———
CLERK
SALESMAN
PRESIDENT
MANAGER
ANALYST
===========
과제) URLTest.java-> savs as URLTest2.java(자바문제)

URLTest2

파일로 저장-> result.txt

Result

강사님풀이

URLTest2_1