PythonでMySQLを使うとき、基本的なコマンドの表し方をまとめました。
データベースに関するもの
データベースの作成
CREATE DATABASE 名前;
import mysql.connector
mydb = mysql.connector.connect(
host='localhost',
user='myname',
password='mypasswd'
)
mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE mydb")
データベースの一覧表示
SHOW DATABASES;
...
mycursor=mydb.cursor()
mycursor.execute("SHOW DATABASES")
for db in mycursor:
print(db)
データベースを削除する
DROP DATABASE 名前;
...
mycursor=mydb.cursor()
mycursor.execute("DROP DATABASE データベース名")
テーブルに関するもの
tableの一覧
SHOW TABLES;
import mysql.connector
mydb = mysql.connector.connect(
host='localhost',
user='myname',
password='mypasswd'
database='データベース名'
)
mycursor=mydb.cursor()
mycursor.execute("SHOW TABLES")
for tbl in mycursor:
print(tbl)
tableの構造を表示
DESC テーブル名;
...
database='データベース名'
)
mycursor=mydb.cursor()
mycursor.execute("DESC blogposts")
for tbl in mycursor:
print(tbl)
tableの作成
CREATE TABLE テーブル名
フィールド名 データ型,
フィールド名 データ型,
フィールド名 データ型
);
...
mycursor.execute("CREATE TABLE mytable (id INT AUTO_INCREMENT PRIMARY KEY, usrname VARCHAR(255), email VARCHAR(255))")
tableを削除
DROP テーブル名;
sql = "DROP TABLE mytable"
mycursor.execute(sql)
レコードに関するもの
レコードデータを更新するには .commit()
が必要です。
レコードを追加
INSERT INTO レコードデータ;
sql = "INSERT INTO mytable (usrname, email) VALUES (%s, %s)"
val = ("Tanaka", "tanaka@mail")
mycursor.execute(sql, val)
mydb.commit()
テーブルの中のレコードを表示
SELECT * FROM テーブル名;
sql = "SELECT * from mytable"
mycursor.execute(sql)
for rec in mycursor:
print(rec)
レコードの検索
カラムに「文字列」が含まれる入ったデータを検索する。
SELECT * from テーブル名 WHERE カラム LIKE ‘%文字列%'”;
sql = "SELECT * from mytable WHERE usrname LIKE '%文字列%'"
mycursor.execute(sql)
for rec in mycursor:
print(rec)
データの個数を表示する
SELECT COUNT(*) FROM テーブル名;
sql = "SELECT count(*) from mytable"
mycursor.execute(sql)
print(mycursor.fetchone()[0])
レコードの値の更新
UPDATE テーブル名 SET フィールド名=値 条件式;
※条件式がないと、全レコードを書き換えてしまい、元に戻せない。
sql = "UPDATE mytable SET usrname = 'Yamada' WHERE usrname = 'Tanaka'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "件の書き換え")
レコードの削除
DELETE FROM テーブル名 WHERE 条件式;
※条件式がないと、全レコードを書き換えてしまい、元に戻せない。
sql = "DELETE FROM mytable WHERE usrname = 'Yamada'"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, "件を削除")
コメント