Method = 다른 언어에서는  Function()함수라고도 함

Method?

특정 작업을 수행하는 일련의 문장들을 하나로 묶는것

 

* 참고 

메소드나 객체지향과 같은 개념은 웅장하고, 결함이 없고 유지보수하기 쉬운 애플리케이션을 만들기 위한 기법

Method 핵심적인 가치 : 재활용성, 중복된 코드제거,프로그램의 구조화

 

밑에서 보는 main을 메소드라고 합니다.

==Console ===

*매개변수(Parameter)와 아규먼트의 차이점

매개변수는 함수의 정의부분에 나열되어 있는 변수들을 의미하며,

전달인자는 함수를 호출할때 전달되는 실제 값을 의미

 

//args = arguments
/*
// 변수선언
int num1;
// int의 method는 소문자로 시작, 상수일 경우 대문자 사용
int num2;

// 변수 초기화
        num1 = 20;
// 초기화 전에는 쓰레기 값으로 정해짐
num2 = 3;
*/

//f = format , 문자 안에 정수 입력 시 사용, 숫자 입력은 순서대로 적용

// println(매개변수 안써도 됨), print(매개변수 써야됨)
// \n = %n

//// %d : 정수, %s : 문자, %g : double, %f : float

 

==Console==

// println 은 일일이 작성 필요, printf 는 "네임 + %d, num1"과 같은 입력 가능

==Console==

// import에서 *가 의미하는 것은 io폴더 안의 class를 자동으로 찾아서 로딩할 수 있도록 선정. 그러나 권장은 하지 않음

// IOException 에러를 예외시켜 주는 Class

////BufferedReader 사용자가 입력한 값을 불러오는 class

// System.in : 키보드로 입력한 1개의 문자(Char)를 읽어냄 

// br(변수값).readLine : 사용자 입력값(br)을 읽어주는 method(문자로 읽음)
//Integer.parseInt() : 숫자로 읽어주는 method

 

== Console===

 

 

 

==Console==

 

01.GitBash 설치

https://gitforwindows.org/


02.New Repository 생성

https://github.com/

회원가입 후 로그인 해주세요 ^^

03. Root Folder연결


기본폴더 : Web상의 Git과 연결될 Local Folder


원하는 공간에 새폴더 만들어 주세요 ^^


Command

git init git remote add origin repository address


직접 폴더 연결

* .git 파일이 안보이시는 경우 보기에 숨겨진 파일보기를 체크하시면 보입니다.

 

쓰신후 아무런 말이 없으면 연결이 된것입니다.



04. Push 전에 Pull이 있다.

Push :  자료를 올리는 것

Pull : 자료를 가져오는 것

git pull origin master : 지정해 놓은 Repository에서 끌어옵니다.

git status : 현재 Git과의 상태를 Check!

git add. : 변경된 파일들을 모두 Tracking!

git commit -m “message” : 인식할 수있는 commit을 달아줍니다.

git push origin +master : 실제로 Git  push




아까 만든 폴더 안에 텍스트 파일을 만든후 그 후에 아무 글이나 쓰고 저장한담에 다시 gitbush를 열어서 명령어를 적어 봅니다.


 

해당 파일이 github로 올라온것을 볼수 있습니다.




 


05. Mission : 다른 사람 git 가져오기

https://github.com/memoming/memoming_gitTest

또 다른 새폴더를 만든후 아까와 같이 해주세요

 

크게 보여드리 위함입니다

 

아까 사용하지 않은 것을 사용합니다.

git pull origin master

이런식으로 다운이 된것을 볼수 있습니다.

참고 : 유튜브:메모밍채널

 

 

 

Cmd창을 키신후  SYS로 들어갑니다.

위의 마지막줄 처럼 Oracle db에 연결되었다고 나옵니다. 이제 Scott을 만들어 볼까요?

 

C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\scott.sql

을 입력해주세요 

그다음에  사용자 변경을 해주세요

연결하기  위해 conn scott/tiger을 해주세요

show user는 지금 사용하는  user을 보는 것 입니다.

테이블이 뭐가 있나 궁금하신 분들은 select * from tab;을 하시면 됩니다. 

 

'[DB] > [오라클]' 카테고리의 다른 글

PL/SQL : CURSOR(커서)  (0) 2019.08.26
Orange,Oracle Client 설치 및 사용법  (0) 2019.07.11
12. 시퀀스와 인덱스  (0) 2019.05.18
10. 서브쿼리  (0) 2019.05.18
09. 조인  (0) 2019.05.18
package com.day3;
import java.util.*;
class Test1 {
	public static void main(String[] args) {
		
		//반복문(for시작과 끝값이 정해져 있을때,while끝값이 정해져 있지 않거나 모를 때,do~while일단은 저질러보는애 한번더 돌릴까 말까)
			
		Scanner sc = new Scanner(System.in);
		
		int dan;
		System.out.print("구구단?");//7
		dan = sc.nextInt();//입력한 값을 저장하는 거//nextInt는 scanner에서 써야 하는거
		
		//for(시작값;최대값;증가값)
		for(int i=1;i<=9;i++){//위에서 i를 int로 지정하지 않아서 지정해야함
		
		
			System.out.println(dan + "*" + i + "=" + (dan*i));
		
		}
	
		System.out.println("-----------------");
		//while(조건)//while문은 초기값을 0으로 만들어줌 나중에 배열때문에 고유번호가 0번부터 시작해서 초기값을 0으로 쥼
		int j=0;
		while(j<9){//while문은 <= 이퀄을 잘 안써줌
		j++;//*
		System.out.println(dan + "*" + j + "=" + (dan*j));	
		
		
		}
		System.out.println("-----------------");
		//do{~}while(조건문);
		int k=0;
		do{
			k++;
			System.out.println(dan + "*" + k + "=" + (dan*k));
		}while(k<9);
		System.out.println("-----------------");
		//무한루프(여기가 트루이면 )밑에 있는 조건이 실행되는겨
		/*while(true){
		 *
		 *
		
			System.out.println("나 돌아간다~~");
		
		*/	
			sc.close();
		}
		
		
	}

 

package com.day3;
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Test2 {
	public static void main(String[] args)throws Exception{//예외처리할떄 사장 Exception을 써주면 됨
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//ctrl+shift+o 패키지
		int su,sum;
		char ch;
		while(true){
			do{
				System.out.print("수입력?");//100//e(=entet)//e100
				su = Integer.parseInt(br.readLine());//받아서 정수로
				
			}while(su<1 || su>5000);//false되야 do while 조건부서 벗어남
			sum=0;//초기화 위치 잘 찾아야 함
			//1-su까지의 합계
			for(int i=1;i<=su;i++){//for(초기화;조건식;증감식)
				sum = sum+i;//누적 sum+=i
			}
				//출력
		System.out.println("1~"+su+"까지의 합:"+sum);
			//계속 실행여부
			System.out.print("계속 할래?[Y/N]");//Y,y,N,n,a,L//Ye
			ch = (char)System.in.read();//하나문자만 읽어
			if(ch!='Y' && ch!='y'){//양쪽의 값이 부정이면 무조건 and(&&)!!//!=않고
				break;
			}
			System.in.skip(2);
//남아 있는거는 지워라(2)라 되있는이유는 -(enter)10,(줄바꿈\n)13삭제 하느라궁//BufferedReader여기서만 Scanner은 괜춘
		}//end~while	
	}//end~main
}

 

package com.day3;
public class Test3 {
	public static void main(String[] args) {		//구구단
		
		//다중for문 //다중for문 3번까지는 넣음 !
		
		int i,j;
		
		for(i=2;i<=9;i++){//2단부터이니까
			
			System.out.println(i + "단");
			
			for(j=1;j<=9;j++){//1~9까지니까
				
				System.out.println(i + "*" + j + "=" + (i*j));
			
			}
			System.out.println();
		}
	}
}

<연산>

// 삼항연산자
str = num1 % 2 == 0?"짝수":"홀수";
// ?앞이 true 이면 콜론 앞을 사용, false 일땐 콜론 뒤를 사용

==Console==

==Test2 Console==

==Test3 추가 설명 ==

// for(int 초기값;조건;추가값) 

-> 초기값으로 조건 이행, 추가값 사용 후 조건 확인 진행 조건 불충분 시 중괄호 안 미진행
// i++ = i+1

==Test3 Console==

<한개의 문자를 읽기>

==추가 설명 ==

// char ch = 'a';
// char는 변수 선언 시 문자 1개만 사용 가능하며, 선언 시 ''안에 입력

// System.in.read(); 1개의 문자만 읽어줄 수 있음 -> 뒤에 abcde 써도 a만 읽을 수 있음
// System.in.read(); 으로 읽을 시 바이트(아스키코드)로 읽어들임. -> 강제형변환 필요
/*
System.out.println(ch);                        -> a가 보여짐
System.out.println(Integer.toString(ch));      -> 97을 보여짐
// integer.toString() : 입력되어 있는 아스키 코드를 보여줌
*/

// char값과 int값 비교시 char값이 자동으로 int로 전환되어 비교함.

==Console==

 <수를 입력했을 경우 홀인지 짝인지 알아보기>

==Console==

<if문을 이용한 성적표 >

==Console==

// if문이 여러개일 경우 else if 활용
// 여러 조건을 사용해야 할 경우 위에서 부터 쓰는게 좋음

 

==Console==

 

 

'Java' 카테고리의 다른 글

Java Day5 : 배열,난수(로또)  (0) 2019.06.12
Java Day4 : 반복문을 통해 별찍기,배열,만년달력  (0) 2019.06.11
Java Day3 : 반복문(do~while),구구단  (0) 2019.06.11
Java Day1 : Method 메소드  (0) 2019.06.06
Day13 List 1  (0) 2019.02.02

▶ 시퀀스는 테이블 내 유일한 숫자를 자동으로 생성하는 자동 번호 발생기

º  시퀀스 생성

CREATED SEQUENCE [스키마명.]시퀀스명

INCREMENT BY 증감숫자

START WITH 시작숫자

NOMINVALUE | MINVALUE 최소값

NOMAXVALUE | MAXVALUE 최대값

NOCYCLE | CYCLE     

NOCARE | CACHE; //CACHE : 메모리에 시퀀스 값을 미리 할당해 놓음

 

EX)

CREATE SEQUENCE MY_SEQ1
INCREMENT BY 1
START WITH 1
MAXVALUE 1000
NOCYCLE
NOCACHE;

-- 이 시퀀스는 1부터 시작해서 1씩 증가하여 최솟값부터 최대값까지 1000까지 순번을 자동 생성한다.

INSERT INTO EX2_8 (COL1) VALUES (MY_SEQ1.NEXTVAL);

NEXTVAL : 해당 시퀀스에서 다음 순번 값을 자동으로 가져온다.

//INSERT문이 아닌 SELECT문에서 사용하더도 값이 증가된다. // SELECT MY_SEQ1.NEXTVAL FROM DUAL;

CURRVAL : 현재의 값을 알수 있다.

SELECT MY_SEQ1.CURRVAL FROM DUAL;

 

데이터를 집어 넣은후 확인을 해 보면

 

▶CURRVAL는 'CURRENT VALUE'의 약어로 현재의 값 반환

▶NEXTVAL 'NEXT VALUE'의 약어로서 다음 값이란 의미

▶데이터 딕셔너리 USER_SEQUENCES는 시퀀스 객체의 정보를 보여줌

 

'[DB] > [오라클]' 카테고리의 다른 글

Orange,Oracle Client 설치 및 사용법  (0) 2019.07.11
Oracle : Scott 계정 생성하기  (0) 2019.06.04
10. 서브쿼리  (0) 2019.05.18
09. 조인  (0) 2019.05.18
07. 테이블의 내용을 추가,수정, 삭제하는 DML과 트랜잭션  (0) 2019.05.18

▶ 모든 서브 쿼리는 괄호를 싸여 있으며 메인 쿼리 안에 SELECT문이 들어가는 것을 서브 쿼리

▶ 서브쿼리의 결과 값이 하나일 경우에는 =,!=,<,<=,>,>= 연산자를 사용해야 합니다.

▶ 서브쿼리의 결과 값이 여러개일 경우에는 IN,SOME,ALL,ANY 연산자를 사용해야 합니다.

▶ 연산자 IN은 서브쿼리에서 돌려주는 리턴 값과 동등하게 비교합니다.

▶ ANY는 같은 의미이며, 서브 쿼리에서 돌려주는 값이 하나라도 비교 조건을 만족하면 참이 됩니다.

▶ALL은 서브쿼리에서 돌려주는 모든 값이 비교조건을 만족할때, 참이 됩니다.

▶메인 쿼리의 SELECT문에서 SELECT_LIST에 해당하는 값으로 서브 쿼리를 사용할수 있는데,

  이때 반드시 단일 값만을 리턴해야함

▶ 메인 쿼리와의 연관성에 따라 

- 연관성 없는 서브쿼리

-연관성 있는 서브 쿼리

 

 

▶ 연관성이 없는 서브쿼리 : 메인테이블과 조인조건이 걸리지 않는 서브쿼리

 

SELECT COUNT(*) FROM EMPLOYEES 
WHERE SALARY >= (SELECT AVG(SALARY) FROM EMPLOYEES );

// 전사원의 평균급여 이상을 받는 사원의 수를 조회하는 쿼리

SELECT EMPLOYEE_ID,FIRST_NAME,JOB_ID FROM EMPLOYEES WHERE (EMPLOYEE_ID,JOB_ID) 

IN (SELECT EMPLOYEE_ID,JOB_ID FROM JOB_HISTORY);

 

//JOB_HISTORY 테이블에 있는 EMPLOYEE_ID,JOB_ID 두 값을 같은 건을 사원테이블에서 찾는 쿼리로 서브쿼리는 메인 쿼리와 연관성이 없다. 

//동시에 2개이상의 컬럼 값이 같은 건을 찾고있다. 

//서브 쿼리는 SELECT문 뿐만 아니라 다음과 같이 UPDATE문,DELETE문에서도 사용할수 있다.

▶ 연관성 있는 서브쿼리

메인테이블과 조인조건이 걸리 서브쿼리

EXISTS 연산자를 사용해서 서브쿼리내에 조인 조건이 포함되었다.

 

SELECT A.DEPARTMENT_ID,A.DEPARTMENT_NAME FROM DEPARTMENTS A WHERE EXISTS 

(SELECT 1 FROM JOB_HISTORY B WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID );

서브쿼리 안에서 메인쿼리에서 사용된 부서 테이블의 부서번호와 JOB_HISTORY테이블의 부서번호가 같은 건을 조회하고있다.

 

 

 

 

▶ 형태에 따라

-일반 서브쿼리(Select 절)

-인라인 뷰 (from절)

-중첩쿼리 (where절)

▶ 조인?

 각 테이블에서 하나의 컬럼을 사용하여 두개 이상의 테이블을 연결하는 것

▶CROSS JOIN은 구문중에 WHERE절을 가지고 있지 않아, 양쪽 테이블의 모든 행에 대해서로 연결을 하게 됩니다.

▶SELF JOIN은 테이블의 행을 같은 테이블 안에 있는 다른 행과 연관시킵니다.

▶ 내부 조인은 조인 조건을 만족하는 로우만 선택

▶ 외부 조인은 조인 조건을 만족하는 로우만 선택

▶ 관계된 테이블에서 일치하지않는 OUTER 테이블의 모든 행을 보여줍니다.

▶ FULL OUTER JOIN의 경우, ANSI SQL 문법으로 밖에 표현이 안됩니다.

 

▶CROSS JOIN

특별한 키워드 없이 SELECT 문의 FROM절에 사원테이블과 부서테이블을 콤마로 연결해서 연속으로 기술하는 것

SELECT * FROM EMP,DEPT;

▶ EQUI JOIN

조인 대상이 되는 두 테이블에서 공동으로 존재하는 컬럼의 값이 일치 되는 행을 연결하여 결과를 생성하는 조인 방법

 

SELECT A.EMPLOYEE_ID,A.FIRST_NAME,A.DEPARTMENT_ID,B.DEPARTMENT_NAME

FROM EMPLOYEES A,DEPARTMENTS B

WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID; 

//공통적으로 존재하는 부서번호(DEPARTMENT_ID)를 등호 연산자를 사용해 조회조건에 명시

▶SEMI-JOIN 

서브쿼리를 사용해 서브쿼리에 존재하는 데이터만 메인쿼리에서 추출하는 조인 방법

IN과 EXISTS 연산자를 사용한 조인.

서브쿼리에 있는 테이블B, 메인쿼리에 사용된 테이블A라고 한다면 세미조인은 B테이블에 존재하는 A테이블의 데이터를 추출하는 조인

1) EXISTS사용

 

SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM DEPARTMENTS A 
WHERE EXISTS(SELECT * FROM EMPLOYEES B WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID AND B.SALARY > 3000)
ORDER BY A.DEPARTMENT_NAME;

 

2) IN 사용

SELECT DEPARTMENT_ID,DEPARTMENT_NAME FROM DEPARTMENTS A WHERE A.DEPARTMENT_ID IN 
(SELECT B.DEPARTMENT_ID FROM EMPLOYEES B WHERE B.SALARY>3000)
ORDER BY DEPARTMENT_NAME;

EXIST의 경우는 WHERE절에 EXISTS 연산자를 사용하고 부서 테이블과 조인 조건은 서브 쿼리에서 명시

반면 IN연산자를 사용한 2)는 서브 쿼리 내에 두 테이블의 조인조건이 없다는 점 주의

▶외부 조인(OUTER JOIN)

조인조건에 만족하는 데이터 뿐만 아니라,어느한쪽 테이블에 조인조건에 명시된 컬럼에 값이 없거나 해당 로우가 아예 없더라도 데이터를 추출한다.

 

SELECT A.DEPARTMENT_ID,A.DEPARTMENT_NAME,B.JOB_ID,B.DEPARTMENT_ID 
FROM DEPARTMENTS A,JOB_HISTORY B
WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID(+) ;

//조인조건에서 데이터가 없는 테이블의 컬럼에 (+) 기호를 붙이는 것이 외부 조인

//조인조건 모두에 (+)를 붙여야 한다.

//한번에 한 테이블에만 외부조인을 할 수 있다.

//(+)연산자가 붙은 조건과 OR를 같이 사용할수 없다.

//(+)연산자가 붙은 조건에는 IN연산자를 같이 사용할수 없다.

 

 

▶NON-EQUI JOIN

조인 조건이 특정 범위 내에 있는 지를 조사하기 위해서 , WHERE 절에 조인조건을 = 연산자 이외에 비교 연산자를 사용

▶SELF JOIN

▶ANSI JOIN

ºANSI 내부 조인

<기존문법>

SELECT A.EMPLOYEE_ID,A.FIRST_NAME,B.DEPARTMENT_ID,B.DEPARTMENT_NAME 
FROM EMPLOYEES A, DEPARTMENTS B
WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID
AND A.HIRE_DATE>= TO_DATE('1990-01-01','YYYY-MM-DD');

 

<ANSI문법>

SELECT A.EMPLOYEE_ID,A.FIRST_NAME,B.DEPARTMENT_ID,B.DEPARTMENT_NAME 
FROM EMPLOYEES A
INNER JOIN DEPARTMENTS B ON (A.DEPARTMENT_ID = B.DEPARTMENT_ID )
WHERE A.HIRE_DATE>= TO_DATE('1990-01-01','YYYY-MM-DD');

 

FROM절에서 INNER JOIN구문을 쓴다.

조인조건은 ON절에 명시하고,조인조건 외의 조건은 기존대로 WHERE절에 명시한다. 만

약 조인 조건컬럼이 두 테이블 모두 동일하다면 ON대신 USING절을 사용할수 있는데,

이때는 SELECT절에서 조인 조건에 포함된 컬럼명을 테이블명,컬럼명형태가 아닌 컬럼명만 기술해야한다.

+ Recent posts