목록DB (7)
똑같은 삽질은 2번 하지 말자
MySQL의 인증 방법 때문에 발생하는 이슈 기본적으로 설치 중에 사용자의 인증 방법은 auth_socket 방법 / 플러그인으로 설정되어 있는데 이걸 패스워드로 바꿔줘야 ORM같은걸로 접속할 때, 비밀번호 설정만으로 접속이 가능하다. 바꾸는 방법 To alter the authentication method type the following in your mysql server console: mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; We are now almost done but the changes wont be reflectd unless you flush the privilag..
1. 구문 분석(Parsing) 해당 쿼리가 문법적으로 틀리지 않은지 확인. 해당 구문을 SQL 서버가 이해할 수 있는 단위들로 분해하는 과정. 만약 구문이 부정확하다면 여기서 처리를 중단. 이 문장이 일괄 처리(batch) 내에 있다면 일괄 처리 전체를 중단.(Batch abort : Batch 중 하나라도 syntax error가 있다면 전체 batch가 실행되지 않는다.) 2. 표준화(Standardization) 실제로 필요없는 부분들이 제거. 표준화된 쿼리 트리(Standard Query Tree)가 만들어 진다. 3. 최적화(Optimization) 통계나 조각 정보 등을 바탕으로 실행 계획을 만들어 낸다. 쿼리처리에서 매우 중요한 단계 ① 쿼리 분석 : 검색 제한자(SARG)인지 조인 조건인..
insert 된 그 PK를 다른테이블에서 써야할 때 /* query */ SELECT LAST_INSERT_ID() id 값을 리턴 받는 곳은 DAO 클래스에서 insert문을 호출하는 구문에서 값을 리턴 받으면 된다. int id = commonDB.insert(NAMESPACE + "insertData", dataClss); ex) INSERT INTO RYOKAN_PAYMENT(MBER_ID,P_PRICE) VALUES(#{mber_id},#{p_price}) SELECT LAST_INSERT_ID()
JDBC(Java Data Base Connectivity) JAVA에서Database을 연결하기 위해 제공하는 Core API입니다. MyBatis란? 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 합니다. Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있습니다. MyBatis 특징 복잡한 쿼리나 다이나믹한 쿼리에 강하다 - 반대로 비슷한 쿼리는 남발하게 되는 단점이 있다. 프로그램 코..
1.1 MariaDB란? MariaDB는 MySQL 커뮤니티 코드 베이스를 이용해서 탄생했다. MariaDB는 Monty Program AB에 의해서 다듬어진 MySQL이다. MariaDB는 오픈소스이다. 그리고 계속 오픈소스로 남기를 바란다. 1.2.1 MariaDB와 MySQL 그리고 PerconaServer MariaDB를 이해하기 위해서는 먼저 MySQL과 PerconaServer(퍼코나서버)를 알아야한다. PerconaServer는 Percona라는 회사에서 MySQL서버의 소스코드를 기반으로 만든 MySQL 서버의 또 다른 포크(fork) 버전이다. MariaDB는 PerconaServer의 XtraDB 스토리지 엔진을 배포 버전에 포함하고 있다. XtraDB는 MySQL 서버의 InnoDB의..
CREATE TABLE ORDERS( OSEQ NUMBER(10), PSEQ NUMBER(10) NOT NULL, ID VARCHAR(20) NOT NULL, QUANTITY NUMBER(5) DEFAULT 1, INDATE DATE DEFAULT SYSDATE, RESULT CHAR(1) DEFAULT '1', PRIMARY KEY(OSEQ) ); 여기서 ORDERS 를 처음에 ORDER 라고 해서 이름 오류가 떴는데 뭔가 정해진게 있는거같아 order by 때문에 안된다던가..
LIKE 문자 패턴을 이용하여 조건에 만족하는 Data를 조회 %는 0개 이상의 문자로 길이와 상관없는 조건 지정 ex) WHERE NAME LIKE 'K%'; -> KA,Kasds,Kasf,K뭐든지다 _는 임의의 한 문자만을 허용하는 조건 지정 ex) WHERE NAME LIKE 'K_'; -> KA,KB,KC,KD 등 KASD(이건 안됨) _와 %는 조합해서 사용가능 ex) WHERE NAME LIKE '_K%' -> 이름의 두번째 알파벳이 K가 들어가는 것들 단, 주의할 점 Mybatis에서는 DBMS 종류별로 차이가 있다. # MySql SELECT * FROM TABLE_NAME WHERE COLUMN_NAME LIKE CONCAT(‘%’, #{Keyword}, ‘%’) # ORACLE SELE..