SQLite初心者::間違った時にやり直すには|構文エラー|確定|データベース|悟りの境地

 いつまでもPC初心者で、プログラミングも何も出来ずhtmlを少しわかる程度なのですが
少し時間がありデータベースについて、試すことが出来たので覚書しています。

 Windowsの場合です。自分と同様あまり詳しくない人に、参考になりましたら幸いです。

 

1: 間違った時のやり直し方法|確定させないと消えてしまう

 いきなり、間違った時のやり直し法です。

 間違った場合、みんな削除して1からやり直すのかと思うくらい、修正・編集・やり直しについての情報が出てきませんでしたが、たぶん検索語がよくなかったのでしょうけど。。
  • 「;」と入力してエラーで終了。
  • 「.exit」や「.quit」と入力してやり直す
  • 削除する:「Drop table IF EXISTS table_name; 」・・と、すればテーブルが消えます。

参考::

  • 「元に戻す」にはバックアップが必須
  • バックアップ取得した時間以降のデータを戻すには,バイナリログが必要

「.quit」について、データベースを抜ける時に使うとのことです。
間違って「quit」で、抜けられない場合も「;」でエラーにして終わらせるといいそうです。

追加・更新する方法|確定させないと消える

 修正というか、追加する方法(更新)は後から分かりました。修正にも使えそうです(テスト中)
更新の方法:

sqlite> update test_list set koumoku = ’syuusei ’ where id =’3’;
の様にします(スペースは全部半角にして下さい)。
内訳は・・
update テーブル名 set 修正したい項目名 = ’修正後の名前’ where id(name でも何でも良いのでリストの中でどれか分かるもの)=’idの場合は数字ですが、「’」をつけると反映されました’;

ここまでが、何となく出来たことのメモですが・・「確定させるには commit」が必須で、

しないと消えてしまいました。。

確定させるには

 消えない様に保護(確定)するには、

修正したい箇所を

  • 「BEGIN TRANSACTION;」と
  • 「COMMIT;」で挟みます。

大事なことなので取り急ぎメモしましたが、また、後から見易く編集・追記します。

参考:データが消えた例

 sqliteのフォルダがデスクトップにもありますが、「C:¥(program¥ユーザー¥みたいな場所)」にも全く同じものがあり、普段使っているフォルダではない方(アプリケーションのみで入力したデータは何もない)が動いていたらしい・・という場合がありました。
この場合、どっちが使用中か分からないと確認がとても面倒なので「環境変数」を指定するなどしておけば良いです。
方法は、さっき理解したところでいっぱいいっぱいのため、あとで別記事を作成します。

 あと似たような・関連の案件ですけど。。
使ったことのない方のアプリケーションで「dbファイルをオープン」したつもりでいると、
「○○;」という名前のテキストファイルが新規作成されてしまい、
中身は空っぽなので「データが全部消えたー!!」
「変なファイルが出来ている、乗っ取りかー?」と、思って焦った事があります。

ほか、「;」を忘れていると動かない場合もありますが、最初から「;」が不要な場合もあるので忘れやすいです。
上記の複合した技が非常にやっかいです。参考までに。。

 

2: 「...>」で、困った件について

「 ...>」の解決法(初心者)

「 ...>」の時は、どうやら1文字目(1行目)に原因の文字があるので、自分の入力した文字でその部分を探して、
訂正したものを送ってみると反応がありました。
「 ’...>」や、「 ( ...>」 というエラーの場合は、
「 ’   」「 ( 」の文字1文字だけと、
次に「;」を送ってみました。
 
そしたら、エラーメッセージ「 error here ---^」、
ここだよっていう感じに該当の場所に「 ^ 」のマークがあります。
そのメッセージの通りに直したら普通の状態に戻りました。
「普通の状態」とは、
「 sqlite> 」
という表示で入力できる状態です。
 以下は困った状態の事例です。よく解っておられる方には関係・意味のない話だと思いますが。。
 自分と同じ位よく分からない人が検索する場合は・・状況説明も難しく専門用語も分からずに勘違いも多々あり
おそらく適切な言葉が使えないので、以下のような感じの小学生の感想文みたいな文で
以下のいずれかの言い回し・言葉になると思います。。
かくいう自分は、検索では全く見付からずAIに説明するのにコピペするのが嫌だったので、自己解決しましたが・・。

参考:困った事例:「...>」で戻れないとき:


  • 「 ’ ...>」で、何を入力しても同じ反応で、進まなくなりました。
  • 「;」でも動かない(通常はエラーで終了になる筈)、また「 ’ ...>」
  • 「.exit」でも、また「 ’ ...>」になるだけ
  • よく見ると自分の入力で「 ’」が抜けていたので、
  • 「 ' ...>」へ、「 '」と送ると、今度は「 (x1...> ''」
  • 次は、「;」と送るとエラーメッセージが表示されました。ここからは上記のように戻れました。
  • 何度か「;」や「 ’」を入力してenterをすれば、エラーで終了できるかと(初心者の悟りの境地)。

3: 思ったこと|参考:構文エラー

"INTEGER": syntax error

で、原因がなかなか分からずでしたが。。。
ここでは普通のよくあるエラーではなく自分のパターンのみ残します(初心者につき・・)
目的がリストだったのですが、先ず、作ったテーブルが以下です(例1)。
CREATE TABLE IF NOT EXISTS mihon_list ( id INTEGER PRIMARY KEY, name TEXT, date INTEGER, mail TEXT );

というテーブルを作った場合、データを追加するのに
INSERT INTO mihon_list (name, date, mail) VALUES ('botto', '19990817', 'tehon@email.com'), ('sara', '20010531', 'mihon@email.com');
とかで、良かったみたいですが、
以下の様にテーブル作成の時の項目と全く同じものを以下のように付けてエラーになりました。
・・が、それは余分だったみたいです(そのことに気付くのも少し時間がかかり無駄に調べました)。
上記ともう1つのパターン(下の方に置いときます)だと出来ました。

エラー参考:多過ぎた例

INSERT INTO mihon_list (id INTEGER PRIMARY KEY,name TEXT,date INTEGER,mail TEXT) VALUES ('botto', 'tehon@email.com', '19990817'), ('sara', 'mihon@email.com', '20010531');

成功した例:参考:

INSERT INTO mihon_list VALUES (1,'botto', 'tehon@email.com', '19990817'), (2,'sara', 'mihon@email.com', '20010531');
 一番最初の手本を見ながらやったので、項目は全部を毎回入力するんだと思ってしまいました。
なので、似たような内容の入力例を2~3つ見てからデータを追加すると良いのではないかと。。


後日、またエラーの話ですが、新しくデータを入力したものの確定用の呪文を入れ忘れたので後から入力しようとしたら、
「もう同じのがあるよ」っていうエラーみたいですが・・また一旦閉じてからの入力しないといけない様です。


「error: UNIQUE constraint failed: テーブル名 id(19)」
というエラーでした。
検索すると結構たくさんの情報がありました。自分は原因は分かっていたのですが、念のため。。

 

4: 基本の話も少し|わからない原因

 普通はソフトをダウンロードして、マウスで操作出来るものが人気だそうですが・・
DB Browser for SQLite - https://sqlitebrowser.org/dl/ ーーここです。リンク貼りませんが。

自分はLinuxを少しやったことがあるので、最初はコマンド入力みたいに使ってみたいと思いました。
(PCの負荷が少ないので、パソコンの寿命が長くなるのが一番の狙いですけど。。)

 コマンド使う場合、先ず大きな流れだけ初心者向けに。

  1. 最初にdb(データベース)を作る
  2. テーブルを作る
  3. データを入力していく
  4. 沢山入力出来たら、好きな項目で絞って確認ができる。
・・という使い方なので、名簿の管理や自分用の辞書みたいに使えます(多分合ってる)。
 テーブルの作り方とデータ入力の一例はこの上に少しあります。
多分、書類作成と同じで、いくつかの見本を見ながら行うのが覚え・分かりやすいですけど、
普通の手順の説明では1つの例で進むので分かり難い気がしました。。

分からない原因:

 よくわからなくなるパターンについて、例文だと「user」「test」などの名前になっているので、勘違いしてしまいます。
これらを踏まえて、自分は適当な名前(今回は、bottoとsara、mihon_list)で例を示そうと思いました。
 どっちが分かり難いか考えた経緯は、今まで様々なサイト様の説明を参考にしてきましたが、
特にコマンドの入力では「user」「test」などは余計に分かりにくくなると実感した事が大きいです。
名前に、ユーザーとかテストを使うと固有名詞(データの名前など)っぽくないので、状態を説明する言葉(形容詞や修飾的な言葉)に思えてしまい、「テスト」と出てくれば「本番(main)」があるのかと探したりします。
 そのため、パスワードの入力でも「どれの?」って、未だに分からなくて何度も入力して結局は出来ないとか、パスワードを何度も送って怖くなってきて削除してしまったりしました。
GUI(マウス操作できる)ものでないと、仕組みの解っていない初心者には厳しいです。(「何の」パスワードなのかが、コマンドに比べて分かり易い気がします。)

  

5: 言葉の意味|参考・終わり

演算子(えんざんし)ーーー数式や記号で表すもの・こと
 cmdとかLinuxのコマンドだと途中で1文字間違っていたら挿入するのは至難の業でしたが、Sqliteだと間にカーソルを持っていけば簡単に変更が出来て柔軟な気がします。
これだけでもう大分楽な感じですね。

今回は、「初心者による悟りの境地」を感じました。(調べても分からないっていう・・。)

 機会があったら使ってみたい物(マークダウン)の覚書メモです。

マークダウン記法・・・blogerではJavaScriptファイルをテーマ(cssとhtmlのところ)へ入力したり
テキスト内もマークダウン記法をしたい範囲にタグを入れて使いましたが、後からややこしくなったので止めました。
(元々のhtmlタグを使いたくなっても、マークダウン記法の部分と上手いことリンク出来なくて難しかったので)
md記法を使ったメニュー項目は以下のような感じでした。

[markdownファイルの開き方](#markdownファイルの開き方) マークダウン形式の実験中ーーーあっという間に止めました。 
 [どうやって使うのか](#どうやって使うのか)
 [困った話](#困った話)
 [コピペなどはこの下にあります](#コピペなどはこの下にあります) ーーーこれはこのブログのどこかにコピペ出来る記事を残しています。

参考:SQLite manager for Windows|markdown|

マークダウン記法で、[画像が表示されなかった時に表示される文字列][書類ファイル] の記法
[書類ファイル]:https://blogger.googleusercontent.com/img/b/~~~~~~3%ABno-to.png

という書き方で画像が表示されていました。
# markdownファイルの開き方
後で役に立ちそうなので引用しています
見出しの大きい項目は#1つ、小さい括りになる毎に#の数を増やす
#### SQLiteManagerの使い方 ----こうすると、結構小さい字になります。
``` ---コードブロックと言い、これ(```)で囲んだ部分はweb上からは見えません。隠し文字に出来ます。
htmlで言うところの<!-- -->みたいな感じです。

任意のディレクトリにアップロードするだけで導入可。.htaccessとかで認証はかけておいたほうが良さそう。
文字コードの書き換え
文字化けする場合は「./lang/japanese.inc.php」ファイルの10行目当たりにある文字コードを以下の通り書き換える必要あり。

#変更前:euc-jp、ja-euc
#変更後 utf-8
「```」← これもマークダウン記法 [SQLiteManager]

ここまで読んで頂きありがとうございました。

良かったら気が向いた時にでもまた覗いてやってくださいませ。

参考サイト:

初心者のためのSQLite入門_/https://dev.classmethod.jp/articles/introduction-to-sqlite-for-beginners/ --分かり易い
SQLiteのクォートにまつわる奇妙な仕様/徳丸浩の日記 /https://blog.tokumaru.org/2017/03/sqlite-strange-quoting.html
Qiita https://qiita.com › mifumi323 › items › 9ba2ab9ab3791f8b789e SQLiteで改行コード #SQLite3 - Qiita
MySQLのコマンドラインで入力をキャンセルする_/https://qiita.com/ysti/items/b4a84691c357167c89c2
DB Browser for SQLite - https://sqlitebrowser.org/dl/ ---マウス操作の出来る人気のソフトがダウンロードできます。
iifx.dev https://iifx.dev › ja › articles › 104074461 エラー解析のプロ、俺がSQLiteの謎を解き明かす!
https://qiita.com › peq_4 › items › e145a8b36c0fe2f1d06a Sqlite3 create table で syntax error が出た時に見てほしい - Qiita
ウィキペディア https://ja.wikipedia.org › wiki › スキーマ スキーマ - Wikipedia
Qiita https://qiita.com › gyu_outputs › items › 508a06125555d1f84ef5 sqlite> quit として終了できない #PHP - Qiita
Yahoo知恵袋 https://detail.chiebukuro.yahoo.co.jp › qa › question_detail › q1279282032 Sql文やり直し - 間違って実行してしまったsql文があるとし ...
iifx.dev https://iifx.dev › ja › articles › 133223761 バーベキュー流SQLite活用術:改行文字の挿入と表示トラブル ..
DLのサイトURL_https://sqlitebrowser.org/dl/

マークダウン(Markdown)記法完全チートシート

https://qiita.com/masterpiecehack/items/990683b706b70b88b4c7

(http://sourceforge.net/projects/sqlitemanager/) 
[markdownファイルの開き方](#markdownファイルの開き方)
 [SQLiteとは何ですか?](https://sqlite.org/ #SQLiteとは何ですか?)
 [sqliteでphpmyadminみたいに使えるSQLiteManagerの導入方法 ](https://taitan916.info/blog/archives/1907 #sqliteでphpmyadminみたいに使えるSQLiteManagerの導入方法 )
 [ロリポップでsqliteを使って超簡易的なブログを作る]https://qiita.com/nonbiri3/items/2c00cb7b6ba86a80b523 #ロリポップでsqliteを使って超簡易的なブログを作る)
 [SQLiteのWeb管理ツールphpLiteAdminをインストールしてみた]https://blog.ver001.com/sqlite-phpliteadmin/ #SQLiteのWeb管理ツールphpLiteAdminをインストールしてみた)
 [ITブログPHP8 + baserCMS + SQLite環境構築時のエラー](https://miu-soft.net/it/archives/13) 
 []() 「 .tmp 」は一時ファイルで、いつまでも消えないなら消去しても問題ない。らしいですが・・
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13289035453
phpliteadmin.blogspot.com 
 https://phpliteadmin.blogspot.com phpLiteAdmin
Qiita https://qiita.com › YuKiO-OO › items › 9cf3169d97907d3af16d 個人開発者なら知っておきたい!SQLiteデータ消失からの復旧術 ...

コメント

このブログの人気の投稿

JW-CAD::レイヤが消えた!「反転表示」を戻す方法|

wheelグループとは:::Linux初心者向けの本について|メモリ空き容量の確認|sshやsudoは安全か|

Linux::自分でインストーラー作りたい|VentoyとRufusはどちらが良い?|DVDドライブ(F)|