演習課題「jobsテーブルの特定カラムを表示する」
右の環境には、FlaskでMySQLからjobsテーブルのデータを表示するプログラムが作成してあります。
このファイルを修正して、以下のカラムのデータだけをこの順番で表示してください。
- id
- job_name
- vitality
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、フォームにアクセスできる状態にしてください。
演習課題「jobsテーブルの特定条件のデータを表示する」
右の環境には、FlaskでMySQLからjobsテーブルのデータを表示するプログラムが作成してあります。
このファイルを修正して、以下の条件の全データを表示してください。
- idが、3以下
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、フォームにアクセスできる状態にしてください。
#03:Pythonでデータベースを使ってみよう1
ここでは、初歩的なSQL文を作成して、サンプルデータベースの中身を見ていきます。PythonとFlaskを使って、mydbデータベースの「players」テーブルからデータを色々な方法で取り出しましょう。
myapp/hello.pyfrom flask import Flask, render_template
import pymysql
app = Flask(__name__)
def getConnection():
return pymysql.connect(
host='localhost',
db='mydb',
user='root',
password='',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor
)
@app.route('/')
def select_sql():
connection = getConnection()
message = "Hello world"
sql = "SELECT * FROM players"
cursor = connection.cursor()
cursor.execute(sql)
players = cursor.fetchall()
cursor.close()
connection.close()
return render_template('view.html', message = message, players = players)
myapp/templates/view.html{% extends "layout.html" %}
{% block content %}
<h1>Hello SQL</h1>
<p>{{ message }}</p>
{% for player in players %}
<p>{{ player }}</p>
{% endfor %}
{% endblock %}
$ FLASK_APP=hello.py FLASK_ENV=development flask run
# 全てのデータを取り出す
SELECT * FROM players;# 一部のカラムだけ取得する
SELECT name, level FROM players;# 一部の行だけ取得する
SELECT * FROM players WHERE level >= 7;# 複数の条件を組み合わせる
SELECT * FROM players WHERE level >= 7 AND job_id <> 6;#条件指定とカラム選択を組み合わせる
SELECT name, level FROM players WHERE level >= 7;
myapp/hello.py sql = "SELECT * FROM players WHERE level >= %s AND level <= %s"
cursor = connection.cursor()
cursor.execute(sql, (5, 10))
players = cursor.fetchall()
構文 | 意味 | 例 |
---|---|---|
a = b | a と b が等しい | level = 10 |
a < b | a が b よりも小さい | level < 15 |
a > b | a が b よりも大きい | level > 7 |
a <= b | a が b 以下である | level >= 15 |
a >= b | a が b 以上である | level >= 7 |
a <> b | a と b が等しくない | level <> 1 |
条件をつなげるキーワード | 意味 |
---|---|
AND | 両方の条件が成立した場合 |
OR | どちらか一方の条件が成立した場合 |
1週間で学ぶIT基礎の基礎 - 忙しいあなたのためのSQL入門 第3回(2):ITpro SELECT文を制する者はSQLを制す(2) ---論理演算子AND,OR,NOT
http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20020118/1/
SQL クエリのコーディング規約(スタイルガイド) :: by and for engineers
https://yulii.github.io/sql-style-guide-20160327.html
データベースオブジェクトの命名規約 - Qiita
http://qiita.com/genzouw/items/35022fa96c120e67c637
Examples — PyMySQL 0.7.2 documentation
https://pymysql.readthedocs.io/en/latest/user/examples.html