Oracle SQL 함수의 종류로는 단일행 함수와 그룹함수가 있다. 단일행 함수 모든 행에 대해서 각각 적용되어 행의 개수와 동일한 개수를 반환하는 함수이다. SELECT WHERE ORDER BY 절에 사용 가능하다. [SQL] 단일 행 함수 (Single-Row Funtion) 단일행 함수(Single-Row Function) 란 모든 행에 대해서 각각 적용되어 행의 개수와 동일한 개수를 반환하는 함수를 의미한다. SELECT WHERE ORDER BY절에 사용 가능하다. 문자처리 함수 함수 설명 INITCAP() 첫 gangintheremark.tistory.com 그룹 함수 여러 행 또는 테이블 전체에 대해 함수가 적용되어 하나의 결과를반환하는 함수이다. [SQL] 그룹 함수 그룹 함수는 여러 행..
기본적으로 테이블에 저장된 데이터는 정렬되어 있지않다. 따라 데이터를 조회할 때 특정 컬럼을 기준으로 정렬해서 검색해야 한다. ORDER BY의 옵션으로 오름차순인 ASC와 내림차순인 DESC 가 있으며 기본은 오름차순이다. 수치데이터 정렬 -- 월급이 가장 높은 순서로 출력 SELECT employee_id,last_name, salary FROM employees ORDER BY salary DESC; -- 별칭(alias)으로 지정 가능 SELECT employee_id,last_name, salary as 월급 FROM employees ORDER BY 월급 DESC; -- SELECT 절에서 지정된 컬럼의 순서값으로 지정 가능 SELECT employee_id,last_name, salary a..
SELECT문에 WHERE절을 추가하여 특정 조건에 일치하는 데이터만 조회할 수 있다. 비교 연산자 두 개의 값을 비교할 때 사용하는 연산자를 비교 연산자라 한다. = != ^= > >= '07/12/31'; 💡 Oracle은 기본적으로 날짜 데이터를 RR/MM/DD 형식으로 관리한다 💡 SQL문은 대소문자를 구별하지 않지만 데이터 값인 리터럴은 대소문자를 구별한다. BETWEEN a AND b 연산자 -- 월급이 7000과 8000 사이에 있는 사원 조회 SELECT employee_id,last_name FROM employees WHERE salary BETWEEN 7000 AND 8000; -- 2007년부터 2008년 사이에 입사한 사원 조회 SELECT employee_id,last_name ..
✨ SELECT문 구조 ✨ SELECT FROM [WHERE 조건식] 👉 WHERE 바로가기 [GROUP BY 단순 컬럼] 👉 GROUP BY 바로가기 [HAVING 조건식] 👉 HAVING 바로가기 [ORDER BY 표현식]; 👉 ORDER BY 바로가기 SELECT문은 데이터베이스에 저장된 데이터를 검색할 때 사용되는 SQL문장으로 DQL (Data Query Lanuage) 라고 한다. SELECT와 FROM키워드를 기본으로 사용하며 SELECT 키워드는 원하는 컬럼을 지정할 때 사용되고 FROM은 데이터가 저장된 테이블명을 기술할 때 사용된다. 모든 데이터 조회 -- * 은 모든(all) 컬럼을 의미하기 때문에 모든 데이터가 검색 SELECT * FROM 테이블명; 특정 데이터 조회 SELECT ..
JDBC JAVA 언어를 사용하여 응용프로그램을 개발하는 경우, 가장 널리 사용되는 표준적인 DBMS 인터페이스 방식 DBMS에 접근하여 데이터를 사용하기 위한 Java API 제공 💡 기능 DBMS 서버에 접속 SQL 문을 전송 전달된 결과를 처리 💡 종류 🎀 Type 1: JDBC-ODBC 브리지와 ODBC 드라이버 사용 🎀 Type 2: Native-APi (클라이언트 라이브러리) + Java JDBC 드라이버 🎀 Type 3: 순수 Java JDBC 드라이버 + 서버 라이브러리 🎀 Type 4: 순수 Java JDBC 드라이버 Type1, Type2는 드라이버 외 부가적인 라이브러리 사용 Type3, Type4는 드라이버 외 부가적인 라이버러리 사용 X Type3은 여러 DBMS에 접근 가능 Ty..
트리거 테이블에 이벤트가 발생하면 자동으로 실행되는 작업 데이터베이스 작업을 제한하거나, 작업의 기록log, 작업에 대한 감사audit를 수행하기 위해 사용 트리거의 구성요소 : 이벤트, 조건, 동작 행 트리거 : 테이블 내에 변경되는 행에 대해 각각 실행 문장 트리거 : INSERT UPDATE DELETE 문장 전체에 대해 실행 [트리거 정의] CREATE\[OR REPLACE\] TRIGGER \[BEFORE|AFTER\] \[INSERT|UPDATE|DELETE\] ON \[FOR EACH ROW|FOR EACH STATEMENT\] \[WHEN condition\] BEGIN ... END; [트리거 삭제] DROP TRIGGER [트리거 카탈로그] ALL_TRIGGERS : 데이터베이스 내의 ..
함수 SP와 동일하게 데이터베이스에 저장되는 서브루틴이며 값을 리턴할 수 있다 함수는 SQL 문장 내에서 사용 가능 [함수 정의] CREATE\[OR REPLACE\] FUNCTION { \[IN|OUT|IN OUT\] (data\_type), \[IN|OUT|IN OUT\] (data\_type), ... } IS|AS ... return data\_type; BEGIN ... return expression; END; [함수 삭제] DROP FUNCTION [함수 카탈로그 정보] ALL_OBJECTS : where 절 조건에 object_type = 'FUNCTION' 사용 USER_PROCEDURES : 사용자가 정의한 프로시저 및 함수 USER_SOURCE : 함수 소스 코드( 컴파일 에러 발생도..
저장 프로시저(SP, Stored Procedure) 데이터베이스 내에 저장된 서브루틴 영구저장모듈(PSM) 이라고도 함 데이터 뿐만아니라 처리 로직을 DB에 저장할 수 있음을 의미 SQL/PSM 표준이 있으나 DBMS 별로 구문에 차이가 존재 Oracle의 경우 PL/SQL : 표준 SQL 언어 + 변수, 정의, 조건문, 반복문 등의 기능을 가짐 범용 프로그래밍 언어 사용 가능 (Oracle의 경우 Java) 💡 저장프로시저의 장점 하나의 요청으로 일련의 SQL문을 수행 미리 컴파일되어 있는 코드를 실행하므로 처리시간이 줄어듬 응용프로그램 수준의 데이터 무결성 관리를 대신함 응용프로그램을 수정하지 않고서도 프로그램의 동작을 변경 💡 저장프로시저의 단점 DBMS 별로 SP 지원 방식 및 기능에 차이가 있..
View 란? 다른 테이블로 유도된 가상의 테이블 기본 테이블은 데이터가 실제 데이터베이스에 저장되지만 뷰의 경우 정의만 저장 뷰를 기반으로 새로운 뷰를 정의할 수 있음 create view [컬럼 이름 리스트] as select 문 [with check option]; -- where 절이 만족되는지 체크 (생략가능) select 문은 union 또는 order by를 포함할 수 없음 컬럼명을 지정하지 않으면 select 결과의 컬럼명과 동일 View 의 확인 all_catalog : 테이블, 뷰, 시퀀스 확인 all_view : 뷰의 정의 확인 View 의 삭제 drop view [restric|cascade] restric : 가 다른 곳에 사용되지 않을 때만 삭제 cascade : 해당 뷰를 사용..
부속질의 select문 안에 포함된 select문 --'C413'과목을 등록한 학생 이름을 검색하라 select sname from STUDENT where sno in (select sno from ENROL where cno = 'C413'); --학번이 100인 학생과 동일한 학과에 속한 학생을 모두 찾아라 select sname from STUDENT where dept = (select dept from STUDENT where sno = 100 ); 카티션 프로덕트 from절에 여러 개의 테이블을 지정하면 카티션 프로덕트 생성 select * from STUDENT, ENROL; 조인 Join은 자식테이블의 외래키와 부모테이블의 기본키 사이에서 자주 사용 아무 관계가 없는 테이블의 컬럼들 사이..
데이터 조작어 데이터 조작을 위해서는 CREATE, READ, UPDATE, DELETE 연산이 가능해야함 SQL의 DML은 insert, select, update, delete 명령문에 해당 💡insert insert into values (...); 💡 update : 레코드 값을 변경 update set , ... (where 조건식) 💡 delete : 테이블 내 행 삭제 delete _\-- 테이블 내의 모든 행 삭제_ delete where 조건식 _\-- 조건에 해당하는 행 삭제_ 🎀 delete와 drop table 과의 차이점 drop table은 테이블의 정의까지 삭제 delete는 테이블 정의는 남아있음 💡 commit 이전 commit 시점부터 현재 commit 명령 실행 시점까지..
💡 select : 조건에 맞는 데이터를 검색 select 컬럼1, 컬럼2 ... from [where ] -- '산공'과 4학년 학생들의 이름을 찾아라 select sname from student where dept = '산공' and year = 4; -- 기말고사 또는 중간고사의 성적이 90점 이상인 학생들의 학번을 찾아라 select sno from enrol where midterm < finterm; 💡 select distinct : 중복된 레코드는 한 번만 출력 💡 order by : select 결과를 정렬하여 출력 asc : 오름차순 desc : 내림차순 select * from order by 컬럼1 [asc|desc]; select * from STUDENT order by yea..