자바에서

/**를 입력하면 아래와 같이 나온다
제작자, 변수 등 설명

/**
 * 
 * @author admin
 *
 */

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

 

 

int 는 선언만 할 경우 0이 들어간다
call by value

int a;  // 값에 0 이 들어감

 

String 은 선언만 할 경우 null이 들어간다

String a; // 값에 null이 들어간다

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

 

 

프라이머리 키를 시퀀스로 만든다

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

 

 

유효성체크 - 익셉션이나 오류를 제외

벨리데이션

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

 

 

메소드 : 함수 (일명 매직박스)

호출할때 인수가 있을 수도 없을 수도 있다

커피 자판기라고 할때
인수 : 실제 동전
매개변수 : 동전 타입
리턴 : 음료(커피)

티비라고 할때
인수 : 전기 신호
매개변수 : 전기 신호 타입
리턴 : 없음 (다만 화면을 출력할 뿐)

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

 

 

new 는 static이 아닌 모든 클래스 내용들을 메모리에 띄우는 역할

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

 

 

class 중괄호 사이 이외의 모든 중괄호 사이는 stack 영역

가비지 컬렉션 - 불러온 클래스가 더이상 사용되지 않는 줄부터 클래스를 없앰
필요없는 자료들을 모았다가 일정 용량이 되면 비움(heap을 날림)

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

 

 

 

'낙서장' 카테고리의 다른 글

200406 // 접근지정자, 스트림, 버퍼, 헤더  (0) 2020.04.06
트렐로 trello  (0) 2020.03.23
200319  (0) 2020.03.19
200318  (0) 2020.03.18
이클립스(spring tool) 단축키(키맵 ), 테마 세팅  (0) 2020.03.17
package ch03;

// 자바 기준
// 메소드(함수)는 클래스 안에 작성할 수 있다.
// 메소드(함수)는 메소드 (함수)안에 작성할 수 없다.

public class MethodEx01 {

	// 전역공간

	// void는 리턴하지 않는다는 뜻이다

	static int add(int n1, int n2) {
		int result = n1 + n2;
		// System.out.println("result : " + result);
		return result;
	}

	public static void main(String[] args) {
		
		int num = MethodEx01.add(5, 3);
		System.out.println("결과 : " + num);

	}
}

// 자바 기준
// 메소드(함수)는 클래스 안에 작성할 수 있다.
// 메소드(함수)는 메소드 (함수)안에 작성할 수 없다.

 

 

 

자바 기본 연산

package ch01;

public class OperEx01 {

	public static void main(String[] args) {

		// 한 라인에 두가지 변수를 선언 할 수 있다.

		int n1, n2;
		n1 = 5;
		n2 = 3;

		// 인텔리제이 키맵이라면 shift + f10으로 실행

		System.out.println(n1 + n2);
		System.out.println(n1 - n2);
		System.out.println(n1 / n2);
		System.out.println(n1 * n2);
		System.out.println(n1 % n2);
		
	}

}

 

 

문자열과 숫자 + 연산

package ch01;

public class OperEx02 {

	public static void main(String[] args) {
		int sum = 0;
		int distance = 100;
		int move = 20;

		sum = sum + move;
		System.out.println(sum);
		
		// 문자열과 숫자를 +를 하여 더하면 숫자가 문자열 뒤에 붙어서 문자열이 된다.
		
		System.out.println("움직인 거리 : " + sum);

	}

}

 

 

변수 뒤에 ++ 을 붙이면 해당변수에 1을 더함

package ch01;

public class OperEx03 {

	public static void main(String[] args) {
		int sum = 0;

		// 1 씩 증가

		sum++;
		System.out.println(sum);
	}

}

 

 

조건정하기
콘솔창에 true 또는 false를 입력하고 엔터

package ch01;

import java.util.Scanner;

public class ConEx01 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean check = sc.nextBoolean();
		
		
		if (check) { // boolean 1bit 경우의 수 2가지, true / false
			System.out.println("참입니다");
		} else {
			System.out.println("거짓입니다.");
		}
	}
}

 

 

학점 계산기
숫자를 입력하면 학점이 나옴

package ch01;

import java.util.Scanner;

public class ConEx03 {
	public static void main(String[] args) {
		System.out.println("성적을 입력하세요 : ");
		Scanner sc = new Scanner(System.in);
		int point = sc.nextInt(); // 정수 입력받기

		if (point <= 100 && point >= 90) {
			System.out.println("A학점입니다.");
		} else if (point < 90 && point >= 80) {
			System.out.println("B학점입니다.");
		} else if (point < 80 && point >= 70) {
			System.out.println("C학점입니다.");
		} else if (point < 70 && point >= 60) {
			System.out.println("D학점입니다.");
		} else if (point < 60 && point >= 0) {
			System.out.println("F학점입니다.");
		} else {
			System.out.println("잘못 입력 하셨습니다.");
		}
	}
}

 

 

논리연산자

package ch01;

public class LogicalOperator {

	public static void main(String[] args) {
		// 비교연산
		System.out.println('a' > 'b');
		System.out.println(3 >= 2);
		System.out.println(-1 < 0);
		System.out.println(3.45 <= 2);
		System.out.println(3 == 2);
		System.out.println(3 != 2);
		System.out.println(!(3 != 2));

		// 비교 연산과 논리 연산 복합
		System.out.println((3 > 2) && (3 > 4));
		System.out.println((3 != 2) || (-1 > 0));
		System.out.println((3 != 2) ^ (-1 > 0));

	}

}

 

 

중첩 if else 문

// 점수와 학년을 입력받아 60점 이상이면 합격, 미만이면 불합격을 출력한다. 4학년의 경우 70점 이상이어야 합격이다.

package ch01;

import java.util.Scanner;

public class NestedIf {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.println("점수를 입력하세요(0~100): ");
		int score = scanner.nextInt(); // 점수 읽기
		System.out.println("학년을 입력하세요(1~4): ");
		int year = scanner.nextInt(); // 학년 읽기

		if (score >= 60) {
			if (year != 4)
				System.out.println("합격!");
			else if (score >= 70)
				System.out.println("합격!");
			else
				System.out.println("불합격!");
		} else
			System.out.println("불합격!");

		scanner.close();
	}
}

 

 

'Programming Language > Java' 카테고리의 다른 글

자바 static, heap, stack 영역 구분  (0) 2020.03.20
자바 함수 쓰는 위치  (0) 2020.03.20
자바 프로그래밍 표기법  (0) 2020.03.17
자바 java 파일 기본 규칙  (0) 2020.03.17
200317 // 이클립스  (0) 2020.03.17

환경
윈도우10 64비트
오라클 18c 익스프레스

 

스캇 예제
예제를 확인하시려면

https://ondolroom.tistory.com/163

 

DUAL은 가상의 테이블이다
테스트 용도로 사용

SELECT 'CRIS'
FROM DUAL;

 

오라클은 인덱스를 1부터 시작한다
첫번째 인자는 문자열, 두번째 인자는 시작 번지, 세번째 인자는 개수

SELECT SUBSTR('CRIS', 0, 1)
FROM DUAL;

0을 넣어도 작동이 되긴 한다

SELECT SUBSTR('CRIS', 1, 1)
FROM DUAL;

 

 

SUBSTR()함수를 사용하면 데이터를 잘라서 검색도 가능

SELECT *
FROM 테이블
WHERE SUBSTR(열이름, 문자열 시작위치, 문자 개수) = '문자 또는 문자열';
SELECT *
FROM emp
WHERE SUBSTR(ename, 1, 1) = 'M';

 

-- student
SELECT *
FROM student
WHERE SUBSTR(jumin,1,2) = 76;

 

 

-- student에서 부산에 사는 사람을 찾으시오.
SELECT *
FROM student
WHERE SUBSTR(tel, 1, 3) = '051';

 

 

-- student 2월에 태어난 사람을 찾으시오.
SELECT *
FROM student
WHERE SUBSTR(birthday, 4, 2) = '02';

 

 

SELECT instr(문자열,찾을 문자 또는 문자열, 시작 문자열 위치, n번째 검색결과)
FROM dual;

1번위치부터 검색하여 2번째 - 가 있는 곳을 검색

SELECT instr('02-5555-8989','-', 1, 2)
FROM dual;

 

 

중간번호를 찾아내기

SELECT substr(찾을 데이터, 시작위치, 개수) AS 열의 별칭
from 테이블;
SELECT substr(tel, instr(tel, ')') + 1, instr(tel, '-') - instr(tel, ')') - 1) AS 중간번호, tel
from student;

 

 

SELECT name, tel, SUBSTR(tel, 1, INSTR(tel,')') - 1) AS "AREA CODE"
FROM student
WHERE deptno1 = 201;

 

 

-- REPLACE 함수 사용해보기
SELECT REPLACE(문자열, 바꾸고 싶은 문자 또는 문자열, 넣을 문자)
FROM 테이블
WHERE 열이름 = 데이터;
-- REPLACE 함수 사용해보기
SELECT REPLACE('ABC', 'A', 'F')
from dual;

 

SELECT ename, REPLACE(ename, SUBSTR(ename, 2, 2), '--')
FROM emp
WHERE deptno = 20;

 

SELECT  name, jumin, REPLACE(jumin, SUBSTR(jumin, 7, 7), '-/-/-/-') "REPLACE"
FROM student
WHERE deptno1 = 101;

 

SELECT  name, tel, REPLACE(tel, SUBSTR(tel, 5, 3), '***') "REPLACE"
FROM student
WHERE deptno1 = 102;

 

SELECT  name, tel, REPLACE(tel, SUBSTR(tel, 9), '****') "REPLACE"
FROM student
WHERE deptno1 = 101;

 

SELECT REPLACE(jumin, SUBSTR(jumin, 8, 6), '******')
FROM student;

 

SELECT LPAD(SUBSTR(tel, instr(tel,')')), instr(tel,'-') + 4, '*')
FROM student;
SELECT REPLACE(tel,  SUBSTR(tel, 1, instr(tel,')')-1), SUBSTR('***', 1, INSTR(TEL, ')') - 1))
FROM student;

 

 

 

환경
윈도우10 64비트
오라클 18c 익스프레스

 

스캇 예제
예제를 확인하시려면

https://ondolroom.tistory.com/163

 

 

SELECT : 나타낼 열을 지정한다
FROM : 검색할 테이블을 지정한다

SELECT 열이름1, 열이름2
FROM 테이블;
SELECT empno, ename, sal
FROM emp;

 

 

* : 선택할 열을 *로 만들면 테이블에 있는 모든 열을 불러온다

회사에서는 되도록이면 아스트리크(*)는 사용하지 않는 것으로 한다.(연습때만 써보자)
FROM이 먼저 실행되고 SELECT가 실행된다.

SELECT *
FROM emp;

 

 

순서 FROM -> WHERE -> SELECT
데이터 베이스에서는 같다는 뜻(=)

SELECT 열이름
FROM 테이블
WHERE 열이름 = 데이터;
SELECT *
FROM emp
WHERE sal = 1250;

 

 

and 는 여러조건을 모두 만족 시킬 때 사용(직렬 개념)

SELECT *
FROM 테이블
WHERE 열이름 = 조건 and 열이름 > 조건; 
SELECT *
FROM emp
WHERE sal = 1250 and comm > 1000; 

 

 

or은 여러 조건  중 하나라도 해당될 때 사용(병렬 개념)

SELECT *
FROM emp
WHERE sal = 1250 or comm > 1000; 

 

 

실제 데이터 값은 대소문자 구분
오라클에서는 문자열에 쌍따옴표 안씀

-- ENAME 이 WARD인 사람을 검색하시오.

SELECT *
FROM emp
WHERE ename = 'WARD';

 

 

-- JOB 이 SALESMAN인 사람을 검색하시오.

SELECT *
FROM emp
WHERE job = 'SALESMAN';

 

 

-- JOB 이 SALESMAN이고 DEPTNO가 30인 사람을 검색하시오.

SELECT *
FROM emp
WHERE job = 'SALESMAN' and deptno = 30;

 

 


DISTINCT : 열에 중복된 값을 제외한다(CLERK가 여러개면 하나만 출력)

-- 총무과 : 우리 회사에 JOB이 뭐가 있는지 보고 싶어.

SELECT DISTINCT job
FROM emp;

 

 

-- 총무과 : 우리 회사에 부서번호가 뭐가 있는지 보고 싶어.

SELECT DISTINCT deptno
FROM emp;

 

 

AS 뒤에 "부서번호" 또는 쌍따옴표 없이 부서번호 를 적을 수 있다(18c버전 기준)
그리고 AS도 없이 사용 할 수 있다

-- 총무과 : 우리 회사에 부서번호가 뭐가 있는지 보고 싶어.

SELECT DISTINCT deptno AS 부서번호
FROM emp;

 

 

SELECT *
from student
where height >= 170; 

-- ( =, >, <, >=, <=) 자바와 같은 언어와 다르게 ==이 아닌 = 이다

 

 

-- student 테이블에서 grade가 2학년이거나 3학년인 학생을 검색하시오.
SELECT *
FROM student
WHERE grade = 2 or grade = 3;

또는

-- student 테이블에서 grade가 2학년이거나 3학년인 학생을 검색하시오.
SELECT *
FROM student
WHERE grade in (2,3);

쿼리(query) -> 파싱(parsing)

 

 

-- EMP 테이블에서 JOB이 SALESMAN 이거나 MANAGER 이거나 CLERK 인 사람을 찾으시오.

SELECT *
FROM emp
WHERE job in ('SALESMAN', 'MANAGER', 'CLERK');

 

 

|| 기호를 사용하면 데이터 뒤에 문자를 추가 할 수 있다.

SELECT ename, sal || '$'
FROM emp;

스키마

테이블에 대하여 설명해주는 것

---

컴파일
전체 코드를 다 읽고 실행

-C

 

인터프리터
컴파일 하지 않고 코드를 한줄씩 읽어서 실행

-파이썬
-자바스크립트

 

하이브리드
가상머신이 이해할 수 있는 코드로 컴파일 후 머신에서 실행

-자바

---

함수에서 ()안에 있는 것을 정의 하면 매개변수

plus(int a, int b){     <- 매개변수
    return a + b;
}

그것을 실제 이용하기 위해 넣은 값은 인수

plus(1, 2); <-인수

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

데이터베이스만 써서 엑셀문서로 줄경우

-데이터베이스에서 자료를 바로 가공후 엑셀로 배출

 

프로그램에서는....

html - 자바 - 데이터베이스

-데이터베이스에서 자료를 가져와서

-자바에서 데이터 가공을 하고

-html에서 뿌린다

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

(중요)
레코드 - 기본키(프라이머리 키, PK) 필요 
행을 구분짓게 해주는 것(중복되지 않는 것)

중복되지 않는 값을 설정하는 것 - pk설정

장점
1. 해당 번호를 검색하면 무조건 단 하나의 행이 나온다
2. 찾았다면 이후의 검색을 하지 않는다(효율적)

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

특정패턴을 검색할때 구글링 reg

'낙서장' 카테고리의 다른 글

트렐로 trello  (0) 2020.03.23
200320  (0) 2020.03.20
200318  (0) 2020.03.18
이클립스(spring tool) 단축키(키맵 ), 테마 세팅  (0) 2020.03.17
개발툴(intellij) 단축키  (0) 2020.03.17

행 번호 토글을 누르면 행 번호가 나타납니다^^

오류 위치 확인시 활용

scott.sql
0.00MB
test_data.sql
0.02MB

 

나는 scott내용을 조금 바꿨다 (아이디 SCOTT -> scott , TIGER -> tiger)

 

먼저 관리자 페이지에서 스캇 유저를 생성하고 세션 테이블스페이스 테이블 권한을 준다

(오라클 데이터베이스에서는 무조건 한줄씩 모두 실행해줘야한다)

alter session set "_oracle_script"=true; 
CREATE USER scott IDENTIFIED BY tiger;

GRANT CREATE SESSION TO scott; 
GRANT CREATE TABLESPACE TO scott; 
GRANT CREATE TABLE TO scott; 

alter user cos default tablespace users quota unlimited on users;

 

관리자 페이지에서 파일을 로드한다

@C:\scott.sql;

ctrl + enter 한 후

 

테스트 후 접속

 

 

테이블을 열어보기

 

 

데이터 집어넣기

 

 

테이블 또는 뷰가 없으니 오류가 난다
다시 코드를 실행해본다

열에 대한 값이 너무 큼

 

 

메모장을 관리자 권한으로 실행

 

 

4글자가 필요하니 08을 12로 변경 후 저장
다시 실행하면 오류 없이 적용된다

 

+ Recent posts