빅데이터 분석/DB

[DB] 관련 쿼리

카이옌 2022. 5. 23. 12:43

[Tibero] database명 조회 

SELECT name FROM v$database;

 

 

[Tibero] 테이블 목록 조회
-- 모든 owner 기준으로 출력된다. 

-- 계정들 중 일부가 owner인 경우가 많다. 

SELECT * FROM ALL_TABLES

유사)
SELECT * FROM ALL_TAB_COMMENTS

 

[Tibero] LIKE 검색

SELECT * FROM 테이블명
WHERE 컬럼명 LIKE '% 검색어 %'

ex)
SELECT * FROM ALL_TABLES
WHERE TABLE_NAME LIKE '% 검색어 %'

 

[Tibero] 권한 조회

-- 특정 계정이 테이블에 접근할 권한을 부여받았는지 확인할 수 있다. 

SELECT * FROM DBA_SYS_PRIVS
WHERE GRANTEE = ' 계정명'

 

[Tibero] 현재 유저가 소유한 모든 테이블 조회

SELECT table_name FROM user_tables;

 

[Tibero] select any table 권한이 있는 계정에서 테이블 조회

-- owner가 아니더라도 접근권한이 있는 계정으로 접속했다면, owner명(스키마 명)과 table명을 . 으로 결합하여 조회할 수 있다. 

-- 시노님(synonym, 별칭)이 생성되어 있다면 owner명 없이 table명만으로도 조회할 수 있다. 

SELECT * FROM owner명.table명

ex)
owner : BATMAN
table : MY_CAR_LIST

- 시노님 x
SELECT * FROM BATMAN.MY_CAR_LIST

- 시노님 o
SELECT * FROM MY_CAR_LIST

 

 

참고

https://m.blog.naver.com/bb_/222102665060

https://devjhs.tistory.com/81

https://doughman.tistory.com/26

https://mymuseum.tistory.com/9

https://gent.tistory.com/397

 

 

[MS-SQL] 테이블 목록 & 소유자 조회

SELECT a.name AS [Database],
             b.name AS [Owner]
FROM sys.databases AS a
JOIN sys.sql_logins AS b ON a.owner_sid = b.sid

 

SELECT	T1.[name]	AS USER_NM
    ,	T3.[name]	AS OBJECT_NM
    ,	T3.[type_desc]
    ,	T2.[permission_name]
    ,	T2.state_desc				
FROM	sys.database_principals	AS T1 WITH(NOLOCK)
        INNER JOIN sys.database_permissions	AS T2 WITH(NOLOCK)
            ON	T2.grantee_principal_id = T1.principal_id
        INNER JOIN sys.objects	AS T3 WITH(NOLOCK)
            ON	T3.[object_id] = T2.major_id

 

참고

https://ryean.tistory.com/17

https://irisgnu.tistory.com/56

 

 

[MS-SQL] 특정 날짜의 데이터 조회하기 (년월일 추출, 날짜변환, 시간변환)

select * from "DB의 테이블명"
where CONVERT(char(8), LOG_DATE, 112) = CONVERT(CHAR(8), dateadd(day, -0, getdate()), 112)

-- 날짜 계산하는 함수
-- dateadd(날짜단위, 기준시간, 소스)
-- 기준시간 -0은 금일, -1은 전일, -2는 전전일이다. 
-- 오늘 날짜를 가져오는 함수
-- getdate()

참고

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=vocal79&logNo=220741092941 

 

 

 

[MS-SQL] GROUPING 시 with rollup 을 함께 기술

(컬럼A 기준으로 그룹화할 때 B,C,D컬럼 값이 여러 가지일 경우 그냥 그룹화가 되지 않는다.)

select CONVERT(varchar, LOG_DATE, 112) as new_date, count(varchar, LOG_DATE, 112) as cnt
from "DB의 TABLE명"
group by CONVERT(varchar, LOG_DATE, 112) with ROLLUP
order by CONVERT(varchar, LOG_DATE, 112) desc

참고

https://kimsyoung.tistory.com/entry/GROUP-BY%E4%B8%8B-%EC%98%A4%EB%A5%98%EB%AC%B8-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0

https://gent.tistory.com/377

 

 

 

[postgresql]

-- postgresql 콘솔 진입
psql

-- database 생성
CREATE DATABASE 데이터베이스명

-- 전체 database 목록 조회
\l

-- database 변경 
\c 데이터베이스명
\c 데이터베이스명 계정명

-- 외부파일을 통한 쿼리 실행
\i 파일명

 

 

참고

https://browndwarf.tistory.com/51

 

반응형