728x90
반응형
데이터 설계하기
🫐 테이블 설계하기
- 테이블명, 컬럼명, 컬럼타입, null 여부에 대한 정의가 필요함
- 산출물
- 테이블 정의서
- ERD
- 스크립트 명세서
🫐 테이블 정의서
- 자료형 길이 설정 시 한글은 *2
- double
소숫점을 가지는 많은 양의 데이터
정밀도를 요구하는 데이터
소숫점 아래 값이 많은 데이터
🫐 스크립트 명세서
- SQL에 그대로 작성하여 테이블 생성
Create Table time_power_demand(
ymd varchar(10) NOT NULL,
time varchar(4) NOT NULL,
power DOUBLE NOT null
);
DB 연결하기
🫐 데이터 저장시에 유용한 라이브러리
- sqlalchemy
- 설치 : pip install sqlalchemy
🫐 데이터 저장시에 유용한 라이브러리
- pymysql
- 설치 : conda install -c conda-forge pymysql
- 설치 : pip install pymysql
🫐 Database 연결하기
from sqlalchemy import create_engine
### 연결정보 작성
db_connection_info = "mysql+pymysql://gjuser:dbdb@localhost:3306/gjdb"
### Database 연결하기
db_connection = create_engine(db_connection_info)
db_connection
데이터 프레임을 Table에 저장시키기
🫐 컬럼명 수정
- 데이터프레임의 컬럼명을 테이블의 컬럼명과 같게 수정
- 특정 컬럼명만 수정하고자 할 때
→ df.columns = [{"년도" : "ymd"}]
# - 데이터프레임의 컬럼명 전체수정하기
df.columns = ["ymd", "time", "power"]
df
🫐 데이터 저장하기
df.to_sql(name="time_power_demand",
con=db_connection,
index=False,
if_exists="append")
8760 rows 저장 완료
SQL 조회시 값이 들어가 있는 것을 확인할 수 있다.
🫐 데이터베이스 자원 반환(접속 끊기)
- 연결 종료하기
db_connection.dispose()
데이터 조회하기
🫐 데이터 조회
- 조회시에는 pymysql 라이브러리 사용
🫐데이터베이스 연결
import pymysql
### 접속 정보
# - 접속 허가를 위한 정보
# - 접속 id or 도메인
host = "localhost"
# - 사용자계정
user = "gjuser"
# - 패스워드
password = "dbdb"
# - 데이터베이스명
db = "gjdb"
# - 한글처리
charset = "utf8"
# - 조회시 컬럼명을 동시에 보여줄지 여부 설정
cursorclass = pymysql.cursors.DictCursor
🫐 DB 접속하기
- connect로 서버에 연결 허가를 요청하여 conn에 허가를 받음
try :
conn = pymysql.connect(host = host,
user = user,
password = password,
db = db,
charset = charset,
# autocommit = autocommit,
cursorclass = cursorclass)
print("DB접속 성공 >>> ", conn)
except :
print("DB Server Checking...")
🫐 커서 받아오기
cur = conn.cursor()
cur
🫐 Select 문 생성 후 DB에게 요청 및 응답 받기
- execute가 "Select * from time_power_demand"라는 요청문을 서버에게 가지고 가서 그에 대한 답을 가져
sql = "Select * from time_power_demand"
rs_cnt = cur.execute(sql)
print(f"{rs_cnt}건이 조회 되었습니다.")
🫐 커서 및 커넥션 정보 반납(종료)하기
try:
cur.close()
conn.close()
except :
print("이미 모든 커서와 접속 정보가 반납되었습니다.")
728x90
반응형
'Digital Boot > Database' 카테고리의 다른 글
[Data Wrangling] 데이터베이스 프로그램 실습 (1) | 2023.11.29 |
---|---|
[Data Wrangling] 데이터베이스 프로그램 (2) | 2023.11.29 |
[Data Wrangling] 데이터 수집하기 (0) | 2023.11.28 |
[Data Wrangling] Pandas판다스, 데이터 분석 / 조회 / 추가 / 필터링 (3) | 2023.11.28 |
[Database][SQL] 사용자 정의 함수 / VIEW / Procedure / 저장 모듈 (1) | 2023.11.27 |