반응형

All 62

[SQL 활용] 13. 인덱스와 뷰

인덱스 내가 만약 키가 100인 아이를 찾고싶으면 처음 200부터 비교해갈 수 있지만, 이럴 경우 성능이 떨어짐. 우리가 키값에 따라 색인을 만들어놓으면 순서적으로 접근하는게 아니라 랜덤하게 직접적으로 임의의 순서를 따라 접근할 수 있기 때문에 보다 빠르게 데이터를 추출할 수 있다. ex) 사원번호에 인덱스를 부여할경우 고유 인덱스가 됨. 동일한 사원번호를 가진 사원은 존재하지 않으니까. 부서 번호에 인덱스를 부여할경우 비고유 인덱스가 됨. 여러 사원이 한 부서 번호를 공유하니까. 기본키에 대해서는 자동으로 dbms가 고유색인을 만든다. 성능 향상을 위해. 서로 다른 부서여도 위치는 같을 수 있으니 비고유 인덱스를 생성해보자. 부서 번호는 오름차순으로, 같은 부서일경우 급여는 내림차순으로 정렬한 후 결합..

[SQL 활용] 12. 순위 계산

순위 함수 salary가 500인 세 명이 모두 출력됨 rank() 는 5등이 여러명이면 여러명인만큼 등수가 사라짐 dense_rank()는 5등이 여러명, 그 후 6등 그룹 별 순위 부서 번호대로 랭크를 하는데 이 때 부서 번호대로 분류를 하고 그 분류된 각각의 소그룹에서 급여기준으로 내림차순으로 정렬해서 그 순위를 rank_dept 라는 속성값으로 출력하시오. from절에 subquery 형태로 인라인 뷰 사용. 중복된 결과가 나오는데, 중복 허용하고싶지 않다면 select DISTINCT 붙여주면 됨. 부서별로 급여를 내림차순한 후, 가장 처음으로 나오는 값을 출력. 즉, 각 부서별 최고 급여액. (=MAX) LAG(salary, 1) : salary를 기준으로 나보다 바로 앞 1명 LEAD(sal..

[SQL 활용] 11. 집합 연산자와 집단 연산자

집합 연산자 부서 번호가 10번인 사원과 직급이 staff인 사원들이 모두 합집합으로 검색됨. 그냥 union을 쓰게되면 중복이 허용이 안되면서 dno가 10이고 job이 staff인, 교집합에 해당하는 아이 ENO 114는 한번만 나온다. 근데 UNION ALL을 사용하면 중복이 허용되면서 ENO 114 사원은 DNO가 10이고 job이 staff로 두 번 해당되기때문에 두 번 나온다. 외부 합집합 : 합병 호환성을 만족하지 않는데 합집합하고 싶은 경우 활용 튜플 수는 14개, commission의 값은 4개 having은 group by가 나와야 함께 쓸 수 있다. ex) 학과별로 그룹핑하고, 그 그룹들을 대상으로 학년별로 그룹핑하고싶을때 각각의 합, 부서별 합, 전체 합이 모두 나옴 rollup에서..

[ JAVA 수업 DAY 12 ] jar 파일 활용, Collection

과제 피드백 cf) 이클립스에서 cmd 키 누르고 메소드에 마우스 갖다대면 해당 메소드로 이동 가능. cf) 루프를 빠져나올때 break 한번만쓰면 안될땐 키워드를 써서 break loop 이런식으로도 가능하지만, System.exit(0);을 쓰면 프로그램이 아예 종료된다. cf) 보통 화면에 보여주는 기능클래스는 View라 하고, 원래는 프린트하는 클래스도 따로있다. cf) 변수나 메소드 이름은 언더바로 시작을 할 수 있긴하지만, 언더바로 시작하는 변수나 메소드들은 시스템을 건드리는 기능을 하는 아이들이다. SimpleDateFormate 클래스 우리가 원하는 포맷으로 연 원 일 시 분 초를 뽑아낼 수 있다. 날짜 객체로부터 원하는 형태의 문자열로 변환한다. 특정한 포맷 문자열을 사용하여 날짜 정보를..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 10 - 11 ] Final, 인터페이스+, 예외처리, Java API

Final public static final int MAX = 100; => 상수변수를 만들어줄때 붙여주는 키워드. 자바에서는 변수뿐만 아니라 메소드나 클래스에도 붙을수 있다. 변수 : 상수 메소드 : 오버라이딩 금지 클래스 : 상속을 금지 ex) class Printer { void copyright() { //=> final 을 붙여줘야만 자식클래스에서 재정의를 못하게 할 수 있음. } } class LGPrinter extends Printer { public void copyright() { //=> 자식클래스에서 재정의로 저작권을 바꿔버릴수도 있음. … } } 인터페이스 + 자바 1.8버젼부터 인터페이스에 구현된 메소드를 가질수있는 문법을 더 추가시켜줬다. 프..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 09 ] 객체형변환+, 인터페이스

과제풀이 원과 다른 세 도형들을 분리시키면 어떨까? 다른 세 도형은 평면도형이니까. Shape 추상 부모 클래스의 추상메소드를 PlaneShape 자식클래스가 오버라이딩해야하지만, 자식클래스도 추상클래스라면 오버라이딩 안해줘도 괜찮다. 그 자식의 자식들이 오버라이드 하니까. 즉, 추상클래스를 상속받은 추상클래스가 존재할수도 있다. => 설계쪽은 디자인패턴 책을 꼭 봐서 따로 공부를 해야된다. 경험으로 얻는거엔 한계가 있다. 영어 잘하면 head first design pattern 원서가 pdf로 돌아다니니 이걸 봐도 된다. 객체 형변환 객체 형변환의 전제조건은 서로 상속관계여야 한다는 것. [ 명시적 형변환 ] 부모의 값을 갖는 객체가 자식의 주소를 가지게 되는데, 자식의 공간이 부모보다 크기 때문에 ..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 07 - 08 ] 상속, 추상클래스, 객체형변환

상속 1. 확장성, 재사용성 2. 클래스 선언시 extends 키워드를 명시 3. 관계 - 부모 (상위, super) 클래스 - 자식 (하위, sub) 클래스 4. 자식클래스는 부모클래스에 선언되어있는 멤버변수, 메소드를 자신의 것처럼 사용할 수 있다. 단, 접근제한자에 따라 사용 여부가 달라진다. 5. super 키워드 6. 오버라이딩(재정의) class Parents { Parents() { } } class Child extends Parent { Child() { super(); } } Child c = new Child(); 객체를 생성하게되면 child 뿐만아니라 Parent 공간도 만들어진다. Child 디폴트 생성자에 super(); 라는 부모클래스 디폴트 생성자가 생략되있기 때문. 주의>..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 06 ] 문자열

문자열 정의 자바에서는 문자열을 모두 객체로 취급한다. 즉, 클래스로 구성되있다. 실제 문자열을 제공하는 클래스는 String, StringBuffer, StringBuilder이 있는데 셋 다 java.lang 패키지에 있다. 근데 java.lang 내의 클래스는 굳이 import하지 않아도 다 자동 임포트가 되어있다. 문자열은 length() 메소드를 쓰고, 배열은 length 변수를 쓴다. 배열은 클래스가 아니라서 메소드를 못쓴다. 컴퓨터가 내부적으로 length를 활용해 알아서 해석한다. String 클래스 : 한번 생성된다음 변하지 않는 문자열에 사용 일종의 상수문자열. 한번 문자열을 만들면 절대 변경할 수 없다. ex) String str = “Hello world”; str = “abc”; ..

Programming/Java 2020.05.05

[ JAVA 수업 DAY 05 ] 클래스와 메소드

(클래스와 메소드의 기본적인 내용은 생략하고, 수업시간 내가 잘 알아둬야 할 내용을 필기한 위주로 정리했다.) 클래스 - 모든 객체들의 생산처 - 클래스 = 객체를 생성하는 틀 - 프로그래밍이 쓰이는 목적을 생각하여 어떤 객체를 만들어야 하는지 결정한다. - 각 객체들이 어떤 특징(속성과 동작)을 가지고 있을지 결정한다. - 객체들 사이에서 메세지를 주고받도록 만들어준다. 메소드 메소드 내에 return은 꼭 맨 마지막에만 들어오는 것은 아니다. void aaa() { print(‘A’); print(‘B’); return; print(‘C’); print(‘D’); } => 이럴 경우 C와 D는 출력하지 않고 호출자메소드로 돌아감. return 값은 대입 연산자를 통해서만 받아올 수 있다. ex) in..

Programming/Java 2020.05.05

[ JAVA 수업 Day 04 ] 배열

(배열의 기본적인 내용은 생략하고, 수업시간 내가 잘 알아둬야 할 내용을 필기한 위주로 정리했다.) 배열 배열이란? - 같은 종류의 데이터를 저장하기 위한 자료구조 - 크기가 고정되어 있다(한번 생성된 배열은 크기를 바꿀 수 없다) - 배열을 객체로 취급 - 배열의 요소를 참조하려면 배열이름과 색인(index)라고 하는 int 유형의 정수값을 조합하여 사용한다. 참조변수 배열 참조변수 배열의 경우 stack에 변수이름으로 된 공간이 생기고 Heap에 그 크기 개수만큼의 공간이 생긴다. 각 공간에 문자열을 할당하면 그 공간이 각각의 문자열을 저장한 heap 공간의 주소를 가리키게 된다. Strring[] strArr; // => stack에 공간 생성 strArr = new String[3]; // => ..

Programming/Java 2020.05.04
반응형