ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 161020 시험
    JAVA 2020. 10. 16. 12:46

    DCL, DML, DDL, TCL

    등등, 작성을 할 줄 알아야 한다.

    DML : Data Manipulation Language, 조작어

    //select
    select * from emp
    ;
    //insert
    INSERT INTO CLIENT (c_no, c_name, c_tel, c_email)
    VALUES (000001, '손흥민', '01012341234', 'hmson123@naver.com');
    
    //update
    UPDATE C_TABLE SET c_name='음바페', c_tel='01043214321' WHERE c_no = '000006';
    
    //delete
    DELETE FROM C_TABLE WHERE c_no='000003';

    DDL : Data Definition Language, 정의어

    //create
    CREATE TABLE C_TABLE values (
    	C_NO number(7) not null,
        C_NAME varchar2(20) not null,
        C_TEL varchar2(10) not null,
        C_EMAIL varchar2(20) not null,
        
        CONSTRAINT C_NO_PK PRIMARY KEY (C_NO),
        CONSTRAINT C_NAME_FK FOREIGN KEY (C_NAME) REFERENCES B_TABLE(C_NAME)
        );
    //<ALTER>>
    //add
    ALTER TABLE C_TABLE
    ADD (C_LOC varchar2(20));
    
    //drop
    ALTER TABLE C_TABLE
    DROP C_EMAIL;
    
    //modify
    ALTER TABLE C_TABEL
    MODIFY 
    
    //rename
    ALTER TABLE C_TABLE;
    
    
    //truncate

     

    DCL : Data Control Language, 제어어

    //grant
    
    //revoke

     

    TCL : Transaction Control Language, 트랜잭션 제어어

    //commit: 수행했던 일들을 모두 DBMS에 적용하라는 명령어.
    
    //rollback: 수행했던 일들을 DBMS에 적용하지 않고 최종 commit된 상태로 돌리는 명령어.
    
    //savepoint: 수행하는 중간에 point를 지정하는 명령어. 추가로 rollback 시에 최종 commit된 상태가 아닌 지정한 point 시점으로 돌릴 수 있게 해준다.

     

    <서술형 8문제>

     

    <dbms 대해>

    데이터베이스에서 데이터를 관리하는 시스템.

    DML: 조작어

    DCL: 제어어

    DDL: 정의어

    TCL- 트랙잭션 제어

     

    <jdbc 대해>

    자바 프로그램 안에서 SQL 실행하기 위해 데이터베이스를 연결해주는 응용프로그램 인터페이스.

    정보가 다른 곳에 저장되어 있어도 쉽게 정보에 접근할 있다.

     

    <sql 무엇인지>

    구조적인 질의 언어. 데이터베이스를 제어, 관리

    데이터베이스에서 자료를 검색, 수정, 삭제하는 데이터베이스 언어

    데이터 정의 기능과 조작 기능을 갖추고 있다.

     

    <ojdbc 대하여>

    jdbc인데 오라클에서 제공하는 오라클 데이터베이스에 연결해서 사용할 있도록 해준

     

    <싱글톤패턴에 대해>

    객체의 생성과 관련된 패턴으로서 특정 클래스의 객체가 오직 개만 존재하도록 보장한다. 클래스의 객체를 하나로 제한한다. 

    생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 

     

    <Connection Pool>

    - 미리 데이터베이스 connection 여러개 만들어서 특정 공간에 저장해놓고 여러 사용자가 필요할 때마다 하나씩 꺼내서 사용하고 다시 집어 넣는 방식.

    - 장점 : 속도 향상, 자원의 효율적 활용, 커넥션 객체 제어 가능

     

    <데이터모델링의 정의>

    - 어떠한 프로젝트에 있어 필요한 데이터들을 분석하고 정의하고 해당 프로젝트에 맞게 절차를 구상하는 . 

    - 고객의 요구사항을 분석하여 데이터들을 개체와 속성, 관계로 명확화하는 과정이 필요하며 그에 따른 요소를 사용하여 각각의 과정을 설계해 나가야 .

    - 요구사항 분석-개념적 설계-논리적 설계-물리적 설계-데이터 베이스 구현 운영

     

    <as alias 별칭>

    - 컬럼 뒤에 AS 또는 AS없이 명칭을 써서 사용자가 원하는 컬럼명으로 변경하여 결과를 출력할 있다.

    - 컬럼에 사용될때는 as 쓰는데 테이블명에는 불가능하다. (오라클만. mysql 가능)

    - 별칭을 사용할 사이에 띄어쓰기가 있거나 한글의 경우 쌍따옴표로 묶어주어야 한다.

     

    <java- 모든언어 -exception 처리의 의미와 목적에 대해 설명>

    - 비정상적인 종료를 방지하면서 어떤 때문인지, 어떻게 다음화면에 뿌릴지를 정상적인 상황으로 만들어낼수가 있게 된다.

     

    <SELECT에서 ORDER BY 서술>

    - 특정 컬럼의 데이터를 중심으로 오름차순이나 내림차순으로 정렬하는 기능을 하는 .

    - 쿼리문의 끝에 위치. 정렬의 기준이 컬럼명을 order by뒤에 넣고 정렬방식을 작성.

    - 오름차순 ASC 내림차순 DESC 정렬이 있다. 정렬방식을 명시하지 않을 경우 오름차순이 기본값.

     

    <SQL PLUS SQL DEVELOPER>

    1. SQL PLUS

    - SQL 구문을 실행해 있는 . 

    - CLI형태. 커맨드 라인 인터페이스

     

    2. SQL DEVELOPER

    - SQL 조작을 위해 만들어진 . 다른 dbms와도 연결이 가능하고 범용적?으로 사용될 있다.

    - GUI 형태. 따로 찝을 풀어서 사용하는 형태.

    - 기본적인게 아니어서 추가적으로 설치해서 사용해야 하며 디스팅트. 행에 대한 중복을 제거해준다.

    - 오라클 11G 익스프레스 에디션 사용중이다.

     

    <DISTINCT>

    - 데이터를 조회할 값이 중복되는 경우가 있는데 이를 제거하고 싶을 사용하는 키워드.

    - 명칭은 DISTINCT SELECT 컬럼명 사이에 넣어 활용. 중복값을 제거해준다.

     

    <PreparedStatement에서 물음표 기능>

    - PreparedStatement 에서는 SQL문을 작성할 때는 변수값(searchStr)자리에 ? 쓴다.

    그리고 나중에 물음표값을 정의해준다

    - 등록된 쿼리문에서 부분을 채워 넣어준다.

    - 위치 인덱스

     

    <SELECT문에 FROM>

    SELECT 컬럼명1 

    FROM 테이블명1 JOIN 테이블명2

    ON

    WHERE 조건식 

    GROUP BY 

    HAVING 

    ORDER BY 컬럼명1 ASC;

     

    <Statement PreparedStatement 차이>

    Statement - 쿼리문 자체를 완벽하게 만들고 마지막에 실행시키는 방식

    PreparedStatement - 쿼리문을 등록해놓고 값을 나중에 설정하여 실행시키는 방식

     

    statement는 SQL문에 변수를 넣어 완벽하게 작성해놓고 마지막에 실행하도록 하는 구조이다.

    PreparedStatement는 SQL문을 만들 때 변수 자리에 ?를 넣어두고, 나중에 변수를 따로 입력하는 방식으로 효율성이나 유지 보수 측면에서 유리한 구조이며 기본적으로 Statement를 상속받기 때문에 Statement 클래스 메소드를 모두 사용이 가능하다.

     

    <Resultset 대해 설명하세요>

    - SELECT 결과를 저장하는 객체.

    - Statement/PreparedStatement 실행한 결과가 실려서 오는 자료형(행열이 있는 형태) rs.next() - executeQuery 명령하면 ResultSet이라는 객체를 돌려주는데

    rs.getXXX  이용해 값을 가져온다.

     

    <executeQuery 대한 설명 하나. executeQuery 뭔가요? >

    - Statement PreparedStatement 실려 있는 SQL문을 DBMS 던져주고 거기에 대한 결과문을 받아오는 역할. 주로 SELECT 구문을 수행할 사용되는 함수.

    - executeQuery 함수를 사용하여ResultSet 객체에 결과값을 담을 있다.

     

    <WHERE HAVING 차이>

    WHERE: 항상 from 뒤에 위치하고 조건에는 다양한 비교연산자들이 사용되어 구체적인 조건을 있다

    HAVING: 항상 group by 뒤에 위치하고 where 조건절과 마찬가지로 조건에는 다양한 비교연산자들이 사용되어 구체적인 조건을 있다.

     

    where 기본적인 조건절로서 우선적으로 모든 필드를 조건에 있다

    하지만 having group by 이후 특정한 필드로 그룹화 되어진 새로운 테이블에 조건을 있다.

    --------------------------------------------------------------

    <.... 쓰일 있는 옵션이 뭐뭐가 있나요?>

    58-63-67 상당히 많은 양을 차지하고 있습니다

    61 어쩌고 체크 옵션

    63 어쩌고 리드 온리 

    .. 어쩌고

    65 로넘 사용하기

    OR REPLACE

    68 시퀀스

    기본이에여 테이블 만들어서 쓰는 만큼 많이 씁니다. 실습 다시 하시면서 기억 해보세요

     

    <view 정의>

    • 뷰는 하나의 가상 테이블이라 생각 하면 된다.
    • 뷰는 실제 데이터가 저장 되는 것은 아니지만 뷰를 통해 데이터를 관리 할수 있다.
    • 뷰는 복잡한 Query를 통해 얻을 수 있는 결과를 간단한 Query로 얻을 수 있게 한다.
    • 한 개의 뷰로 여러 테이블에 대한 데이터를 검색 할 수 있다.
    • 특정 평가 기준에 따른 사용자 별로 다른 데이터를 액세스할 수 있도록 한다.
    CREATE OR REPLACE VIEW view_name
    AS SELECT c_num, c_name FROM c_table
    ;

    table/view/sequence/trigger/proedure/function 생성시에 사용하는 옵션

     

    -create or replace : 엘터를 지원하지 않는 경우에는 다시 덮어써달라. 

    -force / noforce : 뷰에서도 쓰이고 트리거에서도 쓰이는데. 기존에 이런게 없다면 생성을 시켜주는 . 트리거에서 테이블에다가... 강제성을 가지고 있다... 

    - with check option. where 함께 쓰이면서 조건문, 외의 조건문에서는 update 되지 않도록 . 교재 61-62 한번 꼬옥 해보셔야 같네요

    -with read only 교재 63 이건 예제 별로였어여... 업데이트 안에 뭐가 포함되느냐. delete 포함되고 insert 포함되고 update 포함됩니다.

    추가하고 삭제하는것도 수정의 일부분이잖아요? 안된다. 리뷰만 된다. 한마디로 셀렉트만 된다..

     

    <TCL 어쩌고 세가지가 뭔지>

    - TRANSACTION : 하나의 논리적인 작업 단위로서 성공하거나 실패하는 일련의 SQL.

    명령어 여러개들을 묶어서 하나를 수행하는................

     

    commit-수행했던 일들을 모두 DBMS 적용하라는 명령어

    rollback-수행했던 일들을 DBMS 적용하지 않고 최종 commit 상태로 돌리는 명령어

    savepoint-수행하는 중간에 point 지정하는 명령어. 추가로 rollback시에 최종 commit 상태가 아닌 지정한 point 시점으로 돌릴 있게 해준다.

     

     

     

    'JAVA' 카테고리의 다른 글

    191020 JDBC 기본  (0) 2020.10.19
    190820 JSONReader  (0) 2020.08.29
    190820 lotto  (0) 2020.08.29
    190820 - get Lotto Num  (0) 2020.08.29

    댓글

Designed by Tistory.