본문 바로가기

개발하는 '정'/DB21

[Oracle] Order by 1, 2, ... 구문의 의미와 사용 방법 [Oracle] Order by 1, 2,... 구문의 의미와 사용 방법 인수인계 받은 쿼리를 분석하던 중 아래의 구문을 발견하였다. "Order by 1, 2, 3 desc, 4" 이는 직관적으로 이해할 수 있다. "Order by 첫 번째 컬럼, 두 번째 컬럼, 세 번째 컬럼 desc, 네 번째 컬럼"이라는 의미이다. 오라클의 "Order by 상수"의 사용 방법은 아래와 같다. select 2 col1,'aaa' col2, 'A' col3 from dual UNION ALL select 2 col1,'aaa' col2, 'B' col3 from dual UNION ALL select 1 col1,'bbb' col2, 'B' col3 from dual ORDER BY 1, 3, 2 -- Order b.. 2023. 6. 7.
오라클 날짜 계산 (년, 월, 일, 시간 더하기/빼기) 오라클 날짜 계산 (년, 월, 일, 시간 더하기/빼기) 1. 연도 날짜를 추출하는 extract 함수를 이용한다. select to_char(sysdate,'YYYY-MM-DD') now , extract(year from sysdate)-3 before , extract(year from sysdate) today , extract(year from sysdate)+3 later from dual 2. 월 월을 계산하는 함수는 "ADD_MONTHS(기준일자, 더할값)"를 사용한다. sysdate를 사용하여 일자를 기준으로 계산할 수도 있다. (systimestamp도 동일) ※ 월,일,시간의 경우 extract를 사용하면 현재 날짜는 정확히 불러오지만, 계산은 부정확할 수 있으므로 적절한 함수를 이용해.. 2023. 3. 15.
ORACLE 최근 3개년 데이터 (+ 없으면 0으로 출력) ORACLE 최근 3개년 데이터 (없으면 0으로 출력) 1. 테이블명 'TABLENAME'에는 아래와 같은 데이터가 있다. YEAR (연도) 값 (COUNT) 2023 100,000 2021 50,000 2020 120,000 2016 38,000 2. 최근 3개년 데이터 조회 쿼리는 아래와 같다. SELECT YEAR,COUNT FROM TABLENAME WHERE YEAR > extract(year from sysdate)-2 --WHERE TO_CHAR(YEAR,'YYYY') > extract(year from sysdate)-2 --YEAR 필드가 NUMBER 값일 때는 TO_CHAR 적용 YEAR (연도) 값 (COUNT) 2023 100,000 2021 50,000 3. 비어있는 연도 (202.. 2023. 1. 18.
오라클 테이블 권한 조회 오라클 테이블 권한 조회 SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '테이블명' ORDER BY TABLE_NAME GRANTEE : 권한 부여 대상 OWNER : 객체 소유자 TABLE_NAME : 테이블명 GRANTOR : 권한 부여자 PRIVILEGE : 부여된 권한 TYPE : 테이블 타입 (VIEW, TABLE 등) 2022. 12. 22.
MSSQL SSMS 설치 (SQL Server Management Studio 설치) MSSQL 이용을 위한 SSMS 설치 방법 (microsoft SQL Server Management Studio 설치) 1. 설치 프로그램 다운로드 https://learn.microsoft.com/ko-kr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16 SSMS(SQL Server Management Studio) 다운로드 - SQL Server Management Studio (SSMS) 최신 버전의 SSMS(SQL Server Management Studio)를 다운로드합니다. learn.microsoft.com SSMS(SQL Server Management Studio ) 18.12.1 무료 다운로드 링크를 .. 2022. 12. 8.
[MySql] 현재 접속 수 확인, 동시 접속 수 늘리기 [MySql] 현재 접속 수 확인, 동시 접속 수 늘리기 * DB 현재 접속 커넥션 수 확인 show status like 'threads_connected'; ​ * DB 동시 접속 설정 확인 show variables like 'max_connect_errors'; show variables like 'max_connections'; * DB 동시 접속 증설 set global max_connections = 300; 2022. 10. 28.
MSSQL 순번 출력, 순번으로 update 하기 / UPDATE with ROWNUM() MSSQL rownum으로 update 1. date 순서에 따라 순번 출력 쿼리 SELECT ROW_NUMBER() OVER(ORDER BY (date)) rownum --순번 , num --기존 AI PK값 , date FROM tableA ; rownum이라는 이름의 순번이 출력되며, 아래 도표와 같이 출력된다. rownum num date 1 4 2022.12.01 2 5 2022.12.02 3 7 2022.12.03 4 1 2022.12.04 5 2 2022.12.05 6 3 2022.12.06 7 8 2022.12.07 8 6 2022.12.08 이때, num값을 rownum(순번)으로 업데이트하고 싶다면 아래 쿼리를 활용. 2. 순번으로 업데이트 WITH tmp_table AS ( SELEC.. 2022. 9. 27.
[MYSQL] 이모지 입력하기 / 윈도우 이모디콘 입력하기 (phpMyAdmin) 보통 DB에서 utf8을 사용하는데, utf8은 이모지를 지원하지 않는다. utf8은 글자당 3byte를 지원하지만 이모지는 4byte이기때문 즉, 이모지를 지원하는 utf8mb4로 변경해야한다. 작업 전 DB와 테이블은 꼭 백업해두기...! 1. DB 데이터정렬방식 변경 DB의 '테이블 작업' 탭으로 이동하여 데이터 정렬방식을 utf8mb4_unicode_ci 로 변경한다. 2. 테이블 데이터 정렬방식 변경 이모지를 사용할 테이블의 '테이블 작업' 탭으로 이동하여 '테이블 옵션'의 '데이터정렬방식'을 utf8mb4_unicode_ci 로 변경한다. 3. 필드 데이터정렬방식 변경 해당 테이블에서 '구조' 탭으로 이동하여 이모지를 입력해야하는 필드의 '데이터정렬방식'을 utf8mb4_unicode_ci 로.. 2022. 9. 5.
[MYSQL] COUNT의 MAX 구하기 (GROUP BY 2개 이상) 여러 커뮤니티에 질의를 올려도 단일 행 GROUP BY 인 경우만 알려줘서.. 그래도 많은 사람들의 도움을 받아 해결했기 때문에 다른 사람들에게도 도움이 될까 싶어서 적어본다.. "select 필드1, 필드2, count(*) from TABLE group by 필드1, 필드2;" 쿼리를 실행하면 아래 표와 같은 결과가 나오는데, 필드 2가 중복되는 경우 필드1과 상관없이 COUNT(*)가 제일 큰 값만 가지고 오고 싶은 상황. (필드1 값이 18,19인 행만 남게) 필드1 필드2 count(*) 18 7 3 19 9 5 20 9 1 아래 쿼리를 쓰면 SELECT t1.* FROM ( SELECT 필드1, 필드2, count(*) as cnt FROM TABLE GROUP BY 필드1, 필드2 ) t1 .. 2022. 7. 13.
반응형