[Oracle] DCL, TCL
·
데이터베이스/SQL
지난 포스팅에 이어 Oracle의 명령어 DCL, TCL을 알아보도록 하자.DCL과 TCL은 단순한 데이터 관리보다 복잡하게 느껴질 수가 있다. DCL (Data Control Language)DCL은 관리자 및 사용자의 접근 권한을 관리하는 데에 사용되는 SQL 명령어를 가리킨다.아무리 배웠던 DDL, DML을 사용하고 싶다 하더라도, 접속한 사용자가 접근 권한이 없을 시 조작하지 못한다. GRANTGRANT문은 데이터베이스 객체에 대한 권한을 사용자나 역할에게 부여하는 명령어다.역할을 사용자에게 부여함으로써 해당 역할이 가진 권한을 사용자가 이용할 수도 있다.GRANT SELECT, INSERT ON STUDENT TO SCOTT;GRANT ROLE1 TO SCOTT; REVOKEREVOKE문은 사용..
[Oracle] DDL, DML
·
데이터베이스/SQL
이전 포스팅에선 Oracle의 기본적인 지식과 사용법을 알았다면이번에는 데이터베이스 조작에 사용되는 명령어를 공부해보려 한다. 다른 RDBMS를 사용하고 있던 개발자들은 Oracle의 문법을이번 기회를 통해 비교하고 이해할 수 있길 바란다. DDL (Data Definition Language)DDL은 데이터베이스 객체를 조작하는 데 사용되는 SQL 명령어를 가리킨다.데이터베이스 객체라 하면 테이블, 뷰, 인덱스, 시퀀스 등이 이에 속한다. CREATECREATE문은 객체를 생성하는 명령어다.테이블, 뷰, 인덱스 별로 생성하는 방법이 각기 다르니 이 점에 유의해야 한다. OR REPLACE는 해당 이름을 가진 객체가 존재 시, 현재 작성한 것으로 대체하겠다는 명령어다.생략이 가능하므로, 덮어쓸 때에 선택..
[Oracle] Oracle Database 시작하기 (DBeaver, 계정 생성)
·
데이터베이스/SQL
세계 최고의 점유율을 차지하고 있는 데이터베이스, Oracle.주로 쓰이는 RDBMS인 MySQL, MSSQL과 같으면서도 달라 배우기 주저할 수도 있을 것이다. 오늘은 Oracle이 무엇인지, 그리고 어떻게 시작해야 하는지에 대해 작성해보려 한다. 1. 오라클이란 무엇일까사실 Oracle Database만을 Oracle로 지칭하지 않는다.Oracle은 Oracle RDBMS를 개발한 세계적인 소프트웨어 회사이다.Java를 다루는 개발자들이라면 당사에서 개발한 Oracle JDK 또한 심심찮게 들어보았을 것이다. 하지만 본 포스팅에서는 Oracle DB를 설명하고 있는 글이므로,Oracle을 기업명이 아닌 RDBMS 이름으로 칭하겠다. Oracle은 1977년 Oracle사에서 개발한 세계 최고의 점유율..
[MyBatis] MyBatis 초기 설정하기
·
프레임워크 및 라이브러리/Spring
프로젝트와 데이터베이스를 연결하고자 하는 개발자들이라면 떠오르는 프레임워크가 2개 있을 것이다. 그것은 바로 MyBatis와 JPA일 것이라 생각한다.이번 포스팅은 많은 기업들이 사용하고 있는 SQL Mapper, MyBatis의 이론 및 초기 설정에 대해 작성하려 한다. 1. MyBatis란 무엇일까 MyBatis는 널리 사용되고 있는 대표적인 SQL Mapper 프레임워크다. Spring Framework와 함께 사용되는 경우가 많고,아래와 같은 특징으로 인해 많은 개발자들의 선택을 받고 있다. 1. JDBC를 추상화(Encapsulation)하여 개발자가 프로젝트 內에서 SQL 쿼리를 작성 및 관리하기 쉽도록 해준다.2. 응답 결과를 Java 객체로 매핑할 수 있도록 하여, 데이터 처리의 복잡도를 ..
DB UPSERT 쿼리문 만들기 (존재하면 UPDATE, 있으면 INSERT)
·
데이터베이스/SQL
그동안 MySQL만 써오다가 Oracle을 쓰게 되어,쿼리문을 작성하는 법에 대한 차이 중 UPSERT 쿼리문을 만드는 방법에 대해 기록하고자 한다.🍁MYSQL : ON DUPLICATE KEY UPDATEMySQL (+ MariaDB)에서는 INSERT문 뒤에ON DUPLICATE KEY UPDATE를 붙여줌으로서 중복 대상에 대한 업데이트를 진행한다.INSERT INTO `STUDENT`(`code`, `name`, `age`)VALUES(1891245, '홍길동', 20)ON DUPLICATE KEY UPDATE `name` = '홍길동', `age` = 20--삽입 값에 별칭을 사용하여 불필요한 중복 입력을 줄일 수도 있다.INSERT INTO `STUDENT`(`code`, `name`, `a..
[MyBatis] argument type mismatch
·
프레임워크 및 라이브러리/Spring
기본 생성자가 필요하다결론부터 말하자면, ResultMap에 사용되는 VO 및 DTO에는 기본 생성자 명시가 필요하다.내가 만난 오류의 경우상위 VO인 Villager에서 하위 VO인 Personality를 함께 받아오길 원했고, 다음과 같이 ResultMap을 작성했다.  그러나, 각 Column 개수 및 이름이 맞는데도 불구하고 argument type mismatch 에러를 마주하였다.오류 원인MyBatis는 Reflection 기술을 사용해 클래스의 생성자를 찾고, 생성자를 호출하여 객체를 생성한다.하지만 기본 생성자가 없는 경우, Reflection을 통해 적절한 생성자를 찾을 수 없..
유영웅
영차영차