1. SUM(expr)
    • expr에 저장된 자료의 합계를 반환
  2. AVG(expr)
    • 주어진 데이터의 산술 평균값을 반환
  3. COUNT(* | col)
    • 그룹화된 자료의 행의 수를 반환한다(자료의 수)
    • col은 외부 조인 시에 사용해야 한다
    • 일반적인 경우 *와 col은 어떤 걸 사용해도 같은 결과가 나온다
  4. MIN(col), MAX(col)
    • 주어진 컬럼col에서 가장 큰 값 또는 가장 작은 값을 반환
  5. ROLLUP()
    • GROUP BY 절에 사용하여 레벨별 집계를 구할 때 사용됨
  6. CUBE()
    • 조합가능한 모든 경우의 집계를 구할 때 사용됨

'DataBase > Oracle' 카테고리의 다른 글

14. Join - 내부조인  (0) 2021.07.24
13. Function - NULL 처리 함수  (0) 2021.07.24
11. Function - 변환함수  (0) 2021.07.24
10. Function - 날짜 함수  (0) 2021.07.24
9. Function - 숫자 함수  (0) 2021.06.22
  1. CAST(expr AS type)
    • expr을 type으로 명시적 형 변환 시킴
  2. TO_CHAR(expr [, fmt])
    1. 날짜 형식 지정 문자열
      • CC 세기 / dc, ad 서기
      • Q 분기
      • YYYY,YYY,YY,Y 년도
      • MM, MON, MONTH, RM 월
      • D, DD, DDTH, DDD 일
      • DAY 요일
      • HH, HH12, HH24 시간
      • MI 분
      • SS, SSSS 초
      • "문자열" 쌍따옴표 안의 문자열 표기
    2. 숫자 형식 지정 문자열
      • 9 대응되는 데이터가 유효숫자이면 해당 숫자를, 무효의 0이면 공백을 출력
      • 0 대응되는 데이터가 유효숫자이면 해당 숫자를, 무효의 0이면 '0'을 출력
      • L($) 화폐 기호 출력
      • PR 음수자료이면 '<>'안에 데이터 출력
      • 소수점(.) 소수점 지정
      • 콤마(,) 자리점 출력(3자리마다 ,)
  3. TO_DATE(expr [, fmt])
    • expr로 기술된 문자자료를 fmt형식에 맞는 날짜형으로 변환
    • fmt : YYYY:MM:DD 와 같은 형식 등이 있다
    • 날짜형 데이터 형식에 맞지 않는 형식 지정 문자열은 무시되고 기본 날짜형이 적용
    • 상용되는 형식 지정문자열은 TO_CHAR와 같음
    • 반환 타입은 날짜
  4. TO_NUMBER(expr [, fmt])
    • expr로 기술된 문자자료를 fmt형식에 맞는 숫자형 자료로 변환
    • fmt : 999.00 과 같은 형식 등이 있다
    • fmt형식은 숫자로 처리될 수 있는 형식 문자열이어야 된다
    • expr에 숫자로 변환 불가능한 자료가 포함되어서는 안 된다
    • 사칙연산이 가능한 형태여야 한다
    • 콤마 포함 시 문자열로 취급되기 때문에 사용할 수 없다
    • 소수점 자리는 일치시켜야 한다
    • fmt에 기술한 숫자의 소숫점 자리가 expr에 적은 소숫점 자리보다 적으면 오류가 발생한다
    • fmt를 기술하지 않으면 자동으로 소숫점 자리를 맞춰주기 때문에 안 써주는 것이 제일 좋다

'DataBase > Oracle' 카테고리의 다른 글

13. Function - NULL 처리 함수  (0) 2021.07.24
12. Function - 집계함수  (0) 2021.07.24
10. Function - 날짜 함수  (0) 2021.07.24
9. Function - 숫자 함수  (0) 2021.06.22
8. Function - 문자열 함수  (0) 2021.06.22
  1. SYSDATE
    • 시스템이 제공하는 날짜 및 시각 정보
    • 정수 자료와 연산이 가능하다(덧셈, 뺄셈) 결과는 날짜 타입으로 반환된다
  2. EXTRACT(fmt FROM d1)
    • fmt에는 year, month, day, hour, minute, second를 입력할 수 있다
    • 날짜 자료 d1에서 frm에 입력한 정보를 가져온다
  3. ADD_MONTHS(d1, n)
    • 주어진 날짜 자료 d1에 n개월을 더한 값을 반환
  4. NEXT_DAY(d1, fmt), LAST_DAY(d1)
    • NEXT_DAY : d1날짜 이후 처음 만나는 fmt(월, 화...)로 정의된 요일에 해당하는 날짜 반환
    • LAST_DAY : d1날짜 자료에 포함된 월의 마지막 날을 반환(리턴 타입 날짜)
  5. MONTHS_BETWEEN(d1, d2)
    • 두 날짜 자료 d1과 d2사이의 달 수 반환

'DataBase > Oracle' 카테고리의 다른 글

12. Function - 집계함수  (0) 2021.07.24
11. Function - 변환함수  (0) 2021.07.24
9. Function - 숫자 함수  (0) 2021.06.22
8. Function - 문자열 함수  (0) 2021.06.22
7. 연산자(Operator)  (0) 2021.06.18
  • 예외 처리
    • 프로그래밍에서 예외처리를 하는 것은 매우 중요하다
    • 예외란 에러, 오류 라고도 하며 프로그램이 동작할 때 이러한 예외 때문에 동작을 하지 않는 일이 생긴다
      • 버그와는 다르다. 버그는 오류없이 동작이 되지만 원하는 결과로 나오지 않는 것을 의미한다
  • 예외 종류
    • 일반 예외
      • 컴파일 단계에서의 에러이다
      • (개발 툴이 메모장이 아니라면) 코드를 작성할때 잘못 작성된 부분에 빨간색으로 밑줄이 생기는 것을 본 적이 있을 것이다. 이러한 에러들이 컴파일 단계에서 생기는 일반 예외이다.
      • 이러한 예외는 수정을 하지 않으면 실행기 불가능하다
    • 실행 예외
      • 런타임단계에서의 에러이다
      • 실행 줄 Null pointer exception 등이 흔하게 나타나는 에러로 컴파일 단계에서의 에러는 없지만 실행 시에 에러가 나오면서 프로그램이 종료된다
  • 예외처리 방법
    • try-catch
      • try {
        			
        } catch (Exception e) {
        
        } finally {
        			
        }
      • try : 오류가 날수도 있는 부분을 try괄호 안에 넣어준다
      • catch : try블럭에서 오류가 발생할 시에 catch에서 에러를 받아오며 에러를 어떻게 처리해줄지에 대해 코드를 작성해줄 수 있다
      • finally : 오류와 상관없이 무조건 실행이 되는 블럭이다
    • throws
      • try-catch는 코드를 try블록 안에 넣어서 오류가 생기면 즉시 처리를 해주기 위한 방법이다. 하지만 throws의 경우 다른 누군가에게 위임을 하겠다는 뜻으로 메서드의 이름 옆에 사용해줄 수 있다
      • 일반적으로는 try-catch를 써주는 것이 좋다

'Back-end > JAVA' 카테고리의 다른 글

객체 지향 설계의 5가지 원칙(SOLID)  (0) 2022.02.06
22. 추상클래스와 인터페이스  (0) 2021.07.24
21. Class - 상속  (0) 2021.07.24
20. Class - final(상수)  (0) 2021.07.24
19. Class - 멤버와 패키지, 접근 제한자  (0) 2021.07.24
  • 추상 클래스
    • 부모 클래스에 abstract키워드를 추가하면 추상 클래스를 선언할 수 있다
    • 추상 메서드를 정의해줘야 한다
      • 추상 메서드 : 메서드 내부의 동작을 정의하지 않고 리턴 타입, 매개변수, 메서드 이름만을 정해서 자식이 오버 라이딩해서 사용하도록 하는 메서드이다
    • 일반 메서드도 동시에 존재할 수 있다
    • 부모 클래스의 메서드가 동작할 필요가 없다면 추상적으로 이러한 매개변수를 받아와서 사용하면 된다 정도로 정의만 해주고 나머지 기능은 자식에게 위임하는 것이다
  • 인터페이스
    • 추상 메서드와 비슷하지만 모두 추상 메서드로 작성을 해야 된다는 것이 다르다
    • 최근에는 추상 메서드가 아닌 메서드도 인터페이스 내부에 작성이 가능하지만 일반적으로 작성하지 않는다
    • 필드에는 상수만 선언이 가능하다
    • 인터페이스의 경우 해당 인터페이스를 받아올 클래스가 implements키워드를 사용해서 구현을 할 수 있다
    • 인터페이스는 여러 개를 받아와서 구현이 가능한 것이 여러 특징 중 하나인데 자바에서는 다중 상속이 안되기 때문에 인터페이스를 통해서 다중 상속을 구현할 수도 있다

'Back-end > JAVA' 카테고리의 다른 글

객체 지향 설계의 5가지 원칙(SOLID)  (0) 2022.02.06
23. 예외 처리  (0) 2021.07.24
21. Class - 상속  (0) 2021.07.24
20. Class - final(상수)  (0) 2021.07.24
19. Class - 멤버와 패키지, 접근 제한자  (0) 2021.07.24
  • 상속
    • 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다.
    • 자바에서는 다중상속이 불가능하다
      • 다중 상속이란 자식 클래스가 여러 개의 부모 클래스를 상속받는 것을 말한다
    • 중복되는 코드를 부모클래스에 만들어서 여러 명의 자식들이 상속받아 사용할 수 있기 때문에 유지보수에 용이하다
    • 객체 지향의 3대 요소중 하나이다
      • 객체지향의 3대 요소 : 상속, 다형성, 캡슐화
    • this가 자기 자신을 말한다면 부모를 가리키는 super라는 키워드도 사용이 가능하다
      • super : 자식클래스에서 부모를 가리킬 때 쓰는 키워드이다
    • class child extends parent {}
    • extends 키워드를 사용해서 부모를 상속받아 올 수 있다
    • 오버 라이딩
      • 부모 클래스가 가지고 있는 메서드를 재정의하는 것이다
      • 접근 제한자를 더 좁게 줄이는 것은 불가능하다
        • ex > 부모 public / 자식 protected 불가능
      • 동일한 이름을 가져야 하며 부모 클래스가 정의한 메서드와 리턴타입, 메소드 이름, 매개변수 목록이 같아야 한다
      • 내부적으로 동작하는 부분만 수정이 가능하다
    • final class : 상속 불가능
    • final method : 재정의 불가능
  • 다형성
    • 사용방법은 동일하지만 다양한 객체를 이용해서 다양한 실행결과가 나오도록 하는 성질을 의미한다
    • animal을 상속받은 개와 고양이가 sound라는 메서드를 재정의했고 그 결과 각각 다른 소리를 출력하게 된다
    • 이처럼 하나의 메서드로 다른 결과가 나오게 만드는 것을 다형성이라고 한다
  • 자동 타입 변환
    • 위의 코드에서 test부분을 보면 개와 고양이가 인스턴스를 생성했을 때 담아주는 변수의 타입이 부모 타입인 것을 확인할 수 있다.
    • 기본 타입 변수의 자동 형 변환을 생각해보면 int를 double에 담아주는 것이 가능하다. int의 범위보다 double의 범위가 더 넓기 때문에 가능한 것인데 클래스에서도 부모의 범위가 더 넓기 때문에 부모를 상속받은 자식 타입은 모두 부모 밑으로 들어갈 수 있는 것이다.

'Back-end > JAVA' 카테고리의 다른 글

23. 예외 처리  (0) 2021.07.24
22. 추상클래스와 인터페이스  (0) 2021.07.24
20. Class - final(상수)  (0) 2021.07.24
19. Class - 멤버와 패키지, 접근 제한자  (0) 2021.07.24
18. Class - Method(메서드)  (0) 2021.07.24
  • final(상수)
    • final키워드를 사용하면 상수로 정의를 할 수 있다
    • 상수란 변하지 않는 수를 의미하며 무조건 선언과 동시에 초기화를 해줘야 한다
    • public static final int age = 20;
    • 재할당을 하려고 코드를 짜면 에러가 생길 것이다

 

'Back-end > JAVA' 카테고리의 다른 글

22. 추상클래스와 인터페이스  (0) 2021.07.24
21. Class - 상속  (0) 2021.07.24
19. Class - 멤버와 패키지, 접근 제한자  (0) 2021.07.24
18. Class - Method(메서드)  (0) 2021.07.24
17. Class - Constructor(생성자)  (0) 2021.07.24
  • 멤버
    • 인스턴스 멤버 : 객체마다 가지고 있는 멤버를 의미한다
    • 정적 맴버 : 클래스가 가지고 있는 멤버로 모든 인스턴스가 공유한다
      • 정적 멤버를 선언해주는 방법은 static키워드를 사용해주면 된다
    • 고객은 은행이라는 클래스를 통해 각자의 계좌를 만들 수 있는데 이때 계좌가 인스턴스 멤버가 되는 것이다.
    • 이 계좌는 인스턴스 필드, 계좌이체를 하는 동작은 인스턴스 메서드이다.
    • 하지만 두 명의 고객 모두 은행의 고객센터 번호를 동일하게 공유하며 고객센터의 번호가 4567로 바뀐다면 바뀐 번호를 두명의 고객 모두 인지할 수 있다. 이때 고객센터 번호가 정적 멤버가 되는 것이다.
    • 코드로 살펴보자
    • public class BankTest {
      	public static void main(String[] args) {
      		Bank customer1 = new Bank();
      		Bank customer2 = new Bank();
      		
      		System.out.println(customer1.tel == customer2.tel);
              
              customer1.tel = "4321-4321";
              
              System.out.println(customer1.tel == customer2.tel);
      	}
      }
      
      class Bank {
      	String account;
      	int balance;
      	static String tel = "1234-1234";
      }
    • static으로 선언해준 tel이라는 변수는 customer1과 customer2가 모두 동일한 값으로 공유하기 때문에 true가 나올 것이다.
    • 또한 customer1이 tel의 번호를 바꿨다. 후에 밑에서 다시 비교를 해주는데 이때도 결과는 true이다.
  • 패키지
    • 단순하게 폴더의 기능만 하는 것이 아니라 클래스의 일부분으로, 클래스를 유일하게 만들어준다
    • 같은 패키지안에 같은 이름의 클래스는 존재할 수 없다
    • 작명은 일반적으로 주소 값을 거꾸로 써주는 형식으로 폴더명을 작성해 준다
      • ex > com.tistory.projectName
    • java로 시작하는 패키지는 자바 표준 api에서만 사용하므로 사용할 수 없다
  • 접근 제한자
    • public : 다른 패키지에서도 접근이 가능하다.
    • protected : 같은 패키지 또는 다른 패키지라 하더라도 상속을 받았다면 사용이 가능하다
    • default : 같은 패키지에서만 사용이 가능하며 default는 써주는 것이 아니라 접근 제한자를 안 써주면 자동으로 default가 된다
    • private : 클래스 내부에서만 사용이 가능하다.
    • 개방성은 적은 순서대로 public > protected > default > private가 된다

'Back-end > JAVA' 카테고리의 다른 글

21. Class - 상속  (0) 2021.07.24
20. Class - final(상수)  (0) 2021.07.24
18. Class - Method(메서드)  (0) 2021.07.24
17. Class - Constructor(생성자)  (0) 2021.07.24
16. Class - Field(필드)  (0) 2021.06.23

+ Recent posts