Day19

2020. 10. 22. 11:50교육과정/KOSMO

키워드 : 재귀호출 / 피보나치 수열 / Database (DB) / 오라클, SQL developer 설치 / DDL, DML / 기본 데이터 타입

 

****

 

1. 재귀호출

   : 자기 자신을 호출하는 메소드

   -- 피보나치 수열, 끝판왕은 하노이탑

 

2. 재귀호출 - 피보나치 수열과 그 합계

 

 

3. 재귀호출 문제풀이

    // 1. f(4)를 호출한다면?

    public static void f ( int N ) {

        System.out.println(N);

        if( N > 0 ) f ( N-1);

    }

    답 : 4 3 2 1

 

    // 2. g(4)를 호출한다면?

    public static void g ( int N) {

        if( N > 0 ) g( N-1);

        System.out.println(N);

    }

    답 : 0 1 2 3 4

 

    // 3. h(4)를 호출한다면?

    public static void h ( int N ) {

       System.out.println(N);

       if( N > 0 ) h ( N -2 );

        System.out.println(N);

    }

    답 : 4 2 0 0 2 4

 

    // 4. hh(4)를 호출한다면?

    public static void hh ( int N ) {

        if( N > 0 ) {

            hh ( N-1);

            System.out.println(N);

        }

    }

    답 : 1 2 3 4 

 

    // 5. abc(78)을 호출한다면?

    public static void abc( int N) {

        int r = N % 2;

        System.out.println("*");

        if( N >= 2 ) abc ( N/2);

        System.out.printf("%d", r);

        return;

    }

   답 : *******1001110

 

    // 6. test ("110100111", 4 )호출한다면?

    public static int test( String s, int last ) {

        if( last < 0 ) return 0;

            if( s.charAt(last) == '0') return 2 * test ( s, last -1 );

        return 1 + 2 * test ( s, last - 1);

    }

    답 : 26

 

    // 7. 무엇을 계산하는 함수인가???

    public static void t ( int N ) {

        if( N > 0 ) t ( N/2);

        System.out.println( N % 2);

    }

    답 : 10진수를 2진수로 바꿔줌/ 출력값 0101

 

 

2. Database 기본 셋팅

※ DBMS - orcle / mysql (mariadb)
※ SQL : DB에서 사용하는 언어

※ Database 설치

 : oracle.com / Product / Software / Products A-Z / Database 11g 다운로드 / 압축파일 2개 받아서 한 곳에 풀기 ('여기에 풀기' 옵션 사용) / 팝업창 Database Configuration Assistant이 나오면 '비밀번호 관리' 클릭 / SCOTT, HR 계정 잠금 해제

※ SQL Developer 설치 

 : oracle.com / Product / Software / Products A-Z / SQL Developer 다운로드

 

※ 설치 후 추가적인 환경 설정

   윈도우 OS상의 서비스 창에서 (제어판 들어가듯이 검색해서 들어가면 됨)
    - OracleServiceORCL
    - OracleOraDb11g_home1TNSListener
   2가지만 실행, 자동으로 두고 나머지는 모두 수동으로 변경

 

※ (참고)

    C:\app\kosmo_03(내컴퓨터이름)\product\11.2.0\dbhome_1\NETWORK\ADMIN

    listener.ora에서 리스너의 localhost 포트번호는 1521이 기본값이다. 

    로컬호스트 포트번호를 변경하고자 할 때는 메모장을 관리자권한으로 열어서 수정해야 한다. 

 

※ SID(I)는 orcl로 변경해준다.

 

※ 쿼리문 작성 후 실행하고자 할 때는

   해당 줄에서 Ctrl + Enter, 또는 실행하고자 하는 문단만큼 마우스로 블록 선택한 뒤 Ctrl + Enter 한다. 

 

 

3. SQL 기본 문법

SQL이란?
` Structured Query Language
` 데이터베이스에서 데이터를 조회, 입력, 수정, 삭제하는데 사용하는 언어
- DDL (Data Definition Language) : 데이터 정의 언어
- DML (Data Manipulation Languagd) : 데이터 조작 언어

- DCL (Data Control Language) : 데이터 제어 언어

  (*) 이름 지정 규칙 – 테이블명 / 컬럼명
           - 문자,  _ , $ , # 조합 (한글도 가능)
           - 첫글자는 문자로 시작
           - 예약어 사용안됨
           - 길이 제한 ( 1 ~ 30 )


    (1) DDL (Data Definition Language)

    - CREATE

      CREATE TABLE table_name ( [column_name data_type] );

    - DROP

      DROP TABLE table_name [CASCADE CONSTRAINT];

    - ALTER

      ALTER TABLE table_name ADD ( [ column_name data_type ] );

                                        MODIFY ( [ column_name data_type ] );

                                        DROP ( [ column_name ] );

 

(*) TRUNCATE : 테이블에 있는 데이터들을 삭제

delete - 데이터를 삭제하면 rollback으로 복구할 수 있지만,

truncate - 삭제하면 복구할 수 없음


    (2) DML (Data Manipulation Language)

    - INSERT : 입력

      INSERT INTO table_name( column_names ) VALUES ( values );

    - UPDATE : 수정

      UPDATE table_name SET column=value WHERE condition;

   - DELETE : 삭제

      DELETE FROM table_name WHERE condition;

    - SELECT : 검색

      SELECT columns FROM table_name WHERE condition;

 

(3) DCL (Data Control Language)

` 데이터베이스에 있는 데이터에 접근을 제어하는 언어

- GRANT : 접근제어나 어떤 작업을 허용하는 권한을 주는 역할

- REVOKE : 권한을 박탈

 

 

 

 

4. SQL 기본 데이터 타입

VARCHAR2(n)

가변 길이 문자 데이터 (4000byte)

CHAR(n)

고정 길이 문자 데이터 (2000byte)

NUMBER(p,s)

전체 p 자리 중 소수점 이하 s 자리

DATE

날짜형

LONG

가변 길이 문자 데이터 (2Gbyte)

BLOB

가변 길이 이진 데이터 (4Gbyte)

CLOB

단일 바이트 가변 길이 문자 데이터 (4Gbyte)

(*) varchar도 현재는 varchar2와 동일하지만,

추후에 오라클에서 별도의 데이터 타입으로 지정한다고 사용하지 말라고 권고한다.

(*) 한글은 2bytes

 

` number ( 전체자릿수, 소수점 이하 자릿수) : 지정된 자릿수를 맞추기 위해 반올림됨

` timestamp : date보다 정밀

 

 

5. SQL 기본 문법

 

 

 

 

 

 

 

 

반응형

'교육과정 > KOSMO' 카테고리의 다른 글

Day21  (0) 2020.10.26
Day20  (0) 2020.10.23
Day18  (0) 2020.10.21
Day17  (0) 2020.10.20
Day16  (0) 2020.10.19