[Oracle] DUAL 테이블에 대하여
·
데이터베이스/SQL
사내 솔루션은 Oracle, MySQL, PostgreSQL, MS-SQL 모든 데이터베이스가 호환된다고 당당하게 말씀하시는 것을 들었는데, 로컬에서 MS-SQL로 마이그레이션 하던 도중 만난 예외... (지금 사내 솔루션을 까고 있는 것이다.) 오늘은 존재하지 않는 테이블이라며 예외가 뜨는 DUAL이 무엇인지에 대해 알아볼 것이다.DUAL 테이블이란?DUAL 테이블은 Oracle에서 기본적으로 생성되는 특수 테이블이다. 단일 행과 단일 열을 가진 테이블로, DUMMY라는 요소 하나만을 저장하고 있다. 이것만으로도 알 수 있겠지만, DUAL 테이블은 간단한 연산이나 시스템 함수 호출 등이 필요할 때 임의적으로 부르는 더미 테이블이란 것이다. DUAL 테이블 사용 방법SELECT 1 + 1; -- Othe..
[MS-SQL] SQL Server 설치 및 DBeaver 연동
·
데이터베이스/SQL
고객사에 사내 제품을 설치하러 가기 전, 고객사에서 SQL Server 데이터베이스를 사용한다고 해서 사내 제품에 적용해보기 위해 로컬에 SQL Server를 설치하려 했다. 그저 가볍게 '설치해서 DBeaver 연결하면 되겠지.'라고 가볍게 생각했는데, 만만히 볼 게 아니였다... 이번 포스팅에서는 SQL 설치부터 기초 세팅 방법까지를 작성해가며 천천히 배워나가고자 한다. 데이터베이스라고 다 같지 않다는 것을 기억해두며....exe 파일 다운로드microsoft 홈페이지에서는 SQL Server를 개발자용 혹은 Express용으로 다운로드 받을 수 있다. 지금 다운로드를 클릭하면 Microsoft의 데이터베이스라서 그런 건지, exe 파일로 다운 받아지더라. 개발에 사용할 것이기 때문에 나는 개발자용을..
데이터베이스 명명 규칙 (약어 사용 규칙)
·
데이터베이스/SQL
개발자라면 (혹은 데이터 엔지니어라면) 데이터베이스 설계 중 이름짓기에 많은 시간을 투자한 경험이 필시 있을 것이다.한 번 붙인 이름은 해당 데이터가 필요한 동안에는 지속적으로, 빈번하게 사용될 것이 분명하므로협업자들이 어떤 데이터인지 단번에 파악할 수 있도록 가독성 있는 이름을 지어야 한다. 이번에는 가독성과 유지보수성에 중요한 역할을 하는 데이터베이스 객체의 명명 규칙과 그 예시를 살펴보고자 한다. 1. 의미 있는 이름 사용당연하게, 각 객체의 이름은 그 목적과 의미를 명확하게 나타내어야 한다. 학생들의 정보를 저장하는 테이블이 존재한다고 가정하자.내가 알아볼 수 있다는 이유만으로 해당 테이블의 이름을 AAA라고 지으면 어떻게 될까?팀원은 물론이고, 나중에 자신이 해당 테이블을 다룰 때조차 이 테이블..
[MySQL] Sql Error 1264 Out of range value for column 'col_name'
·
데이터베이스/SQL
MySQL Error 1264는 데이터를 삽입할 때 자주 접할 수 있는 에러 중 하나로,메시지 그대로 해석하자면 삽입하려는 값이 컬럼의 제약 조건 범위를 넘었다는 의미이다. 개발자가 삽입 값과 컬럼의 범위를 확인하고 고치는 것이 가장 좋은 방법이지만,어떠한 범위를 벗어났는지 모르겠을 때에는 아래 예시를 통해 에러 발생 가능성이 높은 값을 찾을 수 있을 것이다. 데이터 타입 범위 초과삽입하려는 값이 타입이 허용하는 범위를 초과했을 때 1264 에러가 발생한다. 예를 들어, -128 ~ 127 범위의 정수만을 허용하는 TINYINT 타입의 컬럼에 정수 -1100, 128 등 범위 미만/초과 값을 삽입하려 할 때 해당 에러가 발생할 수 있다. 컬럼의 타입을 더 넓은 범위의 타입으로 변경하거나, 삽입하려는 값을..
DB, DBMS, RDBMS, NoSQL
·
데이터베이스/SQL
데이터베이스 관련 학습을 하다보면, 각기 다른 용어들이 모호해지고 헷갈리기 마련이다.읽을 땐 유연하게 읽더라도 쓸 때는 명확히 쓰고자 각 용어의 차이를 구분하기로 하였다. 데이터베이스 (DB, DataBase)데이터베이스는 컴퓨터 내에서 데이터를 저장하는 장소 그 자체를 뜻하는 용어이다.DBMS로 생성한 데이터베이스(저장소)가 다양한 구조를 가진 채로 존재하고, 이렇게 저장되어 있는 저장소 자체를 데이터베이스라고 일컫는다.데이터베이스 관리 시스템 (DBMS, DataBase Management System)데이터베이스 관리 시스템은 말그대로 데이터베이스를 관리하는 시스템이다.DBMS를 사용하여 데이터베이스를 생성하고, 또 데이터베이스 및 데이터들을 관리할 수 있다. 저장소만을 제공하고 저장하는 방법을 알..
[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문은 사용..
유영웅