본문 바로가기

분류 전체보기

(107)
super, 부모를 가리키는 예약어 ** super, super()를 비교하여 설명하시오 super : 부모클래스 멤버에 접근하고자 할 때 사용 super() : 부모클래스의 생성자를 요구 할 때 사용 => 반드시 첫번째 문장에 와야 함 class Human{ public String toString() { } } class Student extends Human { public String toString() { return super.toString() + " "; } } class Human { public void info() { } } class Student extends Human { public void pro() { info(); // 호출 하게 되면 재정의한 info()가 우선순위가 된다. super.info(); // ..
[Oracle] 제약 조건 (Constraint) 제약 조건명을 명시해주지 않을 경우 ORACLE에서는 자동으로 이름을 부여 제약 조건명은 중복될 수 없으며 제약 조건명이 곧 오브젝트 이름이다 제약 조건명은 일반적으로 '테이블명_대상컬럼_제약조건 종류'를 줄여서 쓰는 것이 암묵적인 규칙 (Ex: 테이블 employees, 컬럼 last_name, 제약조건 NOT NULL => emp_ln_nn) 테이블당 한 번만 쓸 수 있는 경우 Table-Level에서 묶어줘야하고 특별한 경우가 없으면 Column-Level에서 실행한다 제약조건 조회 구문 (오브젝트명, 타입, 조건설명) 타입 코드 설명 C Check on a table O Read Only on a view P Primary Key R Referential AKA Foreign Key U Uniqu..
[Oracle] 데이터 정의어(DDL) 오브젝트 종류 Table - 행을 구성하며 저장의 기본 단위 View - 논리적으로 표현된 하나 또는 여러 개의 테이블 들의 부분집합 Sequence - 숫자 생성기 Index - 일부 쿼리문의 성능 높여줌 Synonym - 오브젝트에 추가적인 이름을 부여함 CREATE (오브젝트 생성) 필수 : 테이블명, 컬럼명, 데이터 타입, 컬럼사이즈 선택 : Default 값, 제약조건 기본 문법 CREATE TABLE 테이블명 ( 컬럼명1 데이터 타입, 컬럼명3 데이터 타입, 컬럼명2 데이터 타입, ... ); 테이블 복사하는 방법 CREATE TABLE 테이블명 AS SELECT * FROM 복사할테이블명 WHERE 1=2; 테이블의 특정 컬럼만 복사하는 방법 CREATE TABLE 테이블명 AS SELECT..
[Oracle] DML - 트랜잭션(Transaction) 논리적인 작업 단위 여러 DML이 모여서 하나의 트랜잭션으로 구성됨 DML 작업 후 commit 또는 rollback으로 트랜잭션 종료해야함 Oracle은 DML 수행 수 rollback이나 commit을 해야 완료되지만 SQL Server는 트랜잭션을 명시적으로 지정하지 않으면 자동 commit된다 이 글의 내용은 Oracle DB에만 해당하는 명령어다 commit (확정) commit을 하고난 뒤에는 rollback하지 못한다 rollback (되돌리기) 되돌리기 실행 후 해당 savepoint 다음에 있는 모든 savepoint는 자동으로 삭제된다 기본 문법 rollback to savepoint insert_포인트명; 하나의 DELETE문으로 100개의 레코드를 삭제할 때 이는 하나의 트랜잭션이기..
[Oracle] 데이터 조작어(DML) DB에 직접적인 영향을 주므로 트랜잭션을 이용하거나 데이터를 미리 확인 후 작업하는 것이 최선의 방법이다 연습 (테이블 복사) 실제 데이터에 영향이 있으므로 아래 DML 구문들을 연습하기에 앞서 사용하던 테이블을 카피하여 연습합니다 CREATE TABLE sales_reps AS (SELECT employee_id id, last_name name, salary, commission_pct FROM EMPLOYEES WHERE 1=2); 위 구문은 employees 테이블의 employee_id, last_name, salary, commission_pct 컬럼에 대하여 WHERE에 적힌 조건이 거짓(1=2)이므로 레코드 값 없이 구조만 그대로 가져올 수 있다 INSERT (행 삽입) 기존의 테이블에 데..
[Oracle] 서브 쿼리(Sub Query) 한 번의 쿼리 구문으로는 원하는 조건을 얻기 어려운 경우 서브쿼리를 사용할 수 있다 실행 순서는 안 쪽에 있는 쿼리 구문이 먼저 실행되며 실행결과를 바깥 쿼리에 넘겨준다 SELECT employee_id, last_name, salary FROM EMPLOYEES e WHERE employee_id IN (SELECT DISTINCT manager_id FROM employees); 위 서브쿼리(SELECT ... employees)의 값은 employees 테이블에서 중복 된 manager_id 값을 제거한 값들만 추려내어 IN 함수를 통해 그 값 중에서 하나라도 일치하는 것이 있다면 SELECT 조회 컬럼에 맞춰 출력한다 서브쿼리의 문법은 다양한 위치에서 활용되는 문법으로, 테이블을 대신할 수 있는 ..
[Oracle] JOIN과 Self-Join JOIN 두 개 이상의 테이블을 연결하여 데이터를 조회할 때 사용하는 구문 아래 예문을 통해 알아보자 SELECT dept.department_id, dept.department_name, dept.location_id, loca.location_id, loca.city FROM departments dept JOIN locations loca ON dept.location_id = loca.location_id; departments 테이블의 별칭은 dept JOIN하는 locations 테이블의 별칭은 loca 보여줄 컬럼은, departments 테이블의 department_id, department_name locations 테이블의 location_id, city JOIN 시 연결시켜줄 조건은,..
[Oracle] 그룹으로 묶는 GROUP BY절과 HAVING절 GROUP BY 보통 검색 된 여러 행을 이용하여 통계 정보를 계산하는데 쓰임 NULL 값은 무시하고 연산 GROUP BY절에 명시 된 컬럼은 SELECT절에 기술해주는 것이 올바른 형태 (없다면 어디서 그룹화한건지, 제목이 없으니 없는 것이나 마찬가지) 기본 문법 SELECT 컬럼, 그룹함수(컬럼) FROM 테이블 [WHERE 조건] GROUP BY 그룹대상 [ORDER BY 정렬대상 [ASC/DESC]] 컬럼이 오고 그룹 함수가 SELECT절에 있으나 GROUP BY절에 컬럼이 없으면 에러가 발생한다 숫자 데이터 입력 받는 함수 AVG ( [DISTINCT | ALL] n ) - 평균 STDDEV ( [DISTINCT | ALL] n ) (Standard Deviation) - 표준편차, 중심에서 관..