PostgreSQL & MySQL 명령어 정리

🔹 PostgreSQL 명령어

psql -U 사용자명 -d postgres
명령어설명
\l전체 Database Instance 목록
\c접속한 DB Instance 변경
\dt접속한 DB Instance의 Table 목록
\dsSequence 목록
\dfFunction 목록
\dvView 목록
\duUser 목록
\qpsql 종료

🔹 MySQL 명령어

mysql -u 사용자명 -p  -- MySQL 접속 (비밀번호 입력 필요)
명령어설명
exit; 또는 quit;MySQL 종료
SHOW DATABASES;모든 데이터베이스 목록 확인
USE 데이터베이스명;특정 데이터베이스 사용
SHOW TABLES;현재 데이터베이스의 테이블 목록 확인
DESCRIBE 테이블명; 또는 DESC 테이블명;테이블 구조 확인
SELECT VERSION();MySQL 버전 확인
STATUS;MySQL 서버 상태 확인

🔹 SELECT 문법 복습

SELECT * FROM film LIMIT 10;
film_idtitledescriptionrelease_yearlanguage_idrental_durationrental_ratelengthreplacement_costrating
1ACADEMY DINOSAURA Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies2006160.998620.99PG
2ACE GOLDFINGERA Astounding Epistle of a Database Administrator And a Explorer who must Find a Car in Ancient China2006134.994812.99G
3ADAPTATION HOLESA Astounding Reflection of a Lumberjack And a Car who must Sink a Lumberjack in A Baloon Factory2006172.995018.99NC-17
4AFFAIR PREJUDICEA Fanciful Documentary of a Frisbee And a Lumberjack who must Chase a Monkey in A Shark Tank2006152.9911726.99G

🔹 특정 컬럼만 조회

SELECT title, rental_rate FROM film LIMIT 10;
titlerental_rate
ACADEMY DINOSAUR0.99
ACE GOLDFINGER4.99
ADAPTATION HOLES2.99
AFFAIR PREJUDICE2.99

🔹 WHERE 절을 사용한 조회

SELECT title, length FROM film WHERE length >= 120;

👉 길이가 120분 이상인 영화만 조회


🔹 INNER JOIN 예제

SELECT f.film_id, f.title, a.actor_id, a.first_name, a.last_name
FROM film f
INNER JOIN film_actor fa ON f.film_id = fa.film_id
INNER JOIN actor a ON fa.actor_id = a.actor_id
LIMIT 10;
film_idtitleactor_idfirst_namelast_name
1ACADEMY DINOSAUR1PENELOPEGUINESS
23ANACONDA CONFESSIONS1PENELOPEGUINESS
25ANGELS LIFE1PENELOPEGUINESS

🔹 EXPLAIN ANALYZE 예제

EXPLAIN ANALYZE SELECT * FROM film WHERE length > 120;
EXPLAIN 결과
-> Filter: (film.length > 120) (cost=103 rows=333) (actual time=0.093..2.1 rows=457 loops=1)
-> Table scan on film (cost=103 rows=1000) (actual time=0.0744..1.96 rows=1000 loops=1)

🔹 인덱스 생성

CREATE INDEX idx_length ON film(length);

👉 length 컬럼에 인덱스를 생성하여 검색 속도 최적화


🔹 인덱스 적용 후 실행 계획 확인

EXPLAIN ANALYZE SELECT * FROM film WHERE length > 120;
EXPLAIN 결과
-> Filter: (film.length > 120) (cost=103 rows=457) (actual time=0.0524..2.07 rows=457 loops=1)
-> Table scan on film (cost=103 rows=1000) (actual time=0.0355..1.93 rows=1000 loops=1)

0개의 댓글