SQLite:::データーベース名の変更ができた|後から修正:追加:確認:日本語で入力|初心者

 初心者による基本の操作と設定の方法など・・あまり詳細ではありませんが、調べたことを纏めたメモを残します。

私と同じく初学者・あまり詳しくない人に・・、参考になりましたら幸いです。

 

1: 最初の登録:ごく普通の名簿の例

 番号、名前、年齢、住所(都道府県or国名)のリストを作った場合とします。
(分かり易くなるので、日本語にします。説明のサイト見てたら、何故かみんなローマ字の気がするんですけど・・
日本語だとハードルがかなり下がります!一気に、とっつき易くなりました。)

1 フリーマン 25歳 アメリカ
2 オウヘイ 30歳 ドイツ
3 ノブヨシ 23歳 北海道

というリストにしてみますが、以下の通りになります。テーブル名は全て「user_list」とします。

最初に、

sqlite> CREATE TABLE IF NOT EXISTS user_list (id INTEGER PRIMARY KEY,name TEXT,old INTEGER,address TEXT);

として、項目(column)を登録しておきます。
その後、以下(保存したいデータ)を入力、送信します。

sqlite> INSERT INTO users (id, name, old, address) VALUES 
 (1,'フリーマン', '25', 'アメリカ'),
 (2,'オウヘイ', '30', 'ドイツ') ,
 (3,'ノブヨシ', '23', '北海道');

 お疲れさまでした。

改行しましたけど、全文を半角スペースで繋げたほうがエラーが出ませんでした。
数字は念の為に半角にしています。(でないと「TEXT」扱いになりそうなので)

日本語だと何故か頼りない感じがしますけど、自分は何度も実際に漢字などで入力出来たので
何事も問題なければ出来る筈です。

 

2: 後から修正・確認について|確定させるには

update list_name set bikou = 'finger-print' where id = '35'; ---このようにすると、追加ができる。

(35番の人に備考欄へ「フィンガープリント」と、追加の入力)

確定させる方法


確定させるには、修正したい箇所を「BEGIN TRANSACTION;」と「COMMIT;」で挟みます。
「commit(コミット)」と、送信しないと消えてしまいました。。

3: データの確認をしたい時|後から選択した部分だけを表示

テーブルの内容の確認:
select * from テーブル名;
 
で、入力した全てのデータ一覧や一部分を取り出して見れます。

 データの中から特定の条件に合う1部分だけを確認したい時、例えば
名簿であれば、その中での条件「30歳の人」だけを選んで表示するには・・

select * from user_list where old = '30';
 
「list の中の30歳」
-- 選択した1つだけ表示ができます。

SELECT カラム名 , ... FROM テーブル名 WHERE 条件式;
「条件式(※◆)」という言葉が難しく感じるのですが、項目(カラム、column)で良かったので以下の通りです。
select * from user_list where address = 'Tokyo';
 ついでに、リストに番号をつけていた場合は
select * from user_list where id = '24';

という感じで「user_listの24番を表示」出来ました(検証済み)。

これで、リストの中の「どれ」か選べるようになります。


 

4: 日本語で入力できたこと|備考

 実は、データの内容は多言語の対応出来る様にデフォルトでセットされていて、日本語や漢字でも入力できるのでした。
実際に何度も成功していますが、ただ「TEXT」とすれば、扱えています。
うまくいかない場合は、
エンコーディングとやらを以下のように行います。

PRAGMA encoding = "UTF-8";
と、最初の新規作成時にコマンド入力すれば良いらしいです。途中で変えるのは無理ですかね。調べていますが分かったら追記します。

(AIに質問したので、言い回しがもっと分かり易い形式でしたが記憶で改ざんされてしまいました)
あと、初心者だからと今回は使っていない話ですけど参考に・・
(※◆)
条件式」は、細かく(難しく)設定することもできます。比較演算子・論理演算子を使う条件式がありました。
「比較演算子を使った条件式」というと、「>」や「<」を使う「式」も可能でした。
初心者なので、今回はそれらは使いませんでした。
(データが多くなれば必要になりそうですけど、今は未だデータが少ないこともあり。)

 おそらく、この様なデータベースを扱う人はプログラミングの言語(呪文)を複数操っておられるみたいです(呪術師・・)。
どうも自分はその辺り、基本の「き」が抜けているので分からない事が多いです。

 但し、分からないおかげで気付いたことがありました。コマンドラインでしか行っていませんので
そのせいかも知れませんけど(マウスで操作出来るソフトをDLしても、そこでも文字化けが起こるそうです)
これ、知ってても使わない人はもう日本語より記号が頭の中いっぱいなんでしょうか。
そうじゃないかと思う位に、
殆どの方が英数字しか使っていない様に見えますけど。。

  

5: 途中で設定を変えるには|データベース名の変更ができた

設定の変更

 設定を途中から変えたくなった場合も出来る方法がありました。
  • 5-1 途中で設定を変えるには
  • 既に動いているプログラムの中で、途中で「設定」を変えたい場合

    import sqlite3
    conn = sqlite3.connect('your_database.db')
    cursor = conn.cursor() 
    と、始まり・・
    設定::
    cursor.execute("PRAGMA default_synchronous;") ---確認「ディスクに書き込まれたことを確認してから次の処理に進む」設定は「execute()メソッドで実行」
    print(f"現在のdefault_synchronousは: {cursor.fetchone()[0]}") --意味分からないけど、セットで付ける呪文
    最後は、「conn.commit()」「conn.close()」で、設定の終わり。。
    日本語にしたい場合(通常そのままデフォルトで出来ている可能性が高い)ですが、
    sqliteでデータ入力の途中で設定の変更をするには
    「PRAGMA encoding = "UTF-8";」などですけど、他にも方法があるかもです。
  • 5-2 データベース名の変更ができた
  •  もしかしたら、とてもイレギュラーな方法かもしれませんが、データベース名の変更は
    普通のテキストや画像ファイルなどの様に
    ファイルの場所でファイル名をクリックして名前を変更してみたら
    普通に変更出来ました。

    データベース名変更後の確認・検証

    一応、SQLiteで「.open ○○(新しい名前).db」で、
    「select * from ○○(新しい名前).db;」で、中身も確認しましたが、全部無事でした。

     以前から気になっていたので何度も「その方法で一度やってみよう」と考えていたので、
    同じデータベースファイルをコピーしたり、入念に準備を行いましたが、
    あまりにも簡単に出来てしまい、拍子抜けしました。。。
     しかし、様々なサイトで「できない」という説明が多かったので、本当にこれで良いのか分かりません。
    非常識な事をしている可能性があります(初心者の為)。
    この方法では「とても不作法」とか、
    「やってはいけない」
    「データベース全体に影響」みたいな事があるやも知れず。。
    その辺もまた調べて分かれば追記します。

  

6: 参考・終わり

 以下の話は「おまけ」として聞き流してください。「データベース名変更」についの話です。
データベース名を変更したくて方法を結構調べましたが、多くの方が「出来ません」と断言されており
新しく作成してデータを移すという方法が主流で、絶対にその方が早そうでした。
しかし、見付けた方法の1つに
「Alter database database_name allow_connections false; 」

と、「データベースへ接続を禁止してから行う」とあるので・・その様なルールに沿って出来ないこともない感じですが、
実際に試すとエラーばかりで反映されないし自分には難しいので止めてしまいました。
あと、普通のファイルの様にファイルの場所でファイル名をクリックして名前変更してみようかと思ったので
出来たら追記します。今はエラー続きで疲弊して試す気力がゼロですけど。。
かなり検索して出てきた方法なので、ヒントになるかもしれず残しておきます。
 ソフトを使う人が多いみたいで、データーベース名の変更方法があちこちで見付かったのは
「PostgreSQL」というものでした。こちらが細かく変更したい場合に扱い易そうです。

 初心者なので分かったというより「見付けた」部分をコピペなどで追記しましたが、
ヒントにでもなれば嬉しいです。

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

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

#データベース #データ追加 #SQLite #メモ

参考サイト:

SQLite PRAGMAの魔法:データベースを高速化する呪文
https://iifx.dev/ja/articles/173564511
Google タグの設置位置について
https://support.google.com/analytics/thread/185452173/ga4-google=ja
pgcenter.web.fc2.com
https://pgcenter.web.fc2.com › contents › sqlite.html SQLiteの基本(Windows) - SQLite~PG CENTER ...

Yahoo知恵袋 https://detail.chiebukuro.yahoo.co.jp › qa › question_detail › q12112358847 SQLite初心者です。データをファイルからテーブルにインポート ...しかし今度は文字化けしてしまいました。 数字はちゃんと表示されているのですが、カタカナと漢字がめちゃくちゃです。

Qiita https://qiita.com › nimzo6689 › items › 90fb5e3c76624a31edca 標準 SQL 以外で使用機会ありそうな SQLite の更新系の構文 5 ...
Qiita https://qiita.com › suipy › items › 408cafc4e268ee98593a 【SQLite3】データの登録・取得・更新・削除 #Python - Qiita

【SQLite3】条件式の設定で特定のデータを選択する
https://qiita.com/suipy/items/396d1126643e2e8ab1a8
Let'sプログラミング

https://www.javadrive.jp › sqlite › select › index3.html SQLite | 取得するデータの条件を設定 (WHERE句)

tecnohakase.one https://tecnohakase.one › 235 ※ Sqlで日本語入力できない場合の解決策と対処法まとめ

コメント

このブログの人気の投稿

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

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

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