質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

857閲覧

PythonからMySQLのカラムを変更する方法が分かりません。

nikuro

総合スコア9

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/19 08:46

編集2021/05/19 16:02

PythonからMySQLのカラムを変更する方法が分かりません。
MySQLのテーブル(test)には

ID l-name f-name gender
01 山田  タロウ  1
02 田中  コウタ 1

が存在しています。

UPDATEを使って書くことまでは調べました。
WHEREで、IDと一致させてUPDATEさせたいです。

苗字、名前、性別を入力して、同じIDを持つ人間の情報を変更させたいです。

やりたいこと
IDを使って人物を指定➡苗字or名前or性別のどれかを選んで変更する

MySQLをインポートする作業しか出来ていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2021/05/19 09:04

WHERE の書き方が分からないということでしょうか? どこで詰まっているのか分かりづらいですので、途中まで書いたコードをご提示いただくと回答が付きやすくなると思います。
nikuro

2021/05/19 16:03

MySQLをインポートする作業しか出来ていません。
guest

回答2

0

Python抜きにした、UPDATEのSQL文はわかる状態でしょうか。

・わかる
取得させたカーソルに対してexecuteでUPDATEを発行させるだけです。

・わからない
まずは、SQLの理解が必要となってきます。同じIDを持つ人間の情報を変更させたい、とは
具体的にどのような変更でしょうか。

 ちなみに、IDのような要素については、Primary Keyにする、ユニーク制約を設定するなどして
重複しないようにするのが一般的だと思います。

投稿2021/05/19 13:53

Ytaka

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nikuro

2021/05/19 14:56

UPDATEのSQL文の理解も怪しいです。 変更処理は苗字を、山田から田中に変更するなどです。 記載し忘れていましたが、IDはMySQLでプライマリーキーに設定してあります。
nikuro

2021/05/20 01:15

コマンドプロンプトでは UPDATE テーブル名 SET カラム名 = 値 (更新する列名と値) WHERE 更新する行を特定する条件 を使用することで変更できることを確認しました。
Ytaka

2021/05/30 04:38

IDがプライマリーキーとすると、同じIDを持つ人間の情報を変更したい、 と言うことと矛盾が生じます。 プライマリーキー=同じIDのレコードは許可されない
Ytaka

2021/05/30 06:14

もう少し、具体的な変更内容を記載頂いた方が 回答する側もイメージしやすいと思います。
guest

0

こんばんは。

問題文読ませていただきました。

こんな感じでしょうか?(コードは動かしていないです。)

Python

1# MySQLdb をインポート 2import MySQLdb 3 4# データベース接続とカーソル生成 5# 接続情報はダミーです。お手元の環境にあわせてください。 6connection = MySQLdb.connect( 7 host='localhost', 8 user='root', 9 passwd='your_password', 10 db='test', 11 charset='utf8' 12) 13cursor = connection.cursor() 14 15# エラー処理(例外処理) 16try: 17 # UPDATE 18 cursor.execute('update test set l-name="piyo" where ID="01"') 19except MySQLdb.Error as e: 20 print('MySQLdb.Error: ', e) 21 22# 保存を実行(忘れると保存されないので注意) 23connection.commit() 24 25# 接続を閉じる 26connection.close()

ご確認のほど、よろしくお願いいたします。????‍♂️

<参考>
Python3でMySQLを使う – 基本操作からエラー処理までサンプルコード付

投稿2021/05/19 09:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問