728x90

DB 12

[SQL] 계층형 쿼리(Hierarchical Query)란?

SQLD를 공부할때, 읽는것만으로 이해가 잘 안되서 계층형 쿼리에 대해 한 번 알아보고자 한다. 계층형 쿼리란 테이블에 계층형 데이터가 존재하는 경우 이를 조회하기 위한 쿼리이다. 먼저 계층형 데이터란? 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다. 예시로 하드웨어 계층적 구조를 살펴보면, 중앙처리장치와 기억장치, 입력장치의 상위 데이터는 하드웨어이며, 하드웨어의 하위 데이터는 중앙처리장치, 기억장치, 입출력장치 3개이다. ex) 테이블로 나타냈을때 예시 장치이름 상위장치 1 하드웨어 null 2 중앙처리장치 하드웨어 3 기억장치 하드웨어 4 입출력장치 하드웨어 5 입력장치 입출력장치 6 출력장치 입출력장치 계층의 쿼리의 형태를 살펴보자. START WITH 조건 CONNECT ..

Database 2022.01.22

[JPA] JPA 기본 시작

persistence.xml 통해 필요한 설정 정보를 관리 package jpabook.start; import javax.persistence.*; import java.util.List; /** * @author holyeye */ public class JpaMain { public static void main(String[] args) { //엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성 EntityTransaction tx = em.getTransaction(); //트랜..

JAVA 2021.12.21

[SQL] DDL, DML, DCL, TCL 구별

SQL 및 DB를 하는데 있어서 가장 기본적인 DDL DML DCL TCLㅣ을 알아보기 종류 명령어 설명 데이터 조작어 (DML : Data Maniputation) SELECT 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어 INSERT UPDATE DELETE 데이터베이스의 테이블에 있는 데이터의 변형을 할 수 있는 명령어 (데이터 삽입, 수정, 삭제 등) 데이터 정의어 (DDL : Data Definition Language) CREATE ALTER DROP TRUNCATE 테이블과 같은 데이터 구조를 정의하는데 사용하는 명령어 (생성, 변경, 삭제 등) 데이터 제어어 (DCL : Data Control Language) GRANT REVOKE 데이터베이스에 접근하고 객체들을 사용 ..

Database 2021.10.15

[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

[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

오라클의 제약 조건

오라클을 이용하다보면 여러가지 제약조건을들 볼 수 있다. 간단하게 참고 할 수 있도록 메모 1. PRIMARY KEY(PK) - 해당 컬럼은 반드시 존재해야하며, 유일해야함 - 테이블에 대한 기본키 생성 - 기본키는 반드시 테이블당 하나만 존재해야함. 하나의 컬럼으로만 구성되는것은 아님 - NULL값이 입력 될 수도 있음 - UNIQUE INDEX가 자동으로 생성됨 - NOT NULL과 UNIQUE 제약조건을 결합한 형태 2. FOREIGN KEY(FK) - 해당 컬럼 값은 참조되는 테이블의 컬럼 값 중 하나와 일치하거나 NULL을 가짐 - 두 테이블의 데이터간 연결을 설정하고 강제적으로 적용을 시킴 - 참조하고자하는 컬럼이 PK 혹은 UK가 잡혀 있어야 사용가능 - 부모 테이블을 삭제하기 위해선 자식 ..

[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
728x90