DB 10

MySQL 공간 데이터

공간데이터 공간 공간데이터는 지구상에 존재하는 지형정보를 표현한 데이터이다. 즉 종이지도에 표현된 장, 도로, 나무, 건물, 가로등, 전봇대 등의 모든 표현물을 디지털 지도상에 옮겨 놓은 데이터를 말한다. 이 기능은 주로 지리적 정보 시스템 (GIS)응용 프로그램에서 유용하게 사용된다. 공간 데이터 타입 형식 내부 구조 지도의 개체 예 MySQL의 공각 데이터 개체 점(Point) 1개의 x,y좌표 가로수,논,심볼,텍스트 등 POINT 선(Line) 여러 개의 x,y 좌표 도로, 하천 등 LINESTRING 면(PolyGon) 여러 개의 x,y 좌표 (첫 점 = 끝점) 건물 POLYGON 공간 데이터의 저장 MySQL 버전 지원 데이터 타입 저장 단위 비고 3.23 이전 없음 지도 파일의 저장결로만 텍스..

DB 2023.10.12

전체 텍스트 검색과 파티션

전체 텍스트 검색 전체 텍스트 검색은 긴 문자로 구성된 구조화되지 않은 텍스트 데이터 등을 빠르게 검색하기 위한 부갖거인 MYSQL의 기능이다. 저장된 텍스트의 키워드 기반의 쿼리를 위해서 빠른 인덱싱이 가능하다. 이 기능은 FULLTEXT 인덱스를 사용하여 작동한다. 전체 텍스트 인덱스(FULLTEXT 인덱스) MySQL과 같은 관계형 데이터베이스 관리 시스템에서 제공하는 특별한 종류의 인덱스로 이 인덱스는 텍스트 기반의 데이터를 효율적으로 검색할 수 있게 해준다. FULLTEXT 인덱스는 일반적으로 자연어 처리 알고리즘을 사용하여 주어진 키워드가 텍스트 필드 내에서 어떻게 나타나는지를 분석한다. 전체 텍스트 인덱스는 InnoDB와 MYISAM 테이블만 지우너한다 전체 텍스트 인덱스는 char, var..

DB 2023.10.07

DB 스토어드 프로시저

스터어드 프로시저 스토어드 프로시저는 데이터베이스 시스템에서 실행할 수 있는 하나 이상의 SQL 명령문의 묶음이다. MYSQL에서 제공된느 프로그래밍 기능이라고 생각하면 된다. 클리이언트 애플리케이션에서 호출하여 실행할 수 있으며 자주 사용되는 일반적인 쿼리를 사용하는 것보다 이것을 모듈화 시켜서 필요할 때마다 호출 하면 편리하게 사용할 수 있다. 스토어드 프로시저의 장점 여러 SQL문이 묶여 있기 때문에 트래픽을 줄이고 실행 속도를 높일 수 있다. 재사용성이 올라간다. 중복된 코드를 줄이고 유지보수가 쉬워진다. 보안을 강화할 수 있다. 스토어드 프로시저의 단점 디버깅이 어려워 진다. 데이터베이스 마다 다른 프로기르맹 언어와 문법을 사용하므로, 이식성이 떨어질 수 있다. 스토어드 프로시저의 정의 형식 C..

DB 2023.10.06

인덱스(INDEX)

인덱스 MySQL의 인덱스는 데이터베이스에서 데이터를 빠르게 검색할 수 있도록 도와주는 자료 구조입니다. 인덱스가 없다면 데이터베이스는 테이블의 모든 레코드를 순회해야 하기 때문에 검색이 느려질 수 있다. 책의 맨처음에 나오는 목차처럼 해당 컬럼이 어디에 있는지 저장하여 해당부분만 검색할 수 있게 하여 검색속도를 향상시킨다. 인덱스의 장점 테이블 전체를 스캔하는 것보다 빠른 데이터 검색이 가능하다. WHERE,JOIN,GROUP BY,ORDER BY등의 SQL 구문에서 성능이 향상된다 인덱스를 사용하면 데이터 정렬 및 그룹화 작업을 빠르게 수행할 수 있다. 클러스터링 인덱스를 사용하면 실제 테이블에 접근하지 않고도 원하는 데이터를 추출할 수 있다 인덱스의 단점 인덱스가 있으면 데이터를 삽입,수정,삭제할 ..

DB 2023.10.05

[DB] 뷰

뷰 뷰는 하나 이상의 테이블로 부터 생성된 가상 테이블이다. 뷰는 실제로 데이터를 저장하지 않으며, 기존 테이블의 데이터를 특정 조건에 따라 필터링 하거나 집계하여 보여준다. SQL 쿼리를 통해 생성되고, 일반적인 테이블 처럼 사용이 가능하다. 뷰의 장점 복잡한 쿼리를 간단한 뷰로 만들어 사용자가 쉽게 데이터에 접근할 수 있게 한다. 뷰를 사용하면 특정 열이나 행에 대한 접근을 제한해 보안 수준을 높힐 수 있다. 동일한 쿼리를 여러번 사용할 필요가 없이 재사용이 가능하며, 유지보수에 용이다. 뷰를 통해 데이터를 조작하면, 원본 데이터에는 영향을 주지 않으므로 무결성을 유지할 수 있다. 뷰의 단점 뷰는 실시간으로 기존 테이블의 데이터를 익어오기 때문에 복잡한 뷰는 성능 저하를 초래할 수 있다. 일부 뷰는 ..

DB 2023.09.27

MYSQL 제약 조건

제약 조건 제약조건이란 데이터의 무결성을 지키기 위한 제한된 조건을 의미한다. MYSQL은 데이터의 무결성을 위해 5가지의 제약조건을 제공한다. PRIMARY KEY 제약 조건 FOREIGN KEY 제약 조건 UNIQUE 제약 조건 CHECK 제약조건 DEFAULT 정의 NULL 값 허용 기본 키 제약 조건 테이블에 존재하는 많은 행의 데이터를 구분할 수 있는 식별자를 기본키(PRIMARY KEY)라고 부른다. 대부분의 테이블은 키본 키를 가지져야 하고 없어서 구성이 가능하지만 대부분 기본 키를 설정해 주어야 한다. 기본 키 제약 조건은 기본키는 테이블 별로 하나만 존재해야 하며 이는 해당 테이블의 각 레코드를 유일하게 식별한다. NULL 값을 허용하지 않으며 자동으로 UNIQUE 제약조건이 부여된다. ..

DB 2023.09.27

SQL 프로그래밍

SQL 프로그래밍 SQL에도 다른 프로그래밍 언어와 비슷한 분기,흐름 제어,반복의 기능이 있다. 이러한 기능은 스터어드 프로시저, 스토어드 함수,커서 ,트리거 부분의 기본이 된다. SQL프로그래밍은 변수와 함께 잘 활용한다면 강력한 SQL 프로그래밍이 가능하다. DELIMITER $$ CREATE PROCEDURE 스토어드 프로시저이름() BEGIN SQL 프로그램 코딩.. END $$ DELIMITER; CALL 프로시저 이름(); DELIMITER $$ ~ END $$ 부분까지는 스토어드 프로시저의 코딩할 부분을 묶어준다. CALL 스토어드 프로시저이름();은 CREATE PROCEDURE로 생성한 스토어드 프로시저를 실행 한다. IF...ELSE 조건에 따라 분기한다. 한 문장 이상이 처리되어야 할..

DB 2023.09.23

조인(JOIN)

조인(JOIN) 조인이란 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 말한다. 조인은 데이터베이스에서 데이터를 효율적으로 관리하고 데이터 간의 관계를 활용하는 중요한 기술 중 하나이다. 일반 적으로 조인의 유형은 INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOIN INNER JOIN(내부 조인) 조인 중 가장 많이 사용되는 조인으로, 대개의 업무에서 조인은 INNER JOIN을 사용한다. INNER JOIN을 사용하기 위한 경우를 생각해보다 유저테이블엔 아이디 비밀번호 주소 나이 등의 컬럼이있고 구매 테이블엔 사용자와 물건의 아이디가 있다고 할때 회원의 주소를 알기 위해서는 유저 테이블의 주소가 필요한대 이럴떄 INNER JOIN을 이용하면..

DB 2023.09.22

MYSQL 데이터 형식과 내장함수

숫자 데이터 형식 DECIMAL은 정확한 수치를 저장하고 FLOAT와 DOUBLE은 근사치으 숫자를 저장한다. 부호없는 정수를 지정할 때는 UNSIGNED예약어를 뒤에 붙여주고 2배 더 큰 숫자까지 표현할 수 있다. 데이터 형식 바이트 수 숫자 범위 설명 BIT(N) N/8 1~64bit를 표현 TINYINT 1 -128~+127 정수 SMALLINT 2 -32768 ~ 23767 정수 MEDIUMINT 3 -8388608 ~ 8388607 정수 INT INTEGER 4 약 -21억 ~ 21억 정수 BIGINT 8 약 -900경~ + 900경 정수 FLOAT 4 -3.40E+38~-1.17E+38 소수점 아래 7자리까지 표현 DOUBLE REAL 8 -1.22E-308~1.79E1+308 소수점 아래 1..

DB 2023.09.21

SQL 기본

1. SELCET 가장 많이 사용하는 구문으로, 데이터베이스 내의 테이블에서 원하는 정보를 추출하는 명령어이다. SELECT문 구문 형식 SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PROIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_NO_CACHE] [SQL_CALC_FOUND_ROW] select_expr [, select_expr ...] [FROM table_references [PARTITION partition_list] [WHERE where_condition] [GROUP BY {col_name | expr | position}, ... [WITH R..

DB 2023.09.15