Cheers Hena ;) 259

SQL - CURSOR 커서

CURSOR 커서 일반적으로 모니터에서 해당 위치를 알려주고 입력대기중을 알리는 깜빡이는 것을 나타냄.같은 맥락으로 SQL에서의 커서는 메모리상에서 SQL이 실행되는 위치를 가리킨다. 커서를 통해, 메모리에 존재하는 SQL문 실행결과를 바로 접근하여 패치(Fetch)할 수 있다. (메모리 영역은 SQL문 실행 및 처리 결과를 저장하는 곳.) 이때 커서는 현재 처리하고 있는 row를 가리킨다.실행결과를 1개의 row씩 차례로 처리하며, 마지막 처리가 끝나면 커서를 닫는다.처리할 데이터가 방대할때, 수많은 row를 처리하기 위해 명시적 커서를 선언 및 제어한다. Explicit Cursor 명시적 커서 프로그래머에 의해 직접 선언되고 이름을 지정할 수 있다.Query결과를 첫 행부터 차례대로 처리하고, 수동..

[SQL]데이터 검증 - 중복 데이터 제거.

SQL 데이터 검증. 중복 데이터 제거 중복된 데이터를 찾고/ 그 데이터의 기본키를 찾아 /기본키를 조건으로 해당 데이터 삭제. 1. 중복 데이터 찾기.찾고자하는 데이터 칼럼을 그룹별로 나누어 조회하면 같은것끼리 묶여 그룹지어진다. 이때, 데이터 수를 COUNT()할때, 중복이 아니면 1개가, 중복인 경우 1개 이상이 된다. 그룹에 대한 조건인 HAVING 을 사용하여 COUNT한 값이 1이상인 데이터만 조회하면 중복인 데이터들만 조회할 수 있다. 예) customer 테이블에서 중복된 id를 구한다고 가정. (PK: cus_no) SELECT id, COUNT(id) FROM customer GROUP BY idHAVING COUNT(id) > 1; // 그룹에 대한 조건.HAVING 2. 중복 데이터..

Back-end/DataBase 2018.07.01

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

sql 활용 연습문제.

sql 활용 연습문제 및 쿼리. 1. 각 [도/광역시]별 [시/군/구]의 개수를 조회하라.--기준: 도/광역시별(province) 조건:- 컬럼: 도/광역시, 시군구 개수 SELECT prvn_name, COUNT(distc_cd) FROM province p JOIN district d ON p.prvn_cd = d.prvn_cd GROUP BY p.prvn_cd; 2. 각 [도/광역시]의 [시/군/구]별 관광지 개수를 조회.--기준:도광역시. 시군구 조건:- 컬럼: 도광 이름, 시군구 이름, 관광지개수 SELECT p.prvn_cd,p.prvn_name,d.distc_cd,d.distc_name, COUNT(a.attrc_cd) FROM attraction a JOIN district d ON a.p..

Back-end/DataBase 2018.06.25

[DB]Transaction 트랜잭션이란?

Transaction 트랜잭션이란? 데이터베이스의 상태 변화시키기 위해 수행되는 작업의 단위.(✽데이터 베이스의 상태변화란? SELECT, INSERT, DELETE, UPDATE등의 질의어(SQL)이용하여 디비에 접근하는 것.)이때, 작업의 단위는 질의어 한문장이 아니다! 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다. ◼︎Transaction 특징원자성 (Atomicity) 트랜젝션이 데이터베이스에 모두 반영되던가 , 그렇지 않으면 전혀 반영되지 않아야 한다. 트랜잭션은 사람이 설계한 논리적 작업단위로, 처리는 기준설정 해놓은 작업단위 별로 이루어져야 한다. 일관성 (Consistency) 트랜잭션의 작업처리 결과가 항상 일관성이 있어야 한다. 트랜잭션 진행동안 데..

Back-end/DataBase 2018.06.22

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

SQL - View 뷰란? Trigger 트리거란?

View 뷰SELECT 한 결과를 가상 테이블에 저장한 것. 실제 테이블이 아니기 때문에 view의 행row와 컬럼column에는 값이 존재하지 않는다. xx테이블의 yy칼럼과 zz칼럼을 AA란 조건으로 모아놓은 것 데이터를 추출하기 위한 또다른 정보 집합체. 사용자가 원하는 칼럼만, 원하는 조건으로 데이터를 모아둘 수 있기 때문에 편리함. 가상이지만, 테이블이기때문에 테이블 목록에 표시된다.e.g. Trigger 트리거테이블에 대해 어떠한 처리 (입력, 수정, 삭제 등..) 을 할때 미리 설정해 둔 작업을 자동으로 실행하게 하는 것.입력 수정 삭제 등이 실행되기 전/후로 나뉘어 작업을 실행할 수 있음. 예를 들어 고객담당 부서에서 고객들에게 전체sms 전송 서비스를 제공한다고 할때, 고객담당부서는 개발..

Back-end/DataBase 2018.06.22

[java]자바에서 인덱스란? Index

INDEX의 의미RDBMS에서 검색속도를 높이기 사용하는 하나의 기술.INDEX = 색인해당 TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 full scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 함.INDEX는 TREE구조로 색인화. RDBMS 에서 사용하는 INDEX는 Balance Search Tree 를 사용. 기본키는 인덱스를 가짐. 외래키는 안가짐. 외래키를 따라가면 기본키가 나오는데 그 기본키가 인덱스를 가지는 것이다. INDEX의 원리 INDEX를 해당 컬럼에 주게 되면 초기 TABLE생성시 만들어진 MYD(MySQL Data),MYI(MySQL Index),FRM(Format) 3개의 파일중에서 MYI에 해당 컬럼을..

SQL - Procedure 프로시저란?

Procedure 프로시저 란? 여러개의 SQL을 하나의 SQL처럼 정리하여 사용하고자 하는 것.실행결과를 반환하지 않는다. 즉, return 이 없다. 서버에서 실행되기 때문에 속도가 빠름. 서버에 저장됨 (=stored procedure)SQL에서 사용할 수 없다. ex) select 프로시저() (X) call 프로시저() (O) Function은 주로 간단한 값 계산. Procedure는 복잡한 계산의 결과를 얻기 위해 계산 과정을 쪼개놓은것.예를 들어 어떤 테이블의 데이터를 가지고 여러 테이블의 데이터를 새로 만들거나, 없는 데이터를 찾아서 자동적으로 넣어주는 경우 또는 월별 통계를 내는 경우 등등의 경우 사용된다. Function으로도 기능 구현은 가능하지만, 펑션은 하나의 결과값만을 리턴 하..

Back-end/DataBase 2018.06.22

SQL - Function 함수란?

Function 함수(기능)(like methods of java.. ) 주로 간단한 연산, 수치 변환 등 위해 사용 프로시저와 유사하나 결과 값 반환. 즉, return 이 반드시 있다. 결과값 하나를 돌려줌, 서버가 아닌 클라이언트(사용자의 컴퓨터)에서 실행 (프로시저보다 느림.) DECLARE 변수명 타입;SELECT '기능' INTO 변수명;RETURN 변수명; e.g)BMI 지수를 계산하는 함수를 생성.식: (체중/(신장*신장)) * 10000 함수명: get_bmi_indicator ->>CREATE FUNCTION `get_bmi_indicator` (weight INT,tall INT) RETURNS INTEGER BEGIN DECLARE _return INT; SELECT (weight/..

Back-end/DataBase 2018.06.21