전체 글 361

MySQL - 전체 텍스트 인덱스

전체 텍스트 인덱스(FULLTEXT Index)란 ? 전체 텍스트 인덱스(FULLTEXT Index)란 텍스트로 구성된 문자열 데이터의 내용을 가지고 생성한 인덱스입니다. 예를 들어, 텍스트로된 자기소개나 신문기사, 레시피, 포털 사이트 데이터 같은 경우에 텍스트 내용의 일부만 가지고 검색을 한다고 가정하면, 일반 인덱스로는 적절하지 않을 것 이고, SELECT할 때 전체 페이지를 전부 검색한다면 시간이 굉장히 오래 걸릴 것입니다. 그래서 MySQL은 전체 텍스트 인덱스를 제공합니다. MySQL에서 전체 텍스트 인덱스와 일반적인 인덱스의 차이점은 아래와 같습니다. InnoDB와 MyISAM 테이블만 지원한다. 자료형이 CHAR, VARCHAR, TEXT인 열에만 생성이 가능하다. 여러개의 열에 FULLT..

Database/SQL 2020.12.31

MySQL - 트리거

트리거 란? 트리거(Trigger)는 사전적 의미로 '방아쇠'라는 뜻입니다. MySQL에서 트리거는 테이블에서 어떤 이벤트가 발생했을 때 자동으로 실행됩니다. 즉, 어떤 테이블에서 특정한 이벤트가 발생했을 때, 실행시키고자 하는 작업들을 자동으로 수행할 수 있게끔 트리거를 미리 설정해 두는 것입니다. 예를 들어 A 테이블의 내용이 삭제 되었을 시에 백업 테이블에 삭제된 내용, 삭제한 사용자, 시간을 기록하게 할 수 있습니다. 직접 실행시킬 수 없고 해당 테이블에 해당 이벤트가 발생할 때 실행된다. 트리거를 사용해서 데이터 무결성을 유지할 수 있다. MySQL에서는 View에 부착할 수 없다. 트리거 형식 DROP TRIGGER IF EXISTS trig1 -- 트리거가 이미 있을 시 삭제 DELIMITE..

Database/SQL 2020.12.29

MySQL - 스토어드 함수

스토어드 함수는? DELIMITER $$ CREATE FUNCTION 스토어드 함수명(파라미터명) RETURNS 반환 자료형 BEGIN .. 프로그래밍 코딩 RETURN 반환값; END $$ DELIMITER ; -- SELECT 스토어드 함수명(); 기본적인 스토어드 함수의 형식입니다. 스토어드 함수는 스토어드 프로시저랑 상당히 유사하며 아래는 차이점입니다. 파라미터에 IN, OUT 등을 사용할 수 없고, 모두 입력 파라미터로 사용된다. RETURNS로 반환할 값의 데이터 형식을 지정해주고, BEGIN에서 하나의 값을 반환해야 한다. 프로시저는 CALL로 호출하고, 스토어드 함수는 SELECT 문장에서 호출한다. 스토어드 함수안에서는 SELECT(조회)할 수 없다. - SELECT INTO는 조회가 아..

Database/SQL 2020.12.29

MySQL - 스토어드 프로시저

스토어드 프로시저란? 스토어드 프로시저(Stored Procedure, 저장 프로시저)는 MySQL이 제공하는 프로그래밍 기능입니다. 테이블처럼 데이터베이스 개체 중의 한 가지이므로, 데이터베이스 내부에 저장됩니다. 주로 어떠한 동작들을 모아서 모듈화 시켜서, 필요할 때마다 호출만 하는 것으로 편리하게 MySQL을 운영할 수 있도록 합니다. MySQL의 성능을 향상시킬 수 있음 - 복잡하게 구현된 긴 코드를 전부 통신하지 않고, 프로시저를 한번 호출하는 SQL문만 통신하면 되기 때문에 네트워크에 부하를 줄일 수 있음 유지관리가 용이함 - SQL문을 직접 작성하지 않고, 프로시저명만 호출하면 되므로 일관된 유지보수를 할 수 있고, 직관적임. 보안이 강화됨 - 사용자에게 테이블의 접근 권한을 주지 않고, 프..

Database/SQL 2020.12.29

MySQL - 인덱스 정리! (클러스터 인덱스, 논 클러스터 인덱스)

인덱스는? 인덱스가 없더라도 데이터베이스를 '작동'하는데는 문제가 없습니다. 하지만 인덱스는 데이터베이스의 성능(속도)를 크게 좌우하는 요소입니다. 데이터베이스가 크면 클 수록, 인덱스가 반드시 필요해질 것입니다. (책이 두꺼울 수록 원하는 내용을 찾기 힘들고, 정렬이나 , 등이 필요해지는 원리) 인덱스를 사용하는 SQL을 만들어 효율적으로 사용한다면 매우 빠른 응답 속도를 얻을 수 있고, 쿼리의 부하가 줄어들기 때문에 시스템 전체 성능이 향상됩니다. 하지만 인덱스는 데이터베이스에 추가적인 공간을 할당해줘야 하고, 잘못 사용할 경우 성능이 오히려 크게 떨어질 수 있습니다. (ex. 변경 작업이 자주 일어나는 경우, 인덱스가 적절하지 않은 경우) 인덱스의 종류 MySQL에서 인덱스의 종류는 두 가지가 있습..

Database/SQL 2020.12.28

MYSQL - UNION / UNION ALL / IN / NOT IN 정리

UNION / UNION ALL UNION은 두 쿼리의 결과를 합치는 것을 말합니다. 이는 열의 개수가 일치하고 각 쌍의 데이터 타입들이 호환되는 두 쿼리에서만 작동합니다. 다음은 예시입니다. SELECT stdName, addr FROM mathClassTBL UNION ALL SELECT stdName, addr FROM engClassTBL; 두 쿼리는 열의 개수가 같아야 하고, 데이터 형식도 각 쌍이 같거나 호환되어야 합니다. 열 이름은 첫 번째 쿼리를 따릅니다. ALL을 붙히면 중복된 열까지 모두 출력되고, ALL을 제거하고 UNION만 사용하면 중복된 열은 제거됩니다. IN / NOT IN IN은 첫 번째 쿼리의 내용 중 두 번째 쿼리에 해당되는 것만 조회하는 구문입니다. SELECT * FR..

Database/SQL 2020.11.25

MySQL - JOIN 정리 (INNER, OUTER, CROSS, SELF JOIN)

조인이란 ? 조인(Join)은 SELECT와 더불어 가장 많이 사용하는 옵션 중 하나이고, 두 개 이상의 테이블을 묶어서 하나의 결과 집합으로 만들어 내는 것입니다. 즉, 서로 다른 테이블에서 데이터를 가져올 때 사용하는 것이 조인(Join)입니다. INNER JOIN(내부 조인) INNER JOIN은 조인 중 가장 많이 사용됩니다. 따라서 보통 JOIN을 얘기할 때는 INNER JOIN을 말하는 것입니다. 예를 들어, 쇼핑몰 사이트에서 사용자가 물건을 구매하기 위해서는 구매 테이블에 물품, 수량 등을 입력할 것이며, 외래키인 ID와 함께 삽입될 것입니다. 물품을 구매하고 배송을 할 때는 그 구매 테이블에 있는 정보 뿐만 아니라 사용자 테이블에 있는 배송 주소, 전화번호 등을 함께 알아야 합니다. 이 때..

Database/SQL 2020.11.25

MySQL - JSON 데이터 사용

JSON 데이터란 ? JSON(JavaScript Object Notation)은 현대의 웹과 모바일 애플리케이션 등과 데이터를 교환하기 위한 개방형 표준 포맷을 말합니다. JSON은 JSP(JavaScript)에서 파생되었지만 특정한 언어에 종속되어 있지 않은 독립적인 데이터 포맷입니다. 대부분의 프로그래밍 언어에서 쉽게 읽고 쓸 수 있고 용량이 작아서 최근에는 XML을 대체해서 데이터 전송에 많이 사용합니다. 즉, 간략히 설명하자면 JSON은 데이터 포맷(형식) 중 하나일 뿐이며, 주로 서버와 클라이언트 간의 교류에서 많이 사용됩니다. JSON 형식 { "id" : "kim0123" , "name" : "suhyeon" , "location" : "LA" "phone_number" : "0101234..

Database/SQL 2020.11.20

MySQL 내장 함수 정리

MySQL 내장 함수 MySQL은 다양한 내장 함수를 포함하고 있습니다. 종류는 제어 흐름 함수, 문자열 함수, 수학 함수, 날짜/시간 함수, 전체 테스트 검색 함수, 형 변환 함수, XML 함수, 비트 함수, 보안/압축 함수 , 정보 함수, 공간 분석 함수, 기타 함수 등이 있습니다. * 특정한 함수의 사용법, 개념을 알고 싶어 들어오셨다면 Ctrl + F로 함수명을 검색하시면 편리하실 것 같습니다. 제어 흐름 함수 제어 흐름 함수는 프로그램의 흐름을 제어하는 함수입니다. SELECT IF(1>3, 'true', 'false'); -- IF(수식, 참, 거짓) IF는 수식과 참일 때 반환할 값과 거짓일 때 반환할 값을 입력하면, 수식의 진리값에 따른 값이 반환됩니다. 위에서는 false가 반환됩니다. ..

Database/SQL 2020.11.17

JavaScript - 객체(Object)

JS에서 객체(Object)란? 자바스크립트(JavaScript)는 객체 기반 스크립트 언어이고, 객체는 여러 속성을 하나의 변수에 저장할 수 있게 해주는 데이터 타입입니다. Key(속성)과 Value(값)을 한 짝으로 저장합니다. 자바스크립트에서는 배열도 객체에 해당됩니다. 객체 안에는 문자열, 숫자, 배열, 객체, 함수 등이 모두 들어갈 수 있습니다. 객체의 특징 객체는 변수의 타입 다양한 값들이 포함될 수 있다. 중괄호 '{ }' 를 이용 콤마 ' , ' 를 이용해서 속성과 값의 짝을 나열 Key(속성)는 문자열 또는 기호 Value(값)는 모든 유형 + property는 Key : Value 한 쌍(pair)을 말합니다. 객체 선언 및 초기화 var student = new Object(); //..