db 6

[DB][oracle] 함수 Function

함수 Function 란 (in Oracle) RETURN문 이용해 원하는 값 반환위해 만드는 것.오라클 함수는 프로시저랑 비슷하지만 IN 파라미터 이용가능. *프로시저와 함수의 차이 - 프로시저: 1.PL/SQL문으로 실행 2.RETURN 이 없음. - 함수1. 식의 일부로 사용2. RETURN 이 반드시 있다. 함수생성 EX) CREATE OR REPLACE FUNCTION test(함수이름) RETURN varchar (리턴값의 데이터타입) IS test VARCHAR2(100);BEGINtest := '함수 테스트';RETURN test; END; 실행쿼리 -> SELECT test() FROM DUAL; 결과 -> 함수 테스트 ** 오라클에서 대입연산자는 =가 아니라 := 이다.

Back-end/DataBase 2019.01.08

[DB] 뷰 VIEW table

뷰 VIEW 가상테이블이다. 즉, 실제 존재하진 않지만 실제 테이블과 똑같이 사용할 수 있다.주로 보안문제로 사용한다. 보여주고자 하는 정보만 빼서 보여주는 것이다. SELECT / INSERT / DELETE / UPDATE 가능하나, 권한이나 조건에 따라 다름복잡한 쿼리문을 (조인/서브 쿼리 등) 미리 뷰로 만들어 사용하면 간단하게 검색 가능 - 이때는 INSERT/ UPDATE/ DELETE 안됨 ) 데이터의 액세스를 제한 - 보안위해 사용. 생성CREATE VIEW 뷰이름AS 뷰 내용 CREATE VIEW 뷰이름(컬럼명, 컬럼명 ... )AS 뷰 내용 수정CREATE OR REPLACE VIEW 뷰이름AS 뷰 내용 삭제 DROP VIEW 뷰이름 EX) 1. 보안적 측면의 뷰 -- 뷰를 생성한다(e..

Back-end/DataBase 2019.01.08

[DB][oracle] 프로시저 Procedure

프로시저란 Procedure (in oracle) 기능(작업단위)를 미리 만들어놓고 호출하여 사용하는것. 빠른 쿼리 실행재사용성 프로시저 생성방법 1. 인수없는 경우 CREATE PROCEDURE 프로시저 이름IS[변수이름 데이터타입; -- 프로시저 내에서 사용할 변수선언변수이름 데이터타입;변수이름 데이터타입;..]BEGIN 기능구현;END; 2.인수있는경우 CREATE PROCEDURE 프로시저 이름(변수이름 IN 데이터타입, 변수이름 IN 데이터타입, ... )IS[변수이름 데이터타입;변수이름 데이터타입;변수이름 데이터타입;..]BEGIN 기능구현;END; 프로시저 호출방법 EXEC 프로시져 이름; --인수없는 경우.EXEC 프로시져 이름(값,값...) --인수있는경우 ex) 메세지 출력 프로시저 C..

Back-end/DataBase 2019.01.08

Database - 정규화란? Normalization

정규화 Normalization RDBMS 설계에서 중복을 최소화하게 구조화 하는 작업을 지칭.목적: 중복의 최소화. 이상현상 Anomaly (called 어노말리)삽입이상, 삭제이상, 갱신이상.삽입/갱신/삭제 작업수행 시 구조적인 오류가 나는 것. 이러한 이상현상을 오류제거를 위해 정규화를 하는 것. 1정규화(1NF = 1 Normal Form)하나의 속성이 단일값(=원자값 =Atomic value)이고, 중복되는 항목이 없어야 한다. 각 행 row의 각 칼럼은 무조건 1개의 고유한 값을 가진다.각 데이터가 전체 행으로 봤을때 칼럼 당 1개의 값을 가지고 중복이 없으면 1정규화를 충족한다고 볼 수 있음. 2정규화 2NF1NF의 속성을 만족하면서, 테이블에 존재하는 모든 함수 종속 관계가 완전함수 종속이..

Back-end/DataBase 2018.06.27

MYSQL 내장함수 Built in functions

내장 함수 Built in functions 집계(통계)함수 **무조건 GROUP BY 와 함께 씀. COUNT(컬럼명) NULL값이 아닌 레코드의 수 SUM(필드명) 해당 필드의 합계 AVG(필드명) 각각의 그룹안에서 필드의 평균값 MAX(필드명) 해당 필드의 최대값 MIN(필드명) 해당 필드의 최소값 날짜 관련 함수 NOW() = SYSDATE() = CURRENT_TIMESTAMP() : 현재의 날짜와 시간 출력. 사용된 쿼리에 따라 출력형식이 달라진다. ex) SELECT NOW() → 2018-02-06 10:50:21ex) SELECT NOW() + 0 → 20180206105021 DATE_FORMAT(날짜컬럼,'형식')ex) DATE_FORMAT(join_date, '%Y-%m-%d') →..

Back-end/DataBase 2018.06.22