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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

2回答

5516閲覧

エラー内容を教えてください

Casablanca_mtg

総合スコア209

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2016/10/24 01:42

お世話になります。
下記のエラー内容を教えてください

-- coding: utf-8 --

import sqlite3

connector = sqlite3.connect("sqlite_test.db")

sql = "insert into test_table values('1', 'python')"
connector.execute(sql)
sql = "insert into test_table values('2', 'パイソン')"
connector.execute(sql)
sql = "insert into test_table values('3', 'ぱいそん')"
connector.execute(sql)

connector.commit()
connector.close()
このコードを打ち込めと”connector.execute(sql)”この部分で下記のエラーが出ます。
no such table: test_tableということはtest_tableを作ってあってもなぜだめなのかわかりません。ご指導ください
c:\Python27\python>python test103.py
Traceback (most recent call last):
File "test103.py", line 8, in <module>
connector.execute(sql)
sqlite3.OperationalError: no such table: test_table

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

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

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

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

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

guest

回答2

0

ベストアンサー

sqlite3の使いかた、ソースコード解説付き
すみません。まず、下記のURLを参照すると判りやすいかと思います。

http://qiita.com/mas9612/items/a881e9f14d20ee1c0703

データベースに値を設定する前(一番最初に)create文でデータの配置(table:Excelのシートのような物)を定義する必要があります。
色々なデータベースの共通処理です。(sqlite,mysql,Postgersqlなどなど)

python

1# -*- coding: utf-8 -*- 2 3import sqlite3 4 5connector = sqlite3.connect("sqlite_test.db") 6c = connector.cursor() 7# executeメソッドでSQL文を実行する 8create_table = '''create table test_table (id int, name varchar(64))''' 9c.execute(create_table) 10sql = "insert into test_table values('1', 'python')" 11connector.execute(sql) 12sql = "insert into test_table values('2', 'パイソン')" 13connector.execute(sql) 14sql = "insert into test_table values('3', 'ぱいそん')" 15connector.execute(sql) 16 17connector.commit() 18connector.close()

内容の確認

# sqlite3 sqlite_test.db SQLite version 3.7.17 2013-05-20 00:56:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables test_table sqlite> select * from test_table ; 1|python 2|パイソン 3|ぱいそん sqlite>.quit

投稿2016/10/24 05:45

編集2016/10/24 06:42
nagaetty

総合スコア1106

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

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

Casablanca_mtg

2016/10/24 06:11

お世話になります。 データベースに値を設定する前(一番最初に)create文でデータの配置(table:Excelのシートのような物)を定義する必要があります。 やり方を忘れてしまいましたのでお教えください
Casablanca_mtg

2016/10/24 06:48

1年前はできていたけどほとんど忘れてしまっています。コードを打っていなかったため記憶が飛んでいます。やってみます。ありがとうございます
Casablanca_mtg

2016/10/28 07:00

お世話になります。何かがおかしいです。どうしてエラーが出るのでしょうか? >>> import sqlite3 >>> connector = sqlite3.connect("sqlite_test.db") >>> c = connector.cursor() >>> create_table = '''create table test_table (code varchar, name varchar(64))''' >>> c.execute(create_table) <sqlite3.Cursor object at 0x0273CBA0> >>> sql = "insert into test_table values('1', 'python')" >>> connector.execute(sql) <sqlite3.Cursor object at 0x02FDDEA0> >>> sql = "insert into test_table values('2', 'パイソン')" >>> connector.execute(sql) <sqlite3.Cursor object at 0x02FE8220> >>> sql = "insert into test_table values('3', 'ぱいそん')" >>> connector.execute(sql) <sqlite3.Cursor object at 0x02FDDEA0> >>> connector.commit() >>> connector.close() >>> >>> import sqlite3 >>> connector = sqlite3.connect("sqlite_test.db") >>> currsor = connector.cursor() >>> cursor.execute("select * from test_table order by code") Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> cursor.execute("select * from test_table order by code") NameError: name 'cursor' is not defined >>> ちなみに登録したデータの確認です。そのときにエラーが出ます ************************************* # -*- coding: utf-8 -*- import sqlite3 connector = sqlite3.connect("sqlite_test.db") cursor = connector.cursor() cursor.execute("select * from test_table order by code") result = cursor.fetchall() for row in result: print "===== Hit! =====" print "code -- " + unicode(row[0]) print "name -- " + unicode(row[1]) cursor.close() connector.close()
nagaetty

2016/10/28 07:08

>>> currsor = connector.cursor() >>> cursor.execute("select * from test_table order by code") <-- 受け取る変数が間違ってます!
Casablanca_mtg

2016/10/28 07:18

何にすればよいのですか?code varchar, name varchar(64)にしていますので・・・ 小出にすればよいのかと思いました。お教えください
nagaetty

2016/10/28 11:21

下記が正解です。(rが1文字足りなかったのがエラーの原因です) currsor = connector.cursor() currsor.execute("select * from test_table order by code") 
Casablanca_mtg

2016/10/29 00:54

お世話になります。IDLE (Python GUI)でコードを打ち込むとエラーが出ます。UTF-8が対応していないなどのエラーです。これらはPythonフォルダーに保存して(保存するときにcoding utf-8の宣言をして)やるとエラーは出ません。エディタで保存するほうがうまく機能すると思われます。私はできるだけIDLE (Python GUI)を使って勉強していましたがその場その場でやれる方法をとることですね。Macでも同じように保存しないでターミナルでコードを打つとエラーになります。使い分けが必要だと思います。ありがとうございました。currsorはわたくしの打ち間違いでした。今回はtest_tableの作り方が大変貴重な勉強になりました。重ねてお礼申し上げます。今後Anaconda(Jupyter Notebook)の使い方も大学習していきたいです。まだまだです
guest

0

test_table こんなテーブルありません。

と言っています。

投稿2016/10/24 03:20

mugicya

総合スコア1046

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

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

Casablanca_mtg

2016/10/24 03:49

お世話になります。test_tableを設定するにはどうすればいいのでしょうか? sqlite_test.dbはPythonフォルダーの中には存在します。接続をしてもtest_tableがない?事前にどうすればいいのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問