데이터베이스56 728x90 반응형 [프로그래머스/오라클] 12세 이하인 여자 환자 목록 출력하기 해답 문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/132201 해답 소스 주소 https://github.com/EngineeringCode/study-coding-test-with-oracle/blob/main/programmers/high_score_kit/select/132201_patient.sql 배경 지식 SQL SELECT 문법 조건문(CASE WHEN, DECODE) 조회 테이블 PATIENT 조회 조건 12살 이하 여자 환자 전화번호가 없는 경우, 'NONE'으로 출력 정렬 방식 나이를 내림차순 정렬 나이가 같다면 환자이름으로 오른차순 정렬 SQL 해답 SELECT PT_NAME, PT_NO, GEND_CD, AGE, DEC.. 2022. 11. 7. [프로그래머스/오라클] 과일로 만든 아이스크림 고르기 해답 문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/133025 해답 소스 주소 https://github.com/EngineeringCode/study-coding-test-with-oracle/blob/main/programmers/high_score_kit/select/133025_ice_cream.sql 동작 환경 Oracle RDBMS 배경 지식 SQL SELECT 문법 JOIN 조회 테이블 FIRST_HALF ICECREAM_INF 조회 조건 아이스크림의 상반기 총 주문량이 3,000보다 높은 것 아이스크림의 주성분이 과일일 것 정렬 방식 총 주문량을 내림차순으로(큰 순서대로) SQL 해답 SELECT O.FLAVOR FROM (S.. 2022. 11. 6. [오라클/티베로] 사용자 정보 및 목록 확인 사용자 목록 확인 아래의 명령어를 입력하면 전체 사용자 목록이 나타난다. SELECT * FROM all_users; 사용자 정보 확인 좀 더 자세한 사용자의 정보를 확인하고 싶다면 아래의 명령어로 확인할 수 있다. SELECT * FROM DBA_USERS; 참고문서 [1] "6.101 DBA_USERS", 1412 of 2693 pp., Oracle Database Online Documentation 12c Release 1 (12.1), Oracle. @원문보기 2022. 9. 14. 티베로 6를 시작하는 명령어와 중지하는 명령어 티베로 시작 명령어 명령 프롬프트를 관리자 권한으로 실행한 다음 아래의 명령어를 입력하면 아래의 사진처럼 티베로가 시작된다. tbboot 티베로 중지 명령어 티베로를 중지하는 방법도 시작하는 방법과 유사하게 관리자 권한으로 명령 프롬프르틀 실행한 다음 아래의 명령어를 입력하면 아래의 사진처럼 중지된다. 티베로 상태에 따라 중지할 때 옵션이 나타나는데 적당한 것을 선택하면 된다. tbdown 2022. 9. 6. 티베로(Tibero) 버전 확인 방법 티베로의 버전을 확인하는 방법은 여러가지가 있지만 나는 쿼리(Query, 질의어)로 확인하는 것을 선호한다. 쿼리로 티베로 버전을 확인하는 방법은 아래와 같다. 티베로 버전 확인 쿼리 티베로에 접속하여 아래의 쿼리를 실행하면 아래의 사진처럼 티베로 버전이 나온다. SELECT * FROM vt_version; 2022. 8. 11. [티베로] 테이블스페이스를 생성하고 목록 확인(조회)하기 테이블스페이스 생성 티베로에서 테이블스페이스(Tablespace)를 생성하는 명령어는 아래와 같다. CREATE TABLESPACE 테이블스페이스명 DATAFILE '파일명.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 1G EXTENT MANAGEMENT LOCAL AUTOALLOCATE 테이블스페이스 삭제 아래의 명령어로 테이블스페이스를 삭제할 수 있다. DROP TABLESPACE 테이블스페이스명 테이블스페이스 파일 확인 아래의 명령어로 테이블스페이스 파일 목록을 확인할 수 있다. SELECT * FROM DBA_DATA_FILES 테이블스페이스 목록 확인 아래의 명령어로 모든 테이블 스페이스 목록을 확인할 수 있다. SELECT * FROM DBA_TABLES.. 2022. 8. 3. [티베로6] 테이블 및 컬럼 목록 조회하기 테이블 목록 조회 아래의 명령어를 입력하면 전체 테이블 목록을 조회할 수 있다. SELECT * FROM ALL_TAB_COMMENTS; 이름으로 테이블 찾기 아래의 명령어의 '%테이블명%' 부분을 수정하면 이름으로 테이블을 찾을 수 있다. SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME LIKE '%테이블명%'; 컬럼 목록 조회 아래의 명령어로 전체 컬럼 목록을 조회할 수 있다. SELECT * FROM ALL_COL_COMMENTS; 이름으로 컬럼 찾기 아래의 명령어의 '%컬럼명%' 부분을 수정하면 이름으로 컬럼을 찾을 수 있다. SELECT * FROM ALL_COL_COMMENTS WHERE COLUMN_NAME LIKE '%컬럼명%'; 전체 테이블과 컬럼 조.. 2022. 8. 2. [CentOS 7] MySQL 8.0 설치하는 방법 CentOS 7.8에 MySQL 8.0.30을 설치해야하는 일이 생겨서 하는 김에 정리하였다. 설치가능한 MySQL 8.0 저장소 확인 CentOS 7.8의 기본 YUM 저장소에는 MySQL 8.0이 없다. 그러므로 MySQL 공식 홈페이지에서 제공하는 MySQL 8.0 설치파일을 통해 설치를 진행하며 아래의 주소에서 설치가능한 MySQL 정보를 확인할 수 있다. MySQL 설치 파일 주소 : https://dev.mysql.com/downloads/repo/yum/ MySQL 8.0 저장소 설치 Red Hat Enterprise Linux 7에 설치가 가능하면 CentOS 7에도 설치가 가능하다. 위 목록에서 얻은 저장소 설치 파일 주소를 얻는다. 아래처럼 명령어를 작성하여 실행한다. yum insta.. 2022. 8. 1. IMD(In-memory Database, 인 메모리 데이터베이스, Main Memory Database System, MMDB) IMD 정의 IMD(In-memory Database, 인 메모리 데이터베이스)는 데이터베이스를 메인 메모리에 적재하여 고속처리를 지향하는 데이터베이스를 말한다. 컴퓨터의 메인 메모리에 적재되기 때문에 MMDB(Main Memory Database, 메인 메모리 데이터베이스)로도 부른다. IMD의 활용 현재의 컴퓨터 설계로는 전원이 끊어지면 메인 메모리에 있던 데이터가 모두 유실되기 때문에 현재 데이터베이스 정보를 잃어버릴 가능성이 있는 것이 단점이나 아주 빠른 응답이 필요한 서비스의 경우 이러한 단점에도 불구하고 IMD를 사용한다. 실시간이 중요한 응용에서 활용하면 좋은 기술이며 아래와 같은 데이터 유형에는 IMD가 적합하다. 의료기기 모니터링 실시간 재무 분석 온라인 경매 게임 지리 정보 시스템(GI.. 2022. 7. 28. [CentOS 7] 워드프레스 설치 중 'Permission denied'가 발생하는 경우 워드프레스를 설치 중에 '데이터베이스 연결을 구축하는 중 오류입니다'라는 메시지가 떠서 'wp-config.php'파일을 수동으로 생성하고 디버그 옵션을 활성화시키니 'Permission denied'라는 메시지가 나타났다. 나의 경우는 데이터베이스 서버를 별도로 두고 있었기 때문에 SELinux에서 데이터베이스로 연결을 차단하여 발생하는 문제였다. 1. 아파치 웹서버 네트워크 연결 권환 활성화 아래의 명령어를 입력하여 네트워크 연결 권한을 활성화한다. setsebool httpd_can_network_connect_db=1 2. 워드프레스 설치 진행 잘 적용이 되면 워드프레스 설치화면을 새로고침한다. 아래처럼 워드프레스 설치화면이 나타나면 잘 된 것이다. 2021. 4. 18. [MariaDB] Incorrect string value "\xF0\x9F\x8E\xB5\x0A\x0A" 이모지 오류 조치 MariaDB를 데이터 저장소로 사용하고 있는 프로그램을 개발 중에 특정 문자열을 추가(INSERT)하니 "(0x80004005): Incorrect string value: '\xF0\x9F\x8E\xB5\x0A\x0A' for column" 이런 오류가 발생하는 경우가 있다. 이런 문자값은 보통 이모지를 입력했을 때 나타나며 이모지를 나타내기 위해서는 4바이트가 필요하다. 하지만 현재 설정된 인코딩이 그 값을 지원하지 못하고 있지 못하면 저런 오류가 발생한다. 이를 해결하기 위해서는 데이터베이스 인코딩 설정을 'utf8mb4'로 하면 제대로 동작한다. 1. MariaDB 인코딩 설정을 변경한다. 아래와 같이 명령어를 입력하여 MariaDB 서버의 인코딩 설정을 변경한다. vi /etc/my.cnf.d.. 2021. 4. 8. [CentOS 7] MariaDB 방화벽 허용 CentOS7의 방화벽 정책 CentOS 7은 방화벽 때문에 자신의 컴퓨터가 아닌 다른 컴퓨터에서 접근 하는 것을 기본적으로 차단하고 있다. 웹 서버와 DB 서버를 분리한 경우 웹 서버에서 DB 서버로 접근할 수 있도록 방화벽을 허용해줄 필요가 있다. 명령어는 아래 사진과 같다. 방화벽 허용 정책 설정 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="아이피주소/서브넷마스크" port protocol="프로토콜명" port="포트번호" accept" firewall-cmd --reload 방화벽 허용 정책 삭제 firewall-cmd --permanent --remove-rich-rule="rule family="ip.. 2021. 4. 6. [CentOS 7/8] MariaDB 재설치하기 MariaDB를 설치하고 이것저것 테스트하던 중 정전이 발생하여 MariaDB 관련 데이터가 상당히 망가졌다. 복구를 하려고 했으나 내 능력에선 복구에 실패했다. 다행히 데이터베이스 자료는 백업되어 있었기 때문에 재설치하기로 하였다. 1. 기존 MariaDB 설치 확인 yum list installed mariadb\* 위의 명령어를 입력하여 MariaDB 가 설치되어있는 것을 확인한다. 2. 기존 MariaDB 삭제 아래의 사진과 같이 아래의 명령어를 이용하여 삭제한다. yum remove MariaDB-server.x86_64 3. MariaDB 설치 아래의 명령어를 입력하여 MariaDB를 설치한다. yum install mariadb mariadb-server 4. MariaDB 시작 아래의 명령.. 2021. 3. 29. XE1 "Call to undefined function mysql_connect()" 오류 조치 XE1로 운영 중인 사이트가 잘 되다가 업데이트 후에 아래와 같은 메시지가 뜨면서 동작하지 않을 때가 있다. 이는 데이터베이스 설정파일의 MySQL을 지칭하는 속성명이 바뀌어서 발생하는 문제이기에 설정을 수정하면 해결할 수 있다. Fatal error: Uncaught Error: Call to undefined function mysql_connect() in 2021. 3. 28. [CentOS 7/8] MariaDB 인코딩 설정하기 MariaDB에서 기본적으로 사용할 인코딩을 지정해야 자동으로 무언가를 할 때든 협업할 때든 간에 일이 수월하게 풀린다. CentOS 7에 설치한 MariaDB의 인코딩을 바꾸는 방법은 다음과 같다. 1. MariaDB 설정 파일 열기 vi /etc/my.cnf.d/server.cnf 2. MariaDB 설정 파일 수정 적당한 곳에 인코딩 설정을 입력한다. 필자의 경우 UTF-8로 지정하기 위해 아래처럼 입력했다. character_set_server = utf8 이모지 활용을 위해 utf8mb4로 인코딩을 지정하고 싶다면 아래처럼 입력하면 된다. character_set_server = utf8mb4 2021. 3. 28. 스프링 프레임워크에서 트랜잭션을 설정할 때 주의해야할 것 스프링 프레임워크에서 트랜잭션을 설정하는 것은 인터넷에 잘 나와있다. 하지만 몇 가지 중요한 포인트를 놓쳐서 하루 종일 시간을 날렸다. 트랜잭션 어노테이션 혹은 트랜잭션을 위한 AOP를 설정할 때는 서블릿 컨텍스트 설정 파일(servlet-context)에다가 해당 내용을 기입해야한다는 것이었다. "설정 값만 보면 정상인데 왜 이게 동작을 안 하지?"라는 생각을 하며 있었는데 참 허탈하다. 이거 외에도 컨트롤러가 아닌 @Component, @Service, @Repository 유형의 클래스 또는 그 클래스의 메서드에다가 트랜잭션을 설정한다는 점과 트랜잭션을 위해서는 인터페이스가 필요하다는 것을 알았다. 아직은 어떤 이유로 이렇게 써야하는 건지를 모르겠다. 나중에 알게 되면 내용을 추가하겠다. [참고] .. 2020. 9. 7. 이전 1 2 3 다음