데이터베이스의 데이터를 조작하는 명령어
| 명령어 | 설명 | 예시 |
|---|---|---|
| 🟢 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; |
| 구분 | 키워드 | 설명 | 예시 |
|---|---|---|---|
| 🏷️ 별칭 지정 | 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 NULL | NULL 여부 확인 | 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;
상위 클래스의 멤버(변수, 메소드)를 하위 클래스가 물려받아 사용하는 개념
| 구분 | 설명 |
|---|---|
| 🧩 멤버변수 | 각 객체마다 독립적으로 할당됨 |
| ⚙️ 메소드 | 모든 인스턴스가 공유함 |
| 🔄 오버라이딩 | 부모의 메소드를 자식이 재정의 |
| 🔁 자동 타입변환 | 자식 → 부모 자동 변환 가능 |
| ⚠️ 강제 타입변환 | 부모 → 자식은 명시적 캐스팅 필요 |
| 🧱 객체 생성 시 | 자식 객체 생성 시 부모 객체도 함께 생성 |
📘 예시 코드
class Parent {
void print() { System.out.println("부모 클래스"); }
}
class Child extends Parent {
@Override
void print() { System.out.println("자식 클래스"); }
}
Parent p = new Child(); // 자동 타입 변환
p.print(); // "자식 클래스"
서로 다른 시스템 간의 연결 및 다형성을 구현하기 위한 구조체
| 항목 | 설명 |
|---|---|
| ⚙️ 정의 | 서로 다른 시스템이 동일한 목적을 수행하도록 연결 |
| 🧩 목적 | 다형성 구현, 호환성 향상, 표준화 |
| 🔗 형태 | 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) |
|---|---|---|
| 🔗 키워드 | extends | implements |
| 🧱 목적 | 코드 재사용 | 표준화 및 다형성 |
| ⚙️ 구성요소 | 변수, 메소드, 생성자 포함 | 상수, 추상메소드만 포함 |
| 🧠 객체 생성 | 가능 | 불가능 |
| 🔄 다중 상속 여부 | 불가능 | 가능 |