[DATABASE/POSTGRESQL] DROP DATABASE 명령 : 데이터베이스 삭제하기
■ DROP DATABASE 명령을 사용해 데이터베이스를 삭제하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 |
DROP DATABASE testdb; |
※ testdb : 데이터베이스명
■ DROP DATABASE 명령을 사용해 데이터베이스를 삭제하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 |
DROP DATABASE testdb; |
※ testdb : 데이터베이스명
■ 우분투에서 PSQL에 접속하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2. [터미널]에서 아래 명령을 실행한다. ▶
■ 날짜/시간을 처리하는 방법을 보여준다. ▶ 테스트 테이블 (SQL)
1 2 3 4 5 6 7 8 9 |
CREATE TABLE item ( item_id INTEGER NOT NULL PRIMARY KEY, item_name VARCHAR (100) NOT NULL, purchase_time TIMESTAMP NOT NULL, price INTEGER NOT NULL ); |
▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import datetime import psycopg2 connection = psycopg2.connect(host = "192.168.29.118", port = "5432", database = "testdb", user = "testuser1", password = "test1234") cursor = connection.cursor() cursor.execute("DELETE FROM item;") cursor.execute( "INSERT INTO item (item_id, item_name, purchase_time, price) VALUES (%s, %s, %s, %s)", (12, "Keyboard", datetime.datetime.now(), 150) ) connection.commit() cursor.execute("SELECT purchase_time from item where item_id = 12") purchaseTime = cursor.fetchone() print("항목 구매 일자 :", purchaseTime[0].date()) print("항목 구매 시간 :", purchaseTime[0].time()) cursor.close() connection.close() """ 항목 구매 일자 : 2024-06-01 항목 구매 시간 : 00:58:33.167324 """ |
▶ requirements.txt
1 2 3 |
psycopg2-binary==2.9.9 |
■ Cursor 클래스의 rowcount 속성을 사용해 데이터 처리 건수를 구하는 방법을 보여준다. ▶ 테스트 테이블 (SQL)
1 2 3 4 5 6 7 8 |
CREATE TABLE test ( ID INTEGER PRIMARY KEY, NAME VARCHAR, AGE INTEGER ); |
▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import psycopg2 from psycopg2 import Error try: connection = psycopg2.connect(host = "192.168.29.118", port = "5432", database = "testdb", user = "testuser1", password = "test1234") cursor = connection.cursor() cursor.execute("DELETE FROM test") print(f"삭제 : {cursor.rowcount}건") cursor.execute("INSERT INTO test (id, name, age) VALUES (1, '홍길동', 20)") print(f"추가 : {cursor.rowcount}건") cursor.execute("INSERT INTO test (id, name, age) VALUES (2, '김철수', 30)") print(f"추가 : {cursor.rowcount}건") cursor.execute("INSERT INTO test (id, name, age) VALUES (3, '이영희', 25)") print(f"추가 : {cursor.rowcount}건") connection.commit() print("트랜잭션이 완료되었습니다.") except (Exception, Error) as error: connection.rollback() print("트랜잭션이 취소되었습니다.") print(f"PostgreSQL 연결시 에러가 발생했습니다 : {error}") finally: if connection: cursor.close() connection.close() print("PostgreSQL 연결이 종료되었습니다.") |
■ PYTHON과 POSTGRESQL 데이터베이스 데이터 타입 관계에 대해 보여준다. ▶ 표
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
========================================== Python PostgreSQL ========== ============================== None NULL bool bool float real, double int smallint, integer, bigint Decimal numeric str varchar, text date date time time, timetz datetime timestampe, timestamptz timedelta interval list ARRAY tuple Compositie types, IN syntax dict hstore ========================================== |
■ Connecton 클래스의 commit/rollback 메소드를 사용해 트랜잭션을 처리하는 방법을 보여준다. ▶ 테스트 테이블 (SQL)
1 2 3 4 5 6 7 8 |
CREATE TABLE test ( ID INTEGER PRIMARY KEY, NAME VARCHAR, AGE INTEGER ); |
▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import psycopg2 from psycopg2 import Error try: connection = psycopg2.connect(host = "192.168.29.118", port = "5432", database = "testdb", user = "testuser1", password = "test1234") cursor = connection.cursor() cursor.execute("DELETE FROM test") cursor.execute("INSERT INTO test (id, name, age) VALUES (1, '홍길동', 20)") cursor.execute("INSERT INTO test (id, name, age) VALUES (2, '김철수', 30)") cursor.execute("INSERT INTO test (id, name, age) VALUES (3, '이영희', 25)") connection.commit() print("트랜잭션이 완료되었습니다.") except (Exception, Error) as error: connection.rollback() print("트랜잭션이 취소되었습니다.") print(f"PostgreSQL 연결시 에러가 발생했습니다 : {error}") finally: if connection: cursor.close() connection.close() print("PostgreSQL 연결이 종료되었습니다.") |
▶ requirements.txt
■ Cursor 클래스의 execute/fetchone 메소드를 사용해 데이터베이스 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import psycopg2 connection = psycopg2.connect(host = "192.168.29.118", port = "5432", database = "testdb", user = "testuser1", password = "test1234") cursor = connection.cursor() cursor.execute("SELECT version();") versionString = cursor.fetchone() print(f"PostgreSQL 버전 : {versionString}") cursor.close() connection.close() """ PostgreSQL 버전 : ('PostgreSQL 11.10, compiled by Visual C++ build 1914, 64-bit',) """ |
▶ requirements.txt
1 2 3 |
psycopg2-binary==2.9.9 |
■ Connection 클래스의 get_dsn_parameters 메소드를 사용해 DSN 매개 변수를 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import psycopg2 connection = psycopg2.connect(host = "192.168.29.118", port = "5432", database = "testdb", user = "testuser1", password = "test1234") cursor = connection.cursor() print("=" * 100) print(connection.get_dsn_parameters()) print("=" * 100) print() cursor.close() connection.close() """ ==================================================================================================== {'user': 'testuser1', 'channel_binding': 'prefer', 'dbname': 'testdb', 'host': '192.168.29.118', 'port': '5432', 'options': '', 'sslmode': 'prefer', 'sslcompression': '0', 'sslcertmode': 'allow', 'sslsni': '1', 'ssl_min_protocol_version': 'TLSv1.2', 'gssencmode': 'prefer', 'krbsrvname': 'postgres', 'gssdelegation': '0', 'target_session_attrs': 'any', 'load_balance_hosts': 'disable'} ==================================================================================================== """ |
▶ requirements.txt
1 2 3 |
psycopg2-binary==2.9.9 |
■ connect 함수를 사용해 데이터베이스에 연결하는 방법을 보여준다. ▶ 예제 코드 1 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import psycopg2 with psycopg2.connect(host = "192.168.29.118", port = "5432", database = "testdb", user = "testuser1", password = "test1234") as connection: with connection.cursor() as cursor: cursor.execute("SELECT * FROM test;") resultList = cursor.fetchall() for result in resultList: print(result) """ (1, '홍길동', 20) (2, '김철수', 30) (3, '이영희', 25) """ |
▶ 예제 코드 2 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import psycopg2 with psycopg2.connect("host='192.168.29.118' dbname='testdb' user='testuser1' password='test1234'") as connection: with connection.cursor() as cursor: cursor.execute("SELECT * FROM test;") resultList = cursor.fetchall() for result in resultList: print(result) """ (1, '홍길동', 20) (2, '김철수', 30) (3, '이영희', 25) """ |
▶ requirements.txt