MS-SQL
* MS-SQL은 각 개별 데이터베이스별로 시스템 뷰가 존재하기 때문에 데이터베이스명으로 필터링할 필요 없음
데이터베이스 조회
SELECT * FROM sys.sysdatabases
SELECT name, database_id, create_date FROM sys.databases ;
SELECT DB_NAME() -> 현재 DB명 반환
SELECT DB_NAME(3) -> DB id 가 3인 DB명 반환
테이블 조회
SELECT * FROM sys.tables
SELECT * FROM information_schema.tables
컬럼 조회
SELECT * FROM sys.syscolumns
SELECT column_name FROM information_schema.columns WHERE table_name = "테이블명"
각테이블 상세 컬럼 정보
select * from sys.systypes
MySQL
데이터베이스 조회
SELECT DATABASE() -> 현재 사용중인 DB명
SELECT 1 FROM Information_schema.SCHEMATA WHERE SCHEMA_NAME = 'DB명' -> 해당 DB 존재여부 확인(있으면 1, 없으면 0)
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'DB명';
테이블 조회
SELECT 1 FROM information_schema.tables WHERE table_schema = 'DB명' AND table_name = '테이블명' -> 테이블의 존재여부 확인(있으면 1, 없으면 0)
SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.tables WHERE table_schema = 'DB명'
컬럼 조회
SELECT 1 FROM Information_schema.columns WHERE table_schema = 'DB명' AND table_name = '테이블명' AND column_name = '컬럼명' -> 컬럼의 존재여부 확인(있으면 1, 없으면 0)
SELECT column_name FROM information_schema.columns WHERE table_schema = 'DB명' AND table_name = '테이블명'
Maria DB
데이터베이스 조회
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'DB명';
SELECT * FROM information_schema.SCHEMATA;
테이블 조회
SELECT * FROM informaiton_schema.TABLES
SELECT TABLE_NAME FROM information_schema.tables WHERE table_schema = 'DB명'
컬럼 조회
SELECT * FROM information_schema.COLUMNS
SELECT column_name FROM information_schema.columns WHERE table_schema = 'DB명' AND table_name = '테이블명'
SQLite
* SQLite에는 information_schema 가 없고 sqlite_master 라는게 있다.
데이터베이스 조회
SELECT를 사용한 데이터베이스 조회는 없는듯 하다.
데이터베이스 버전 조회
sqlite_version()
테이블 조회
SELECT tbl_name FROM sqlite_master;
SELECT name FROM sqlite_master;
name 이랑 tbl_name 이랑 같음
컬럼 조회
SELECT * FROM information_schema.SCHEMATA;SELECT sql FROM sqlite_master WHERE name='테이블명' AND sql LIKE '%컬럼명%'
sql에는 해당 테이블을 만들때 사용한 sql문이 저장되어 있다. (e.g CREATE TABLE 테이블명...)
Oracle DB
데이터베이스 조회
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'DB명';
테이블 조회
SELECT table_name FROM information_schema.TABLES WHERE table_schema = 'DB명'
컬럼 조회
SELECT column_name FROM information_schema.columns WHERE table_schema = 'DB명' AND table_name = '테이블명'
'Security > Web Hacking' 카테고리의 다른 글
sqlmap 모든 옵션 및 사용법 정리 (0) | 2019.04.03 |
---|---|
데이터베이스(DB) 종류 별 명령어 정리2 (0) | 2019.04.02 |
Command Injection 이란? (커맨드 인젝션) (0) | 2019.03.14 |
XSS(Cross-Site Scripting) 이란? (0) | 2019.03.14 |
SQL Injection 이란? (SQL 삽입 공격) (4) | 2019.03.13 |