오랜만에 찾아 뵙습니다. 주말에 코딩테스트를 치면서 쉬는듯 혼나는 듯이 살다가 이제서야 정신차리고 돌아왔습니다.
코딩테스트를 처음 응시 해보면서 느낀점이 많습니다. 약간의 방향성이 잡혀서 계속해서 지원해보면서 연습해보면 좋을 것 같습니다. 주말에는 어려울지도 모르겠지만 평일에 더 열심히 하도록 하겠습니다.!!!
TIL에 대한 고민이 많아집니다.. 먼가 처음에는 일기처럼 작성하면서 진행했는데 반복적인 작업도 점차 늘어나고 한 페이지에 분리된 내용을 적다보니 정리가 카테고리 정리가 좋지 않은 것 같습니다.
실제로 일기기도 해요... 그날 배운 노트필기를 작성하기에 부족함이 많은 것 같습니다.
그래서 조만간 날을 잡고 분리를 진행할 까합니다. 조금 불편해도 이해해주시길
오전 Java
인터페이스
다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할을 담당하는 추상클래스입니다.
extends 와 implements
상속 extends :
자식이 부모의 특징을 상속받아서 사용이 가능합니다. 코드의 재사용성을 높이고 중복성을 최소화 합니다.
구현 implements :
특정 인터페이스를 클래스에서 구현합니다. 인터페이스에서 정의한 메서드에 강제력이 생기고 인터페이스를 재정의함으로써 구현을 합니다.
클래스에 다중 상속은 불가능하지만 인터페이스에서 인터페이스 다중상속은 가능합니다.
Ex
public class Test {
public static void main(String[] args) {
Car car = new Taxi();
// car.lift(), car.drop()의 경우 참조 영역의 축소로 호출이 불가하다.
// 따라서 다운캐스팅을 통해서 호출합니다.
if(car instanceof Taxi) {
Taxi taxi = (Taxi) car;
taxi.lift();
taxi.drop();
}
car = new Truck();
if(car instanceof Truck) {
Truck truck = (Truck) car;
truck.dump();
}
}
}
interface Car {
public abstract void speedUp();
public abstract void speedDown();
}
// 인터페이스 Car를 선언해주고 메서드는 추상메서드로 선언해줍니다.
class Taxi implements Car {
@Override
public void speedUp() {
System.out.println("speed up");
} // 구현한 인터페이스의 추상메서드에 대한 오버라이딩을 해줍니다.
@Override
public void speedDown() {
System.out.println("spped down");
} // 구현한 인터페이스의 추상메서드에 대한 오버라이딩을 해줍니다.
public void lift() {
System.out.println("passenger get in");
}
public void drop() {
System.out.println("passenger get off");
}
}
class Truck implements Car {
@Override
public void speedUp() {
// TODO Auto-generated method stub
System.out.println("speed up");
}
@Override
public void speedDown() {
// TODO Auto-generated method stub
System.out.println("speed down");
}
public void dump() {
System.out.println("dump it");
}
}
오후 DB
Alter Table : 테이블 수정
- ADD : 테이블 구조에 추가적인 요소를 더 할 수 있는 구문입니다. 새로운 컬럼을 비어 있는 상태로 생성 합니다.
// EX ADD
ALTER TABLE dept80
ADD (job_id VARCHAR2(9));
/*
EMPLOYEE_ID|LAST_NAME |ANNSAL|HIRE_DATE |JOB_ID|
-----------+----------+------+-----------------------+------+
145|Russell |168000|2004-10-01 00:00:00.000| |
146|Partners |162000|2005-01-05 00:00:00.000| |
147|Errazuriz |144000|2005-03-10 00:00:00.000| |
148|Cambrault |132000|2007-10-15 00:00:00.000| |
149|Zlotkey |126000|2008-01-29 00:00:00.000| |
150|Tucker |120000|2005-01-30 00:00:00.000| |
*/
- MODIFY : 테이블의 기존 컬럼의 구조를 변형하는 구문입니다.
// Ex MODIFY
ALTER TABLE dept80
MODIFY (last_name VARCHAR2(30));
/*
이름 널? 유형
----------- -------- ------------
EMPLOYEE_ID NUMBER(6)
LAST_NAME NOT NULL VARCHAR2(25)
ANNSAL NUMBER
HIRE_DATE NOT NULL DATE
JOB_ID VARCHAR2(9)
===================================
이름 널? 유형
----------- -------- ------------
EMPLOYEE_ID NUMBER(6)
LAST_NAME NOT NULL VARCHAR2(30)
ANNSAL NUMBER
HIRE_DATE NOT NULL DATE
JOB_ID VARCHAR2(9)
*/
- DROP : 테이블의 일부 요소를 삭제할 때 사용하는 구문입니다.
ALTER TABLE dept80
DROP COLUMN job_id;
/*
EMPLOYEE_ID|LAST_NAME |ANNSAL|HIRE_DATE |
-----------+----------+------+-----------------------+
145|Russell |168000|2004-10-01 00:00:00.000|
146|Partners |162000|2005-01-05 00:00:00.000|
147|Errazuriz |144000|2005-03-10 00:00:00.000|
148|Cambrault |132000|2007-10-15 00:00:00.000|
149|Zlotkey |126000|2008-01-29 00:00:00.000|
150|Tucker |120000|2005-01-30 00:00:00.000|
151|Bernstein |114000|2005-03-24 00:00:00.000|
152|Hall |108000|2005-08-20 00:00:00.000|
153|Olsen | 96000|2006-03-30 00:00:00.000|
job_id 컬럼이 삭제된 것을 확인 할 수 있습니다.
*/
테이블 복사 : 서브쿼리문을 이용하여 테이블을 복사하여 생성 할 수 있습니다.
테이블 복사 시 제약 조건은 NOT NULL 조건만 복사가 됩니다.
VIEW :
서브쿼리문을 활용하여 출력 결과를 가상의 테이블로 보여줍니다.
// Syntax
CREATE VIEW 가상 테이블 이름 AS
SELECT 컬럼 명1, 컬럼 명2, 컬럼 명3,...
FROM 테이블명
WHERE 조건
// Ex
CREATE VIEW salvu50 AS
SELECT employee_id id_number, last_name name, salary * 12 ann_salary
FROM employees
WHERE department_id = 50;
/*
ID_NUMBER|NAME |ANN_SALARY|
---------+-----------+----------+
120|Weiss | 96000|
121|Fripp | 98400|
122|Kaufling | 94800|
123|Vollman | 78000|
*/
'개인 공부 > TIL' 카테고리의 다른 글
Linux에서 Apache 띄우기 (0) | 2023.01.02 |
---|---|
TIL #220615 #JSP 게시판 만들기 #Network DNS (0) | 2022.06.15 |
TIL #220614 #DB #JAVA (0) | 2022.06.14 |
TIL #220613 #JSP # JAVA (0) | 2022.06.13 |
TIL #220608 #JSP # DB (0) | 2022.06.08 |