728x90

데이터베이스 27

[MyBatis] 동적 쿼리 LIKE문 적용하기

MyBatis로 동적 쿼리를 적용해보기, 검색해보니 DB마다 쿼리가 조금씩 다르다고함. LIKE문은 보통 Select * from test where num like 'ABC%' 식으로 특정문자를 가지고 있는 형태를 추출하고자 사용하는 경우가 많음. 일단 MyBatis에서 종류별에 대해 차이를 잠깐 보자면 1) MySQL or MariaDB select * from table_name where column_name like cancat('%', #{keyword}, '%') 2) Oracle select * from table_name where column_name like '%'||#keyword#||'%' 식으로 적용 할 수 있다고한다. 그외 MS-SQL나 PostgreSQL에서도 방법은 다를것이..

[PostgreSQL] DB 및 유저 생성

postgresql 사용에 앞서 Database와 유저를 생성하고 pgAdmin4를 통해 외부 네트워크에서 접속을 시도. 1. DATABASE 생성 이제 외부 접속을 허용했으니 사용할 DB를 생성. 다음 명령어를 통해 Postgresql Shell을 실행. $ sudo su postgres $ psql 이제 사용할 DB를 생성. CREATE DATABASE smoh; 2. USER 생성 그다음 유저를 생성하고 권한을 부여. 개발용 계정으로 사용할 예정이기 때문에 SUPAERUSER 권한을 줬습니다. CREATE USER {user_name} WITH PASSWORD '{user_password}'; ALTER USER {user_name} WITH SUPERUSER; 만약 해당 유저에게 특정 권한만 주고..

Database 2021.07.27

[DB] mysql Access dinied for user "@" (using password:YES)

DB를 Connect하는 경우 나타날 수있는 Error. 로그인이 불가하다는 내용인데, 검색해보니 주요 문제는 다음과 같다고한다. 1. 외부접속을 열어주지 않은 경우 2. 비밀번호를 설정하지 않은 경우 3. 비밀번호를 제대로 설정하지 않은 경우 비밀번호 같은 경우에는 초기에 대부분은 설정을 해주기 때문에 보통은 외부접속을 허용하지 않아서 발생되는 오류인것로 생각된다. 외부접속을 허용해주기 위해선 grant all privileges on *.* to '계정명'@'%'; 를 설정해주면 된다. % 의 경우에는 들어오는 모든 아이피를 수신하는것이기때문에 특정 아이피를 지정하기 위해선 이부분을 입력해주면 된다.

Database 2021.07.27

[Linux] 리눅스 명령어

Mariadb & PostgreSQL sudo mysql -uroot -p 접속하는 코드 /usr/local/apache-tomcat-8.0.53/webapps // 파일질라 sudo -u postgres psql systemctl status postgresql-12.service systemctl start postgresql-12.service sudo yum install postgis30_12 // postgis 설치 rpm -qi postgis30_12 || postgis 설치상태 확인 psql -d [데이터베이스명] // 데이터베이스 연결 create extension postgis; // postgis 만들기 select postgis_version(); // 버젼 확인

Linux 2021.07.15

[MariaDB] Data too long for column 에러

csv파일을 MariaDB에 넣으려고하는데 오류가 생겼다.. 1406, "Data too long for column '컬럼명' at row 1") 그래..대략 길이가 길어서 안되는가보다 싶어서 varchar의 값을 늘려줬는데 그래도 안되더라 오잉 뭐지? 검색을 해보니 MariaDB 혹은 MySQL의 환경설정값의 문제라고 했다. -- 먼저 현재 나의 DB를 확인해볼 필요가 있었다.-- MariaDB [(none)]> select @@global.sql_mode; +-------------------------------------------------------------------------------------------+ | @@global.sql_mode | +--------------------..

오류 모음집 2021.01.22

PostgreSQL 설치오류 An error occured executing the Microsoft VC

데이터베이스 종류 중에 하나인 PostgreSQL를 설치하다 보면 오류가 나오는 경우가 있다. 으흠 런타임 오류...?! 검색을 해보니깐 옵션을 설정해주면 가능한것 같았다. CMD 창을 오픈해서 exe 파일로 이동을 해주면 된다. 이후 --install_runtimes 0 옵션을 추가하면 완료. 예시를 보자면 C:\Users\Admin>cd Downloads (exe가 있는 폴더로 이동) C:\Users\Admin\Downloads> postgresql-9.6.20-1-windows-x64.exe --install_runtimes 0 이렇게 해주면 exe 파일이 정상적으로 실행되는것을 확인할 수 있다.

오류 모음집 2020.12.21

[SQL] SQL 오류 1005 errno : 150 Foreign key constraint is incorrectly formed

MariaDB 작업을 위해 HeidiSQL을 쓰다가 오류가 났다. SQL 오류 (1005) : Can't create table XXXXXX (errno: 150 "Foreign key constraint is incorrectly formed") 라고 한다. 인터넷 검색을 해보니 1005 에러가 나는 경우는 여러가지가 있다. 1. 데이트 타입이 같은건지? 2. NOT NULL 혹은 NULL 여부가 동일한지? 3. 참조받는 데이터가 unique Key 인지 Primary Key 인지 4. 참조 받는 테이블간 charset이 같은건지? 로 볼 수 있었다. 그래서 하나씩 하나씩 순차적으로 확인해보았음. 데이터 타입 이상무 NOT 조건 이상무. 내가 해당되는 참조받는 데이터의 Key 였다. Primary Ke..

오류 모음집 2020.12.03

[SQL] 스키마란 무엇인가?

스키마(Schema)란 무엇인가? Database를 공부하다 보면 쉽게 발견할 수 있는 용어 스키마. 스키마의 종류에는 무엇이 있는지 한 번 살펴보자 먼저 스키마란? : 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것을 말한다. 좀 더 자세하게 말하자면, 개체의 특성을 나타내는 속성(Attribute) 속상들의 집합으로 이루어진 개체(Entity) 개체 사이에 존재하는 관계(Relation)에 대한 정의와 이 것들이 유지해야 할 제약조건을 기술한 것이 바로 스키마다. 즉, 데이터베이스 내에 어떤 구조로 데이터가 저장되는지를 나타내는 데이터베이스 구조를 스키마라고 칭한다. 스키마의 특징으로 1) 스키마는 데이터 사전(Data Dictionary)에 저장된다. ※ 데이터 사전: 시스템 전체에..

Database 2020.11.03

정규화와 반정규화

정규화란 ? 데이터의 중복성의 제거하여 여러 엔티티의 조인이 발생하는 데이터베이스 환경에서 성능을 향상시키기 위한 데이터 구조화 프로세스 정규화의 방법 - 낮은 차수의 정규화를 만족한 상태로 높은 차수의 정규화를 진행 정규화 단계 1) 제1정규화 - 중복되는 컬럼제거 2) 제2정규화 - 종속되는 값 제거 3) 제3정규화 - 엔티티(테이블명)에 맞는 데이터로 분리 반정규화란 ? 정규화로 인해서 테이블의 수가 증가하게 되면, 다수의 JOIN이 발생함에 따라 성능 저하가 발생할 수 있음. 이 문제를 해결하고자 정규화 과정이 모두 마무리 한 다음 반정규화를 실시한다. 단, 테이블을 합치는 것만이 반정규화는 아니다. 1) 그룹에 대한 합계 같은 값을 미리 계산하여 테이블에 저장 (기존 테이블을 Sum 하여 확인하..

Database 2020.10.29
728x90