oracle db,sql~ ing

장민식·2022년 1월 3일
0

DBMS란?

  • 데이터베이스가 '데이터베이스의 집합'이라고 한다면 DBMS는 이 데이터베이스를 관리,운영하는 역할 을 수행한다.

SQL의 특징

SQL은 관계형 데이터베이스에서 사용되는 언어

  • 관계형 데이터 베이스( 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 이다.)
  • DBMS 제작회사와 독립적이다
  • 다른 시스템으로 이식성이 좋다
  • 표준이 계속 발전한다
  • 대화식 언어이다
  • 분산형 클라이언트/서버 구조이다.

사용자 계정생성 및 권한부여

  1. conn /as sysdba 를 입력해 sysdba 접속
  1. CREATE USER 유저네임 IDENTIFIED BY 패스워드;

    • 유저네임에 사용할 계정이름 입력
    • 패스워드에 계정로그인에 사용할 패스워드 입력
  2. GRANT CONNECT, RESOURCE, DBA TO 유저네임;

    • 해당 유저에 모든 권한 부여

스키마 생성

  • 데이터베이스 안에 지정된 정보를 저장하는 것.

1.다른 사용자 우클릭>사용자 생성>테이블 +아이콘을 눌러 생성
2.생성된 사용자 테이블에 null값에 원하는 입력값 기입후 F11로 커밋
3.SELECTFROM 테이블 을 입력하여 테이블확인.
4.SELECT
FROM 테이블 WHERE 테이블 column='열에 하는 벨류값을 입력'>그열에 대한 정보출력

가장 많이 사용 되는 문법 사용

SELECT [열]

FROM [테이블]

WHERE [조건]

INTO[새테이블]

  • SELECT INTO [새테이블] FROM [복사할테이블] WHERE 1=2
    where 조건에 1=2를 한 이유는 거짓된 조건을 줬는데 다른 거짓 문장이라도 상관없습니다.
    조건이 거짓이기 때문에 열에 있는 데이터는 가져오지 않고
    새 테이블에 기존 테이블의 모든 열만 가져와 형식만 같은 테이블을 만듭니다.
    테이블 형식을 복사한 것과 같습니다.
    select
    from 테이블 [where 조건] order by 열 | asc | desc

order by문

  • 테이블에 있는 모든 열을 가져와 order by 에 지정된 열을 기준으로 정렬됩니다.
    기본 정렬은 asc 오름차순 정렬입니다.
    asc 나 desc 를 정해주지 않은경우에는 오름차순 정렬되는것입니다.

너무 많은 데이터 양이 있을때 index로 데이터 찾기

  • CREATE TABLE ssystem.indexTBL
    AS
    SELECT first_name,last_name,hire_date
    FROM HR.employees;
    를 이용하여 인덱스 생성

  • SELECT*FROM ssystem.indexTBL;
    로 스키마 인덱스 확인

위의 예제보다 아래의 예제가 더 좋은 예이다 (읽는 속도가 더욱 빠름)

  • CREATE INDEX idx_indexTBL_firstname ON indextbl(first_name);
    인덱스 생성
  • SELECT*FROM indexTBL where first_name='Lex';
    F10을 눌러 생성한 index를 확인하여 차이점을 찾자.

- ex)CREATE INDEX [인덱스명] ON [테이블명](컬럼1, 컬럼2, 컬럼3.......)

- 조회)SELECT * FROM USER_INDEXES WHERE TABLE_NAME = 'CUSTOMERS';

- 삭제)DROP INDEX [인덱스 명]

프로시저

  • 오라클에서 제공해주는 프로그래밍 기능이다.
    ex)

  • /select count() from membertbl;
    select count(*) from producttbl;

    create procedure myproc as --스키마생성
    var1 int;
    var2 int;
    begin
    select count() into var1 from memberTBL;
    select count(
    ) into var2 from producttbl;
    dbms_output.put_line(var1+var2);
    end;*/
    set serveroutput on;--결과가 출력되기 위한 설정
    execute myproc;--스토이드 프로시저 호출

(생성)

  • create view ssystem.membertbl_view AS
    SELECT membername,memberaddress from ssystem.membertbl;

(조회)

  • select*from membertbl_view;

Argument,Parameter 차이점.

  • Parameter 매개변수 함수와 메서드 입력 변수(Variable) 명
  • Argument 전달인자, 인자 함수와 메서드의 입력 값(Value)
profile
피나게노력중

0개의 댓글