SQLite データベースのインストール php SQLite の学習ノートと FAQ 分析 ページ 1/2
学ぶまで! 学ぶ前に情報を見つけてください
SQLite SQL
データベースをアタッチ
トランザクションを開始
コメント
トランザクションをコミット
コピー
インデックスを作成
テーブルを作成
トリガーを作成
ビューを作成
削除
デタッチデータベース
インデックスのドロップ
テーブルのドロップ
トリガー
DROP VIEW
END TRANSACTION
EXPLAIN
expression
INSERT
ON CONFLICT句
PRAGMA
REPLACE
ROLLBACK TRANSACTION
SELECT
UPDATE
sqlite FAQ
(1) 自動インクリメントフィールドを作成するにはどうすればよいですか?
短い答え: INTEGER PRIMARY として宣言しますKEY 列は自動的に拡張されます。
より長い答え: テーブルの列を INTEGER PRIMARY KEY として宣言した場合、その列に NULL 値を挿入するたびに、NULL はテーブルの最大値より 1 大きい整数に自動的に変換されます。空の場合は 1 になります。 (主キーの最大値が 9223372036854775807 の場合、キー値は未使用のランダムな数値になります。) たとえば、次のようなテーブルがあります。
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INTEGER
);上記のテーブルでは、次のステートメント
INSERT INTO t1 VALUES(NULL,123);
は論理的に次と同等です:
INSERT INTO t1 VALUES((SELECT max(a) FROM t1)+1,123); という新しい API があります。 sqlite3_last_insert_rowid () を実行すると、最後に挿入された整数値が返されます。
この整数は、挿入前のテーブル内のその列の最大値より 1 大きいことに注意してください。このキー値は現在のテーブル内で一意です。ただし、テーブルから削除された値と重複する可能性があります。テーブルのライフサイクル全体を通じて一意のキー値を作成するには、AUTOINCREMENT ステートメントを INTEGER PRIMARY KEY に追加する必要があります。その後、新しいキー値は、テーブル内にこれまでに存在した最大値より 1 大きくなります。可能な最大の整数値がデータ テーブルに存在する場合、INSERT は SQLITE_FULL エラー コードで失敗します。
------------------------------------------------- -------------------------------
(2)SQLite3 はどのようなデータ型をサポートしていますか?
NULL
INTEGER
REAL
TEXT
BLOB
しかし実際には、sqlite3 は次のデータ型も受け入れます:
smallint 16 ビット整数。
interger 32 ビット整数。
decmal(p,s) p の正確な値とサイズ s の 10 進整数。正確な値 p は合計桁数 (桁数) を指し、s は小数点以下の桁数を指します。指定しない場合、システムは p=5 を設定します。
float 32 ビット実数。
double 64 ビット実数。
char(n) n 長さの文字列。n は 254 を超えることはできません。
varchar(n) 可変長の文字列で、最大長は n です。n は 4000 を超えることはできません。
graphic(n) は char(n) と同じですが、その単位は全角 2 文字であり、n は 127 を超えることはできません。この形式は、漢字など、2 文字の長さのフォントをサポートするためのものです。
vargraphic(n) 可変長の 2 文字の文字列。n の最大長は 2000 を超えることはできません。
日付には年、月、日が含まれます。
時間には、時間、分、秒が含まれます。
タイムスタンプには、年、月、日、時、分、秒、1000分の1秒が含まれます。
http://www.sqlite.org/datatype3.htmlを参照してください。
--------------------------------- --------------------------------------------------
(3 )SQLite では、整数フィールドに文字列を挿入できます。
これは機能であり、バグではありません。 SQLite はデータ型の制約を強制しません。任意のデータを任意の列に挿入できます。任意の長さの文字列を整数列に挿入したり、浮動小数点数をブール列に挿入したり、日付値を文字列に挿入したりできます。 CREATE TABLE で指定されたデータ型は、列へのデータの挿入を制限しません。どの列も任意の長さの文字列を受け入れることができます (ただし、INTEGER PRIMARY KEY とマークされた列には 64 ビット整数のみを格納できるという 1 つのケースを除きます。そのような列に整数以外のデータを挿入すると、エラーが発生します。
ただし、SQLite は宣言された文字列を使用します)たとえば、整数列に文字列を挿入する場合、SQLite は文字列を整数に変換しようとします (変換できる場合は整数が挿入されます)。このプロパティは、タイプまたは列のアフィニティと呼ばれることもあります
----------------- ------------------ -------------------------------- ------------------------
(4) なぜSQLite では、同じテーブル内の 2 つの異なる行で主キーとして 0 と 0.0 を使用することはできません。主キーは数値型である必要があります。主キーを TEXT 型に変更すると機能しません。
各行には一意の主キーが必要です。数値列の場合、整数として比較すると等しいため、SQLite は '0' と '0.0' を同じものとみなします (前の質問を参照)。したがって、この値は一意ではありません。
------------------------------------------------- -----------------------------
(5) 複数のアプリケーションまたはアプリケーションの複数のインスタンスに同時にアクセス可能 同じデータベースファイル?
複数のプロセスが同時に同じデータベースを開くことができます。複数のプロセスが同時に SELECT 操作を実行できますが、データベースに変更を加えられるプロセスは一度に 1 つだけです。
SQLite は読み取りおよび書き込みロックを使用してデータベースへのアクセスを制御します。 (読み取りおよび書き込みロックをサポートしていない Win95/98/ME などのシステムでは、代わりに確率的シミュレーションが使用されます。) ただし、使用するときは注意してください。データベース ファイルが NFS ファイル システムに保存されている場合、このロック メカニズムは、正常に動作できません。これは、fcntl() ファイル ロックが多くの NFS で正しく実装されていないためです。複数のプロセスが同時にデータベースにアクセスする可能性がある場合は、データベース ファイルを NFS に配置しないようにする必要があります。 Windows では、Microsoft のドキュメントに次のように記載されています。 share.exe デーモンを実行せずに FAT ファイル システムを使用すると、ロックが正しく機能しない可能性があります。 Windows の経験が豊富な人々は、次のように言いました。ネットワーク ファイルの場合、ファイル ロックの実装には多くのバグがあり、信頼性が低いです。彼らの言うことが正しければ、2 台以上の Windows マシン間でデータベースを共有すると、望ましくない問題が発生する可能性があります。
SQLite ほど同時実行性を処理できる組み込み SQL データベース エンジンは他にないことを認識しています。 SQLite を使用すると、複数のプロセスが同時にデータベースを開き、同時にデータベースを読み取ることができます。プロセスが書き込みを行う場合、更新プロセス中にデータベース ファイルをロックする必要があります。しかし、それは通常、わずか数ミリ秒です。他のプロセスは、書き込みプロセスが作業を完了するのを待つだけで済みます。通常、他の組み込み SQL データベース エンジンでは、一度に 1 つのプロセスのみがデータベースに接続できます。
ただし、クライアント/サーバー データベース エンジン (PostgreSQL、MySQL、Oracle など) は通常、より高いレベルの同時実行性をサポートし、複数のプロセスが同じデータベースに同時に書き込むことができます。このメカニズムは、データベースへのアクセスを制御および調整する単一のサーバー プロセスが常に存在するため、クライアント/サーバー構造のデータベースで可能です。アプリケーションで多くの同時実行性が必要な場合は、クライアント/サーバー データベースの使用を検討する必要があります。しかし、経験によれば、多くのアプリケーションでは、設計者が想像していたよりもはるかに少ない同時実行性が必要になることがよくあります。
SQLite が別のプロセスによってロックされたファイルにアクセスしようとすると、デフォルトの動作は SQLITE_BUSY を返します。この動作は、sqlite3_busy_handler() または sqlite3_busy_timeout() API 関数を使用して C コードで調整できます。
------------------------------------------------- ------------------------
現在のページ 1/2 12次のページ
上記は、SQLite データベースのインストールに関する php SQLite の学習ノートと FAQ 分析ページ 1/2 を紹介しています。これには、SQLite データベースのインストールの内容も含まれており、PHP チュートリアルに興味のある友人に役立つことを願っています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
