반응형

데이터베이스 14

[mysql/mariadb] 계층쿼리 RECURSIVE로 구현

앞서 계층쿼리를 함수로 만들어놓고 호출하는 방법 말고도 쿼리 자체를 재귀로 만들수 있다. WITH RECURSIVE MENU_MGR AS // MENU_MGR 이름을 가진 함수이다. ( SELECT MENU_CD menuCd //코드 정보 , PARN_CD parnCode //부모 코드 , MENU_NM menuNm //코드이름 ,ORDER_SEQC orderSeq //정렬번호 (int형) , 1 lvl // 레벨 FROM YE_MENU_MGR AS MMGR WHERE MENU_CD = 'ROOT' // ROOT부터 시작해서 자식들이 나오게 한다. UNION ALL SELECT MMGR.MENU_CD menuCd , MMGR.PARN_CD parnCode , MMGR.MENU_NM menuNm ,ORDE..

데이터베이스 2019.05.27

[mysql/mariadb] 계층쿼리 함수생성 및 호출로 구현

계층쿼리를 만드는 방법은 함수로 구현하는 방법과 그냥 생쿼리로 짜는 방법이 있다. 그 중 함수로 구현하는 방법을 정리했다. 함수도 int파라미터로 받는 방법과 varchar로 받는 방법이 있는데 두 방법이 큰 차이가 있지는 않다. 1. varchar파라미터로 받는 방법 DROP FUNCTION IF EXISTS GET_DEPT_TREE; DELIMITER $$ CREATE FUNCTION GET_DEPT_TREE(value VARCHAR(50)) RETURNS VARCHAR(50) //파라미터, 리턴타입 맞춰준다. NOT DETERMINISTIC READS SQL DATA BEGIN DECLARE _menuCd VARCHAR(50); //함수내 변수 메뉴코드 DECLARE _parnCd VARCHAR(5..

데이터베이스 2019.05.23

[ORACLE] 시노님(SYNONYM)

시노님이란? 동의어, 유의어 데이터베이스 상에서 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름( Alias )이다. 실질적인 객체를 대체하는 이름이다. 시노님은 1. 데이터베이스의 투명성을 제공한다. 2. 실무에서 다른 유저의 객체를 참조할 때 시노님을 생성하여 사용하면 참조하고 있는 오브젝트가 이름을 바꾸거나 이동할 경우 객체를 사용하는 SQL문을 모두 고치는것이 아니라 시노님 이름만 다시 정의하면 된다. 3. 객체의 긴 이름을 짧은 이름으로 대체할 때 편리하다. 4. 객체를 참조하는 사용자의 오브젝트를 감출 수 있기때문에 보안을 유지할 수 있다. **시노님을 사용하는 유저는 참조하고 있는 객체에 대한 소유자, 이름, 서버이름을 모르고 시노님 이름만 알아도 사용할 수 있다.

데이터베이스 2017.09.29

[mysql] VIEW

-- 참고 : http://warmz.tistory.com/entry http://www.cubrid.org/VIEW란?가상의 테이블이다.테이블이 아니지만 테이블처럼 행동하게 할 수 있다.설정을 어떻게 하느냐에 따라서 업데이트를 가능하게 할 수도, 불가능하게 할 수도 있다. ( 하지만 데이터 삽입 및 삭제는 테이블에 작업하는게 낫다 )조인이나 유니온을 뷰로 만들면 쿼리를 단순하게 만들 수 있다. VIEW 생성CREATE VIEW 뷰이름 ASSELECT 열1, 열2 FROM 테이블이름WHERE 조건; VIEW 조회SELECT * FROM 뷰이름; VIEW 삭제DROP VIEW; VIEW 구조 보기DESC 뷰이름; 모든 VIEW보기SHOW TABLES; (테이블과 같이 나옴) VIEW의 장점 --필요한 데이..

데이터베이스 2016.02.18

[mysql] UNION

-- 참고 : http://warmz.tistory.com/entryUNION이란?테이블을 조인과는 다른 방식으로 합치는것.두 개 이상의 테이블을 합집합처럼 합친다. 예제)SELECT * FROM BOOKS1UNIONSELECT * FROM BOOKS2UNIONSELECT TITLE FROM BOOKS3ORDER BY TITLE; 쿼리를 사용하면 하나의 테이블처럼 보여진다.단, 주의사항이 있다. --각 SELECT문의 열 수는 같아야한다. --각 SELECT문의 집계함수도 같아야 한다. --SELECT문의 순서는 결과에 영향을 미치지 않는다. --유니온의 결과 중복값은 하나의 행으로 나온다. ( 중복값을 보고싶으면 UNION ALL을 사용) --ORDER BY는 유니온의 맨 끝에 하나만 받을 수 있다.

데이터베이스 2016.02.18

[mysql] JOIN

-- 참고 : 생활코딩 mysql수업JOIN이란?데이터 규모가 커지면서 하나의 테이블로 정보를 수용하기가 어려워지면 테이블들을 분할하고 테이블들의 관계를 부여하여분리되어있던 정보를 합치는 작업이다.테이블을 분할하는 요령은 같은 종류의 데이터가 여러개의 열로 표현해야한다면 분할시킨다.예를들면 첨부파일1, 첨부파일2, 첨부파일3... 처럼 데이터 수가 많이 늘어나야한다면첨부파일 테이블을 따로 만든다.모델링은 심오하고 복잡한 이야기이니 지금은 이정도로만 하고 조인에 대해서 이야기한다. 크게 세가지 종류가 있다.INNER JOIN / OUTER JOIN / SELF JOIN 1. INNER JOIN (내부 조인) --조인하는 두 개의 테이블 모두에 데이터가 존재하는, 관계있는 데이터만 합쳐준다. --자식이 있는..

데이터베이스 2016.02.18

[mysql] index

-- 참고 : 생활코딩 mysql수업--설계시 참고사항 : http://egloos.zum.com/tiger5net/v/5660848인덱스란?--색인, 조회할 때 원하는 행을 빠르게 찾을 수 있게 준비해둔 데이터--일명의 책갈피를 꽂아놓아서 일반 검색보다 더 빠르게 데이터를 가져올 수 있음--테이블이 쿼리에 있는 컬럼에 대한 인덱스를 갖고있다면, mysql은 모든 데이터를 조사하지않고 데이터 파일의중간에서 검색위치를 빠르게 잡아낸다. 인덱스의 종류1. primary key : 중복되지 않는 유일한 키 (ex. id값)각각의 행을 테이블에서 식별하는 유일무이한 키가장 고속으로 데이터를 가져올 수 있음 2. unique key : 중복을 허용하지 않는 유일한 키테이블 전체를 통틀어 중복되지않는 값을 지정해야..

데이터베이스 2016.02.12

[mysql] 데이터 조회 (select문)

-- 참고 : 생활코딩 mysql수업 http://www.unclecho.com/bbs/board.php?bo_table=mysql&wr_id=7 간단간단 SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY 원하는 행을 필터링 : WHERE 그룹을 묶어서 조회 : GROUP BY 정렬 : ORDER BY 자세히 SELECT [DISTINCT] 필드명, 필드명 FROM 테이블명, 테이블명 WHERE 검색조건 AND/OR 검색조건 LIKE ''/ IN ('조건', '조건') GROUP BY 필드명, 필드명 HAVING 검색조건 //GROUP BY로 집계한 결과를 사용하고 싶을때 ORDER BY 필드명 ASC/DESC, 필드명 ASC/DESC LIMIT 시작행, 데이터 뽑을갯..

데이터베이스 2016.02.09

[mysql] 데이터 삽입, 수정, 삭제

-- 참고 : 생활코딩 mysql수업데이터 삽입1. INSERT INTO table_name VALUES (value1, value2, value3,...)2. INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...) --예제 1. INSERT INTO `books` VALUES ('2', 'java의 정석', '남궁성', '자바개념', '3') 2. INSERT INTO `books` (`id`, `title`, `riter`, `summery`, `likes`) VALUES ('1', 'angularJS 프로그래밍', '고재도', '앵귤러', '1'); 데이터 수정UPDATE 테이블명 SET 컬럼..

데이터베이스 2016.02.02
반응형