ROWNUM ORACLE의 테이블 내용에 순번을 출력하기 위해 사용하는 가상컬럼 중 하나입니다. 테이블의 SELECT문 출력 할 때, 순번이 필요할 때 주로 이용합니다. 특히 DB 관리자 및 관계자 외에 SEQUENCE가 보통 NUMBER로 순번을 나타낼 때가 있지만, 이를 감추기 위해 사용하거나 혹은 일반사람들이 이용하는 게시판의 순번을 알리기 위해서도 사용되기도 합니다. 🏁 순번을 사용하는 이유 🖊️ 중요한 PK를 감추기 위해서 🖊️ 순번을 테이블로 보관할 경우, 중간의 정보가 삭제될 경우 순번이 띄어 넘는 문제가 발생됩니다. 이를 방지하기 위함. ORACLE에서 ROWNUM 기본 사용 방법 ROWNUM은 ORACLE에서 사용하는 가상화 컬럼 중 하나입니다. ROWNUM의 사용방법은 먼저 크게 두 가..
SQL 접속 오류 ORACLE을 설치하고 나서, sql plus로 제대로 된 설치를 확인하는 과정이다. 초기 패스워드로 접속해 보았지만, 제대로 된 실행이 되지 않는 모습이다. 이를 위해서 여러 해결 방법을 조사하는 도중 쉽게 해결할 수 있는 방법을 찾았다. 원인은 설치 후 혹은 OS부팅 후 Oracle이 제대로 실행 되지 않은 원인이다. 즉, oracle을 시작하면 된다. Window에서 Oracle 실행하기 시작의 실행에서 service 혹은 서비스 검색을 해본다. 서비스에서 Oracle 실행 여부 확인해보기 Window 화면에서 Oracle이 실행여부를 확인해 보자. 만약, 이 부분이 실행이 안 되어 있다면, 마우스 우클릭으로 실행을 확인해 보면 된다. 🎶 서비스에서 목록을 찾기 어려 울 때, 찾고..
COALESCE 설명 NULL을 사용하지 않기 위해 사용하는 함수이다. 해당 함수를 사용하기 위해서는 최소 2개의 값이 필요하다. COLAESCE 사용할 때, 괄호 안의 값은 최소 2개여야 한다. 행을 위에서 부터 아래로 읽을 때, 해당 컬럼이 NULL 일 경우, NULL 대신 사용 문자가 표시되는 원리이다. COALESCE 사용하기 해당 테이블은 4개의 행을 가진 테이블이다. 이 테이블의 값을 활용하여, 함수의 테스트를 진행할 예정이다. COALESCE(컬럼명1, NULL 대신 사용 문자) SELECT COALESCE(COL2, 'NULL 체크') FROM TB_BLUE; COL2가 NULL인 값이 'NULL 체크'로 대신 값이 나온 것을 확인할 수 있다. NULL 체크 함수인 것을 확인 할 수 있다...
IN에 대한 설명 SELECT * FROM [테이블 명] WHERE 컬럼명 IN ('조건 값 1', '조건 값 2'); equals('=')과 비슷하지만 or의 개념과 유사하다고 할 수 있다. 해당 테이블 내의 검색하고자 하는 컬럼의 값을 2개 이상 조회 할 때 이용하는 연산자이다. '조건값 1'과 '조건 값 2' 중 하나라도 포함이 되면 true가 된다. 실험 대상의 TABLE 더보기 CREATE TABLE create table TB_RED ( RED_COL1 int auto_increment, RED_COL2 int , RED_COL3 VARCHAR(30) , CONSTRAINT TB_RED_pk PRIMARY KEY (RED_COL1) ) comment '첫 번째 테이블'; 실험에 참가 된 테이블..
출처 - 김영한 강의 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 초급자를 위해 준비한 [웹 개발, 백엔드] 강의입니다. JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자 www.inflearn.com H2 설치하기 JPA를 설치하기 위해서는 H2가 필요하게 되었습니다. https://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main..
Window에서 비밀번호 찾기 1. MariaDB 종료 윈도를 사용하는 기준으로 설명드리겠습니다. 1. [Window Key] + [R] 누르면 윈도 실행창이 생성됩니다. 2. services.msc 입력합니다. 해당 명령어를 입력하게 되면, 서비스창이 생성되는 것을 확인할 수 있습니다. 혹은 시작에서 '서비스' 검색해도 같은 결과가 나오는 것을 확인할 수 있습니다. 여기서 실행중인 MariaDB를 찾아서 우클릭으로 종료 눌러줍니다. 2. MariaDB 경로 찾기 여기서 많이 헤맬 수 있습니다. C:\Program Files\MariaDB 10.11\bin 기본 설치경로는 위와 같으며, 설치할 때 어느 경로에 했을지는 사용자에 따라 다를 수 있습니다. 제 MariaDB 위치는 위의 경로하고 동일합니다. ..
ㅇㅇ Oracle에서 사용한 컬럼 찾기 SELECT TAB.TABLE_NAME, COM.COMMENTS, COL.COLUMN_NAME, COL.DATA_LENGTH FROM all_tables TAB LEFT JOIN ALL_TAB_COMMENTS COM ON TAB.TABLE_NAME = COM.TABLE_NAME AND TAB.OWNER = COM.OWNER LEFT JOIN ALL_TAB_COLUMNS COL ON COL.TABLE_NAME = TAB.TABLE_NAME AND COL.OWNER = TAB.OWNER LEFT JOIN USER_COL_COMMENTS COL_COM ON COL.COLUMN_NAME = COL_COM.COLUMN_NAME AND COL_COM.TABLE_NAME = T..
ORACLE, 분기함수 사용 분기함수 SELECT 컬럼1 FROM TABLE명 위의 TABLE안에 컬럼1의 값이 무엇이 들어있는지는 알 수 없다. 그러나 컬럼1에 대한 결괏값을 갖고 카운트 함수를 사용하게 되었을 때, 분기함수는 매우 도움이 될 수 있다. DECODE -1 DECODE(컬럼값, 'Y', 1, 0); DECODE 함수는 다음과 같다. DECODE(대상1, 대상2, TRUE, FALSE) 대상1과 대상2가 같을 경우 세 번째 함수가 표시, 다를 경우 네 번째 함수가 표시된다. 위와 같은 경우 컬럼값이 'Y'일 경우 1, 아닐 경우 0을 표시한다. DECODE -2 DECODE(비교1, 비교2, '첫번째TRUE', 비교3, '두번째TRUE', '첫번째FALSE'); 두 번째 DECODE의 사용..
ORACLE, NULL 처리 방법 NULL SELECT COLUM FROM TABLE SQL의 검색을 했을 때, NULL이 나오는 경우가 있다. NULL은 말 그대로 '없다'라는 의미인데 SQL에서는 '공백' 또한 데이터가 없다는 의미를 갖고 있지만 NULL은 아무것도 모르는 상태를 의미한다. NULL은 사람들이 데이터가 존재하지 않을 때를 사용하기도 하지만, 상황에 따라서는 '데이터의 존재 유무'와 데이터 상태 '모름' 또한 정보의 일부이므로 상황에 따라 적절히 활용하는 것이 매우 좋다. 단, NULL은 최대한 비우는 것이 매우 현명하다. 만약 상황에 따라 어쩔수 없이 NULL을 사용하게 되었다면, 아래의 방법 2가지 중 하나를 선택하면 된다. NVL, NULL일 경우 특정 값으로 변환 NVL(컬럼, ..
DataBase, Character 설정하기 DB Character 설정하기 alter database mollang default character set = UTF8; 먼저 만들어진 DB에 관해서 Character 설정하는 방법은 다음과 같다. 모든 Table의 기본설정을 적용하기 위해 사용한다.
MariaDB, DB 복구하기 복구하기 위해 필요한 자료 DB가 날아가지 않았어도, 실행되지 않으면 백업을 할 수가 없다. 프로그램으로도, dump로도 접근이 불가능한 참사가 이루어진다. 보통 접속 못 하는 이유에 대해서는 여러 가지 문제가 있지만, db백업이 필요한 시점에서는 설정값을 건드는 것 또한 쉽지 않다. 건드는 순간 안의 데이터가 어떻게 될지 모르기 때문이다. 따라서, DB를 백업하기 위해서는 최소한 DB의 저장 위치를 확보해야 한다. 보통 DB는 /var/lib/mysql 안에 자신의 db명으로 들어있다. 여기에는 procedure, function 같은 PL은 들어있지 않다. frm은 Table의 Column값이 들어있다. ibd는 Table의 insert 내용이 들어있다. dbsake 설..
MariaDB 설정하기 cd /etc/my.cnf.d/ vi server.cnf MariaDB가 정상적으로 설치가 되었다면, 위의 명령을 통해 MariaDB 설정파일을 접속할 수 있다. 이곳을 통해서, 서버 내의 MariaDB를 설정이 가능하다. 설정 목록 max_connection - 최대 동시 접족자 수 늘어날수록 메모리가 증가되고, 스케줄링 오버헤드가 증가된다. connect_timout - Mysqld 서버가 패킷과 연결하기 위해 대기하는 시간기본값 10초 wait_timeout - 서버가 데이터 패킷과 연결된 후 연결을 유지하는 시간기본값 : 8시간, max_allowed_packet - 허용 패킷 크기기본값 16MB이며, 최대값은 1GB이다.규모 이상으로 큰 File을 전달 받았을 때, Mar..
[MySql / MariaDB] 바이너리 용량 설정하기 1. 바이너리 타입 변경하기 DB의 저장 방식 중 하나인 바이너리는 종류가 여러 개가 있습니다. 그중, 서버와 요즘 사람들이 자주 사용하는 사진의 용량을 예상하여 크기를 정하는 방법입니다. ■ 자주 사용하는 바이너리 용량 이름 용량 TINYBLOB 256Byte BLOB 64KB MEDIUMBLOB 8MB LONGBLOB 4GB 만약 BLOB를 설정하였다면, 사용자들은 64KB 이상의 데이터를 넣을 수 없게 됩니다. 그러므로 바이너리 타입을 변경하여 용량을 바꾸는 방법이 되겠습니다. 2. DataBase의 저장될 용량 크기 변경 1번 방식을 했지만 저장이 안 되었다면, log 혹은 sql error에서 max_allowed_packet Error가 ..
[MariaDB] mysqldump가 실행이 안 되는 경우 mysqldump 명령어가 실행이 안 될 때 보통 백업을 mysqldump를 활용하여 복원한다면 mysqldump를 통해 복원이 되지만, SQL 프로그램(HeidSQL, SQLDeveloper 등)을 활용한다면 Mysqldump를 통해 복원이 안 되는 경우가 발생된다. 이는 sql의 종료 문구인 ';'(쎄미 클론)들이 존재함을 확인해야 한다. 만약 나의 백업된 sql에 저렇게 쎄미 클론들이 존재한다면, 보통 방법으로는 mysqldump를 실행하다가 강제 종료 처리당하고 종료된다. 이를 해결하기 위해서는 잠시 SQL종료 문구를 변경할 필요가 있다. DELIMITER 사용하기 사용 방법은 매우 단순하다. 그냥 MYSQL의 SQL 입력창에 'DELIM..
[MariaDB] 대, 소문자 구분 없애기 MariaDB 설치 시, 주의해야 할 점 MariaDB는 정상 작동된다. 그러나 서버에서 SQL이 제대로 실행되지 않는 경우가 발생된다. Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table [테이블 명] 만약 서버의 log나 catalina에서 위와 같은 오류가 발생되었다면, 이는 TABLE의 대, 소문자의 불명확으로 발생되는 에러이다. 만약 위와 같은 오류가 동일한지를 확인하고 싶다면, 아래의 명령어를 MariaDB에서 실행해 보면 알 수 있다. show variables like 'lower_case_table_names'; Value 값..