사용자명 입력:scott
비밀번호 입력:tiger =>커서는 입력되지 않은것처럼 표시
다음에 접속됨:
Personal Oracle Database 11g Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>=>프로그램 종료=>exit
데이터베이스
데이터베이스 관리 시스템(DBMS) =>오라클을 사용(MySQL,infomis,sybase)
=>DataBase Management System
= = = =
- DBMS의 장점
1. 데이터의 공유가 가능하다. (공유폴더처럼) => 원격접속
2. 데이터 중복성이 감소된다.(중복데이터 금지)
3. 데이터의 무결성을 유지할 수 있다.
올바른 값만 입력이 가능(자바의 캡슐화 기법과 동일)
4. 데이터 보안을 유지할 수 있다. => 계정으로 로그인
5. 표준화가 가능하다. (정해진 방식으로 만듬) => table형태로 저장(표)
(저장할 대상자가 많으면 하나의 테이블에 다 저장X)
- DBMS의 단점
1. 데이터 입력이 불편(필드수가 많아질수록)
2. 검색속도가 너무 느리다.
- RDBMS(Realtional Data Base Management System)의 구성
1. 기본적인 데이터 저장 단위는 ( 테이블 )이다.
2. 로우(ROW)와 칼럼(COLUMN)으로 구성
3. 로우는 하나의 레코드이다. (테이블의 가로)
4. 칼럼(필드)은 속성을 나타낸다.
- SQL(Structured Query Language)?
1. 관계 DB를 처리하기 위해 고안된 언어
2. 독자적인 문법을 갖는 DB 표준 언어
3. 데이터를 조회, 입력, 수정, 삭제
SQL+?
1. SQL+는 SQL 명령문 기능을 제공
2.칼럼이나 데이터의 출력 형식을 설정
3. 환경설정하는 기능 제공
* SQL의 종류 *
1. DML(Data Manipulation Language) -> 데이터 조작어 insert,update,delete,select
2. TCL(Transaction Control Language) -> 트랜잭션 처리어(commit,rollback)
3. DDL(Data Definition Language) -> 데이터 정의어 create(생성), alter(수정), drop(삭제)
4. DCL(Data Control Language) -> 데이터 조절어 (권한을 주거나 회수해주는 명령어) grant(권한주기), revoke(권한회수)
<문1>현재 어떠한 계정으로 로그인해서 작업?
SQL plus명령어 => 오라클에서만 사용하는 명령어
;을 쓰지 않고도 실행이 되는 명령어
SQL 명령어 => 전 세계 표준 DB언어
oracle, sysbase, mysql,maria 에서 공통
문장 뒤에 ;을 사용해야 실행이 되는 명령어
<문2>현재 작업한 내용목록을 확인?
SQL>select * from tab(=>동의어)=>테이블
SQLselect * from tab(=>동의어)=>테이블
반드시 문장끝에 ; 을 주고 enter
<문3> 오라클 설치중간에 계정의 암호를 설정하지 않고 skip해서 오라클을 설치한 경우?
scoott is locked =>에러 메세지=>무조건 관리자계정으로 로그인을 해야 된다.
=>관리자 암호 설정X
sqlplus 계정명/암호 as sysdba
====>롤(관리자를 의미)
C:\oracle>sqlplus / as sysdba
관리자로써 암호없이 무조건 로그인해달라
형식) alter user 수정할계정명 account unlock;
scott
alter user sys account unlock;
사용자가 변경되었습니다.
형식) alter user 수정할계정명 identified by 변경할 암호명
alter user sys identified by sys12345;
사용자가 변경되었습니다.
창이 열린상태->exit =>프로그램 종료 // 기존에 열린창은 닫고 다시 로그인을 해야 한다.
<문4> emp테이블에 저장된 내용을 확인?
형식) select 보고자하는 필드명(*) from 테이블명;
SQL>select * from emp;
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 80/12/17 800
20
7499 ALLEN SALESMAN 7698 81/02/20 1600 300
30
7521 WARD SALESMAN 7698 81/02/22 1250 500
30
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------- ---------- ----------
DEPTNO
----------
7566 JONES MANAGER 7839 81/04/02 2975
20
7654 MARTIN SALESMAN 7698 81/09/28 1250 1400
30
7698 BLAKE MANAGER 7839 81/05/01 2850
30
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------- ---------- ----------
DEPTNO
----------
7782 CLARK MANAGER 7839 81/06/09 2450
10
7788 SCOTT ANALYST 7566 87/04/19 3000
20
7839 KING PRESIDENT 81/11/17 5000
10
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------- ---------- ----------
DEPTNO
----------
7844 TURNER SALESMAN 7698 81/09/08 1500 0
30
7876 ADAMS CLERK 7788 87/05/23 1100
20
7900 JAMES CLERK 7698 81/12/03 950
30
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------- ---------- ----------
DEPTNO
----------
7902 FORD ANALYST 7566 81/12/03 3000
20
7934 MILLER CLERK 7782 82/01/23 1300
10
14 개의 행이 선택되었습니다.
<문5> 계정을 생성(test1), 암호는 t1234라는 계정을 생성하는 SQL명령어를 작성하시오.
형식) create user 생성시킬 계정명 identified by 암호명;
=>관리자만 사용이 가능한 명령어
SQL> create user test1 identified by t1234;
create user test1 identified by t1234
1행에 오류: ORA-01031: 권한이 불충분합니다
=> 이유(일반유저 scott은 이 명령어를 사용이 불가하다는 말)
=> 1.관리자로 로그인해서 명령어 사용
2.일반유저에게 권한을 주는 경우
<문6> 일반유저------>관리자
일반유저 <----- 관리자 전환시켜주는 명령어
형식) connect 접속할 계정명/암호=>일반계정 로그인
connect 접속할 계정명/암호 as sysdba=>관리자로써 로그인
SQL> connect sys/sys12345 as sysdba =>SQL Plus명령어
연결되었습니다. =>관리자로 로그인했음을 의미
<문7> test1/t1234로 로그인해 보자
SQL> conn test1/t1234
ERROR:ORA-01045: user TEST1 lacks CREATE SESSION privilege; logon denied
=>계정이 존재(권한이 없기때문에 로그인하는 권한)
=>계정에 따른 권한이 존재해야 접속해서 사용할 수 있다.
<문8> 테이블을 생성?=>데이터를 저장하기위해서 탐색기에서 폴더를 생성
형식) 회원가입(이름,주소,전번,나이,성별,,,,)=>문자열
- char(고정길이) - 길이가 정해짐 3글자,4글자
- varchar2 => 주소 - 길이가 정해져X (이름,주소,나이(숫자), 계좌번호,주민번호,사원번호)
(영어 한글자 저장 (1byte)필요 한글 한글자 저장 (2byte)필요)
숫자형태 => 계산이 되는 숫자인지 확인 O => 숫자
계산과 전혀 관련X => 문자
주소 => varchar2(60(자릿수)) => 한글 30자까지
숫자 => number(2) => 23 (정수)
number(3,2) (실수) 자릿수,소수점 이하
형식) create table 저장할 테이블(=회원테이블)
(필드명(=컬럼명)(저장 대상자) 자료형(문자,숫자) 제약조건, 필드명2,,); => DDL
SQL> create table prtest(id number(3),name varchar2(10));
테이블이 생성되었습니다.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
PRTEST TABLE
<문9> 테이블의 구조(=Schema)를 확인하고 싶다. (필드명,필드 몇개로 구성, 필드의 자료형을 확인하고 싶다)
형식) describe 구조를 확인할 테이블명
SQL> desc prtest
이름 널? 유형
----------------------------------------- -------- ----------------------------
ID NUMBER(3)
NAME VARCHAR2(10)
<문10> 데이터를 입력(=저장)?=>insert 기능(DML)
형식) insert into 테이블명 values(123,'홍길동'); //숫자는 그냥 그대로 표시,
문자열은 ' '으로 사용
날짜----->'2020-06-29'
SQL> insert into prtest values(1,'홍길동');
1 개의 행이 만들어졌습니다.
SQL> insert into prtest values(2,'테스트');
1 개의 행이 만들어졌습니다.
SQL> insert into prtest values(3,'임시');
1 개의 행이 만들어졌습니다.
SQL> insert into prtest values(4,'임시2');
1 개의 행이 만들어졌습니다.
SQL> insert into prtest values(5,'테스트2');
SQL> select * from prtest;
ID NAME
---------- ----------
1 홍길동
2 테스트
3 임시
4 임시2
5 테스트2
'KIC > ORACLE' 카테고리의 다른 글
[ Oracle] 서브쿼리, 집합연산자 (0) | 2020.10.12 |
---|---|
[Oracle] 조인개요 및 작성법 (0) | 2020.10.12 |
[Oracle] 그룹함수, DDL, 테이블 제약조건 (0) | 2020.10.12 |
[Oracle] 함수활용 (0) | 2020.10.12 |
[Oracle] select를 이용한 검색방법 및 SQLPlus 명령어 사용법 (0) | 2020.10.12 |