개인 공부/TIL

TIL #Java 인터페이스 #DB ALTER, DROP, VIEW

kaleb 2022. 6. 20. 22:19
728x90

오랜만에 찾아 뵙습니다. 주말에 코딩테스트를 치면서 쉬는듯 혼나는 듯이 살다가 이제서야 정신차리고 돌아왔습니다.

코딩테스트를 처음 응시 해보면서 느낀점이 많습니다.  약간의 방향성이 잡혀서 계속해서 지원해보면서 연습해보면 좋을 것 같습니다. 주말에는 어려울지도 모르겠지만 평일에 더 열심히 하도록 하겠습니다.!!!

 

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