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 기본 문법