Python SQL 시작

SQL에 들어가고 싶어요.


이름은 들어봤지만 SQL을 접한 적은 없다.앞으로 필요하니까 조금 예습하기로 했어요.
트위터에 중얼거렸는데 여러 가지 추천을 받아서 두 권부터 샀어요.
https://amzn.to/2ZtilxH
https://amzn.to/3nwsTER
둘 다 초보자를 대상으로 하는 거라 이해하기 쉬울 것 같지만 저는 개인적으로 간단명료한 SQL 입문을 좋아할 것 같습니다.

SQL이란?


데이터베이스를 조작하는 전용 언어입니다.데이터베이스, 개인 수준으로는 CSV나 엑셀이 가능하고 대규모로는 SQL을 사용하는 경우가 많습니다.이유는 퍼포먼스라서, 읽기와 쓰기, 검색의 사용이 편리하기 때문이죠. 여러 가지가 있죠.
그나저나 SQL은'루루'로 통하는 것 같다.영구
그리고 데이터베이스를 관리하려면 SQL에 따라 데이터를 관리하는 시스템(RDBMS)이 필요하다.RDBMS에는 MySQL, PostgreSQL, SQLite 등이 있다.
이번에는'SQL 2판 0에서 시작하는 데이터베이스 작업'을 위주로 설명하는'포스트 greSQL'을 설치해 파이토존에서 데이터베이스를 조작하는 곳까지 간단한 동작을 확인했다.
"어쨌든 SQL을 접하고 싶어요!"이런 사람들은 SQL 입문에서 소개한'dokoQL'이 브라우저를 통해서만 SQL의 편집과 집행을 시도하는 것을 쉽게 이해할 수 있어 매우 편리하다.내부에 "PostgreSQL"을 사용한 것 같습니다.
https://dokoql.com

PostgreSQL 설정


PostgreSQL을 설정합니다.책은 Windows 10의 기본 환경에 설치되어 있고 저는 Windows 11의 WSL2 환경에 설치되어 있습니다.Linux도 같은 조작으로 설정할 수 있을 것 같습니다.
참고할 사이트 등은 본 보도의 마지막 부분에 실릴 것이다.
먼저 WSL2 환경에 포함된 Windows PC의 설치에 대해서는 다음 기사를 참조하십시오.
https://zenn.dev/karaage0703/articles/211d89cc0a29a1
그런 다음 WSL2 환경에서 수행합니다.
먼저 PostgreSQL을 app로 설치합니다.
$ sudo apt update
$ sudo apt install -y postgresql postgresql-contrib
설치 후 초기 사용자postgres인 사용자가 제작되기 때문에 우선 PostgreSQL을 시작합니다.
$ sudo -i -u postgres
$ psql
그런데 오류가 생겼어요.
psql: could not connect to server: No such file or directory 
많이 조사한 결과 다음과 같다.Ver의 숫자를 확인합니다.
$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
12  main    5432 down   postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
다음 명령을 실행하고 시작할 때 오류가 제거되었습니다.
$ sudo pg_ctlcluster 12 main start
다시 정신을 가다듬고 다음 명령을 실행하면 PostgreSQL이 시작됩니다.
$ sudo -i -u postgres
$ psql
다음 명령도 가능합니다.
$ sudo -u postgres psql
테스트를 위해 새로운 사용자를 준비합니다.
$ createuser --interactive --pwprompt
이번에는 사용자 이름karaage과 비밀번호karaage입니다.본공연 때 끼면 절대 안돼.

PostgreSQL 작업 확인


여기서부터 "SQL 버전 2의 0부터 시작하는 데이터베이스 작업"을 참조하여 데이터베이스를 구축합니다.
먼저 DB를 만듭니다.
postgres=# CREATE DATABASE shop;
DB에서 양식을 만듭니다.
shop=# CREATE TABLE Shohin
shop-# (shohin_id CHAR(4) NOT NULL,
shop(# shohin_mei VARCHAR(100) NOT NULL,
shop(# shohin_bunrui VARCHAR(32) NOT NULL,
shop(# hanbai_tanka INTEGER ,
shop(# shiire_tanka INTEGER ,
shop(# torokubi DATE ,
shop(# PRIMARY KEY (shohin_id));
CREATE TABLE
테이블에 데이터를 입력합니다(첫 번째 행--.
shop=# -- DML:data
shop=# BEGIN TRANSACTION;
BEGIN
shop=# INSERT INTO Shohin VALUES ('0001', 'Tshirt', 'ifuku', 1000, 500, '2009-09-20');
INSERT 0 1
shop=# COMMIT;
COMMIT
확인 데이터.
shop=# SELECT shohin_id FROM Shohin;
 shohin_id 
-----------
 0001
(1 row)
SQL에는 여러 가지 문법이 있는 것 같지만 최소한의 동작으로 확인하면 OK.

Pythn의 SQL


파이톤이 판다스로 CSV를 하는 것처럼 SQL을 조작할 수 있다면 편리하다.그래서 트위터에서 가르쳐 준 sqlalchemy라는 소프트웨어를 사용해 보기로 했습니다.
파이썬은 내가 구축한 가상 환경이다.가상 환경은 필수적이지 않습니다. 필요하면 아래의 글을 참고하여 설정하세요.
https://zenn.dev/karaage0703/articles/5af7ce4b8b1a8a
필요한 프로그램 라이브러리를 설치합니다.
$ pip3 install sqlalchemy
$ sudo apt install -y libpq-dev
$ pip3 install psycopg2
방금 만든 데이터베이스 확인해 볼게요.다음 Python 코드를 실행합니다:.
from sqlalchemy import create_engine
from sqlalchemy import text
 

def main():
    engine = create_engine('postgresql://karaage:karaage@localhost/shop', echo=True)
    with engine.connect() as conn:
        result = conn.execute(text("SELECT shohin_id FROM Shohin;"))
        for row in result:
            print(row)

    engine.dispose()
 
if __name__ == "__main__":
    main()
$ python test_sql.py 
2021-10-28 01:32:30,115 INFO sqlalchemy.engine.Engine select pg_catalog.version()
2021-10-28 01:32:30,115 INFO sqlalchemy.engine.Engine [raw sql] {}
2021-10-28 01:32:30,116 INFO sqlalchemy.engine.Engine select current_schema()
2021-10-28 01:32:30,116 INFO sqlalchemy.engine.Engine [raw sql] {}
2021-10-28 01:32:30,116 INFO sqlalchemy.engine.Engine show standard_conforming_strings
2021-10-28 01:32:30,117 INFO sqlalchemy.engine.Engine [raw sql] {}
2021-10-28 01:32:30,117 INFO sqlalchemy.engine.Engine SELECT shohin_id FROM Shohin;
2021-10-28 01:32:30,118 INFO sqlalchemy.engine.Engine [generated in 0.00009s] {}
('0001',)
는 방금 데이터베이스를 확인했을 때의 결과와 같다.
이번에는 파이톤으로 데이터베이스에 접근할 때까지 확인하고 싶어서 SQL문을 직접 쳤고, sqlalchemy를 능숙하게 사용할 수 있다면 파이톤이 쓴 데이터베이스 처리도 할 수 있고pandas와 합작도 할 수 있다.

총결산


나는 SQL에 들어가려고 시도했다.완전히 이해한 상태까지는 아직 멀었지만, SQL 공포의 상태는 조금 벗어났죠.
만약 능숙하게 사용할 수 있다면 파이톤은 sqlalchemy를 통해pandas에서 데이터베이스를 조작할 수 있다.그곳에 가면 어느 정도의 자유가 있을 것이다.
드디어 출발선에 서서 이 환경에서 책을 읽으며 SQL에 대한 이해를 깊게 하자.
https://amzn.to/2ZtilxH
https://amzn.to/3nwsTER

참조 링크


PostgreSQL 설정


https://www.digitalocean.com/community/tutorials/how-to-install-postgresql-on-ubuntu-20-04-quickstart-ja

Python, sqlalchemy


https://cpp-learning.com/sqlalchemy-pandas/
https://laplace-daemon.com/basic-use-of-sqlalchemy/
https://docs.sqlalchemy.org/en/14/tutorial/dbapi_transactions.html

좋은 웹페이지 즐겨찾기