2025년 7월 17일 목요일(37일차)

Jeonghoon·2025년 7월 17일

jeonghoon's Study

목록 보기
39/128

🧠 SQL DML & Java Inheritance · Interface 복습 정리


💾 [ DML (데이터베이스 조작어) ]

데이터베이스의 데이터를 조작하는 명령어

명령어설명예시
🟢 INSERT데이터 추가INSERT INTO table(col1, col2) VALUES (val1, val2);
🟢 INSERT (전체속성)속성명 생략 가능INSERT INTO table VALUES (val1, val2);
🟢 INSERT (다중)여러 개의 레코드 삽입INSERT INTO table VALUES (1,'A'), (2,'B');
🔵 SELECT데이터 조회SELECT * FROM table;
🔵 SELECT (조건)조건에 맞는 데이터 조회SELECT name FROM table WHERE age > 20;
🟣 UPDATE데이터 수정UPDATE table SET name='홍길동' WHERE id=1;
🔴 DELETE데이터 삭제DELETE FROM table WHERE id=1;

🔍 [ SELECT 문법 심화 ]

구분키워드설명예시
🏷️ 별칭 지정AS속성 또는 테이블에 별칭 부여SELECT name AS 이름 FROM member;
🧩 중복 제거DISTINCT중복된 값 제거SELECT DISTINCT city FROM member;
산술연산자+, -, *, /, DIV, MOD계산 수행SELECT price * qty FROM buy;
⚙️ 조건연산자>, <, =, !=, >=, <=값 비교SELECT * FROM emp WHERE age >= 30;
🔗 논리연산자AND, OR, NOT조건 결합SELECT * FROM emp WHERE dept='IT' AND age<40;
🔢 범위검색BETWEEN, IN특정 범위 또는 목록 내 검색WHERE score BETWEEN 70 AND 100
🚫 NULL 검사IS NULL, IS NOT NULLNULL 여부 확인WHERE phone IS NULL
🔤 문자패턴LIKE, %, _문자열 패턴 검색LIKE '김%', LIKE '홍_'
📊 정렬ORDER BY오름/내림차순 정렬ORDER BY age DESC
⏱️ 조회개수 제한LIMIT조회 결과의 개수 제한LIMIT 0, 10

💡 2중 정렬 예시

SELECT name, age, dept
FROM employee
ORDER BY dept ASC, age DESC;

🧬 [ 상속 (Inheritance) ]

상위 클래스의 멤버(변수, 메소드)를 하위 클래스가 물려받아 사용하는 개념

구분설명
🧩 멤버변수각 객체마다 독립적으로 할당됨
⚙️ 메소드모든 인스턴스가 공유함
🔄 오버라이딩부모의 메소드를 자식이 재정의
🔁 자동 타입변환자식 → 부모 자동 변환 가능
⚠️ 강제 타입변환부모 → 자식은 명시적 캐스팅 필요
🧱 객체 생성 시자식 객체 생성 시 부모 객체도 함께 생성

📘 예시 코드

class Parent {
    void print() { System.out.println("부모 클래스"); }
}

class Child extends Parent {
    @Override
    void print() { System.out.println("자식 클래스"); }
}

Parent p = new Child(); // 자동 타입 변환
p.print(); // "자식 클래스"

🔗 [ 인터페이스 (Interface) ]

서로 다른 시스템 간의 연결 및 다형성을 구현하기 위한 구조체

항목설명
⚙️ 정의서로 다른 시스템이 동일한 목적을 수행하도록 연결
🧩 목적다형성 구현, 호환성 향상, 표준화
🔗 형태interface 인터페이스명 { }
🧱 구현class 클래스명 implements 인터페이스명 { }
🚫 생성자인터페이스에는 생성자가 없음
🔒 상수 선언public static final int A = 10; (자동으로 적용됨)
💡 추상메소드 선언구현부 {} 없이 선언만 존재

📘 예시

interface RemoteControl {
    void powerOn();
    void powerOff();
}

class TV implements RemoteControl {
    public void powerOn() { System.out.println("TV 전원 ON"); }
    public void powerOff() { System.out.println("TV 전원 OFF"); }
}

🧠 익명구현체

RemoteControl radio = new RemoteControl() {
    public void powerOn() { System.out.println("라디오 ON"); }
    public void powerOff() { System.out.println("라디오 OFF"); }
};
radio.powerOn();

🧩 [ 추상 메소드 ]

개념설명
🧠 정의구현부가 없는 메소드로, 구현체에서 반드시 오버라이딩 필요
🧱 형식void run();
🔄 구현인터페이스 또는 추상클래스를 통해 구현
🔗 타입변환상속과 마찬가지로 자동/강제 변환 가능

📘 예시

interface Animal {
    void sound();
}

class Dog implements Animal {
    public void sound() { System.out.println("멍멍"); }
}

💬 [ 개념 비교 요약 ]

구분상속 (Inheritance)인터페이스 (Interface)
🔗 키워드extendsimplements
🧱 목적코드 재사용표준화 및 다형성
⚙️ 구성요소변수, 메소드, 생성자 포함상수, 추상메소드만 포함
🧠 객체 생성가능불가능
🔄 다중 상속 여부불가능가능

0개의 댓글