icon
icon

Pythonでデータベースに接続し利用する方法【初心者向け】

初心者向けにPythonでデータベースに接続し利用する方法について解説しています。SQLiteとMySQLそれぞれの特徴、データベースの基本の扱い方についてサンプルで確認しながら学びましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonでデータベースに接続し利用する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

Pythonでデータベースに接続することができると、膨大なデータを効率的に扱えます。

実務でも、Pythonでデータベースに接続して、データの作成・読込・更新・削除作業を行うので、ぜひ学習してみてください。

 

目次

1時間でできる無料体験!

 

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

データベースに接続し、利用する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

データベースを利用する方法

プログラムでデータを扱う場合、テキストファイルやCSVファイルを使用することがあります。

テキストファイルやCSVファイルを使用して、プログラムを動作させること自体は可能です。

しかし、データの量が大量になった時、データベースというデータを扱う専用のアプリケーションを利用する必要があります。

データベースを使うと、テーブル(表)やレコード(行)という単位でデータを扱うことができます。

データの型も定義できるので、より厳密にデータを管理することが可能です。

データベースをデータベースサーバとして別サーバで運用することで、プログラムを設置しているメインサーバに障害が生じたときも、データだけは守ることが可能です。

 

今回は、Webサービスを制作する上でよく利用される、次の3つのデータベースを紹介します。

  1. SQLite
  2. MySQL
  3. PostgreSQL

 

SQLite

小規模なデータ向けのデータベースです。

Python の標準ライブラリに含まれている sqlite3 モジュールを使って利用できます。

接続例

import sqlite3
conn = sqlite3.connect('example.db')
conn.close()

解説

import sqlite3では、sqliteライブラリをインポートしています。

conn = sqlite3.connect(‘データベース名’)では、データベース名というデータベースに接続しています。

conn.close()では、接続を終了しています。

 

MySQL

中〜大規模向けのデータベースです。

高い柔軟性と拡張性を兼ね備えており、クラウド対応しています。

Google Trendsで調べるとSQLiteとPostgreSQLと比べ、最も検索されているデータベースです。

Webサービスを構築する場合、最も使用されているデータベースのため、エラーの解消情報が大量にあります。

MySQLに精通しているエンジニアを探すことが、他のデータベースに比べ簡単です。

接続例

import MySQLdb
 conn = MySQLdb.connect( user='root', passwd='root', host='localhost', db='mysql')
 con.close

解説

import MySQLdbでは、MySQLを利用するためのライブラリをインポートしています。

conn = MySQLdb.connect( user=’root’, passwd=’root’, host=’localhost’, db=’mysql’)では、MySQLに接続するための認証情報を設定して、MySQLに接続しています。

con.closeでは、MySQLの接続を終了しています。

 

PostgreSQL

中〜超大規模向けのデータベースです。

複雑なクエリ(処理)に向いています。

NoSQLのような超大規模なデータを使用し、多種多様なデータ型に対応しています。

PostgreSQLを選択するデータベースエンジニアは、MySQLの利用経験があり、中級者以上のデータベースエンジニアである可能性が高いです。

接続例

import psycopg2
conn = psycopg2.connect(" user=" + users +" dbname=" + dbnames +" password=" + passwords)
conn.close()

解説

import psycopg2では、PostgreSQLを利用するためのライブラリをインポートしています。

conn=psycopg2.connect(” user=”+users+” dbname=”+dbnames+” password=”+passwords)では、PostgreSQLに接続するための認証情報を設定して、PostgreSQLに接続しています。

conn.close()では、PostgreSQLの接続を終了しています。

 

実際に書いてみよう

今回のサンプルプログラムでは、 Python の sqlite3 モジュール を使用して SQLite の使い方を確認します。

プログラムは公式ドキュメントを参考にしています。

 

テーブルを作成してレコードを挿入してみましょう

テーブルを作成してレコードを挿入していますが、実行結果は特にありません。

エラーがでなければ実行は成功しています。

# 必要モジュールをインポートする
import sqlite3

# データベースに接続する
conn = sqlite3.connect('example.db')
c = conn.cursor()

# テーブルの作成
c.execute('''CREATE TABLE users(id real, name text, birtyday text)''')

# データの挿入
c.execute("INSERT INTO users VALUES (1, '煌木 太郎', '2001-01-01')")
c.execute("INSERT INTO users VALUES (2, '学習 次郎', '2006-05-05')")
c.execute("INSERT INTO users VALUES (3, '牌存 花子', '2017-09-10')")

# 挿入した結果を保存(コミット)する
conn.commit()

# データベースへのアクセスが終わったら close する
conn.close()

 

挿入したレコードを取得する

# データベースに接続する
conn = sqlite3.connect('example.db')
c = conn.cursor()

# レコードを生年月日の降順で取得する
for row in c.execute('SELECT * FROM users ORDER BY birtyday DESC'):
    print(row)

# データベースへのアクセスが終わったら close する
conn.close()

実行結果

(3.0, '牌存 花子', '2017-09-10')
(2.0, '学習 次郎', '2006-05-05')
(1.0, '煌木 太郎', '2001-01-01')

 

[PR] Pythonで挫折しない学習方法を動画で公開中

まとめ

今回は、Pythonでデータベースに接続する解説を行いました。

SQLiteは、小規模なデータ向けのデータベースでした。

MySQLは、中〜大規模向けのデータベースでした。

PythonでMySQLに接続する方法も参考にしてみてください。

PostgreSQLは、中〜超大規模向けのデータベースでした。

業務システム向けのデータベースという記事も参考にしてみてください。

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

Pythonを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する