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

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

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

監修してくれたメンター

nakamoto

アジマッチ有限会社代表取締役社長。書籍化歓迎。対応業務:PHP(Laravel)、機械学習、Vue.js、LAMP・AWS、越境EC、CTO、エンジニア採用、CTO、経営者の不安解決コンサルティング。

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は、中〜超大規模向けのデータベースでした。

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

コラム

実は私も!?独学で損する人の特徴

「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ 独学には向き不向きがあり、実はスクールが向いている人も大勢います。

そんな方のために参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
  • ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
  • ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、 スクールが向いているかもしれません。
お試しのつもりで、まずは一度 無料体験 に参加してみませんか?

初心者でも最短1時間で学習が体験できるカリキュラム、現役エンジニアに何でも相談できるカウンセリング、無制限のチャット質問サービスすべて無料で体験 できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら体験者限定の割引特典付き! 無料体験はこちら

Pythonを学習中の方へ

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

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

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

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

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

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

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

独学に限界を感じたら…テックアカデミーに相談しよう

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

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

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

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

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

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