PostgreSQL & MySQL 명령어 정리
🔹 PostgreSQL 명령어
psql -U 사용자명 -d postgres
| 명령어 | 설명 |
|---|
\l | 전체 Database Instance 목록 |
\c | 접속한 DB Instance 변경 |
\dt | 접속한 DB Instance의 Table 목록 |
\ds | Sequence 목록 |
\df | Function 목록 |
\dv | View 목록 |
\du | User 목록 |
\q | psql 종료 |
🔹 MySQL 명령어
mysql -u 사용자명 -p
| 명령어 | 설명 |
|---|
exit; 또는 quit; | MySQL 종료 |
SHOW DATABASES; | 모든 데이터베이스 목록 확인 |
USE 데이터베이스명; | 특정 데이터베이스 사용 |
SHOW TABLES; | 현재 데이터베이스의 테이블 목록 확인 |
DESCRIBE 테이블명; 또는 DESC 테이블명; | 테이블 구조 확인 |
SELECT VERSION(); | MySQL 버전 확인 |
STATUS; | MySQL 서버 상태 확인 |
🔹 SELECT 문법 복습
SELECT * FROM film LIMIT 10;
| film_id | title | description | release_year | language_id | rental_duration | rental_rate | length | replacement_cost | rating |
|---|
| 1 | ACADEMY DINOSAUR | A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies | 2006 | 1 | 6 | 0.99 | 86 | 20.99 | PG |
| 2 | ACE GOLDFINGER | A Astounding Epistle of a Database Administrator And a Explorer who must Find a Car in Ancient China | 2006 | 1 | 3 | 4.99 | 48 | 12.99 | G |
| 3 | ADAPTATION HOLES | A Astounding Reflection of a Lumberjack And a Car who must Sink a Lumberjack in A Baloon Factory | 2006 | 1 | 7 | 2.99 | 50 | 18.99 | NC-17 |
| 4 | AFFAIR PREJUDICE | A Fanciful Documentary of a Frisbee And a Lumberjack who must Chase a Monkey in A Shark Tank | 2006 | 1 | 5 | 2.99 | 117 | 26.99 | G |
🔹 특정 컬럼만 조회
SELECT title, rental_rate FROM film LIMIT 10;
| title | rental_rate |
|---|
| ACADEMY DINOSAUR | 0.99 |
| ACE GOLDFINGER | 4.99 |
| ADAPTATION HOLES | 2.99 |
| AFFAIR PREJUDICE | 2.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_id | title | actor_id | first_name | last_name |
|---|
| 1 | ACADEMY DINOSAUR | 1 | PENELOPE | GUINESS |
| 23 | ANACONDA CONFESSIONS | 1 | PENELOPE | GUINESS |
| 25 | ANGELS LIFE | 1 | PENELOPE | GUINESS |
🔹 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) |