ホームページ  >  記事  >  データベース  >  SQLLite関連コンテンツ

SQLLite関連コンテンツ

jacklove
jackloveオリジナル
2018-06-14 16:25:302281ブラウズ

うーん。 。 。少し前にまとめた常識:

SQLLite勉強メモ

SQLiteは、ACIDに準拠した軽量データベースであり、比較的小さなCライブラリの中間に含まれています。 Windows/Linux/Unix などの主流のオペレーティング システムをサポートし、Tcl、C#、PHP、Java などの多くのプログラミング言語と組み合わせることができます。その処理速度は非常に速いです。

1. 基本操作

テーブルの作成:

キーワード: AUTOINCREMENTは、特定の列の値を自動的にインクリメントするために使用でき、プラスチックフィールドにのみ使用できます。テーブルを構築するときにこれを追加します キーワード

テーブルを削除します:

テーブルに新しいデータを挿入します

または

2 番目の書き方では、値の順序がテーブルにリストされている順序と一致していることを確認する必要があります

クエリ テーブル

の後には、条件付きクエリの WHERE を続けることができます。「*」はクエリ テーブル内のすべての列を意味し、次のようにすることもできます

-- サブクエリ、内部クエリ、またはネストされたクエリが where 句に埋め込まれている場合別の SQL 特殊クエリ。必須 以下は、サブクエリが従う必要があるいくつかのルールです:

子クエリは括弧で囲む必要があります。 ·サブクエリの選択された列と比較されるメインクエリに複数の列がある場合を除き、サブクエリは

SELECT 句に列を 1 つだけ含めることができます。 。 B dORDER BY は子クエリでは使用できませんが、メインの問い合わせでは Order By を使用できます。サブクエリで

GROUP BY を使用できます。これは、 ORDER BY と同じ機能があります。 · サブクエリは複数の行を返し、 IN 演算子などの複数値演算子でのみ使用できます。

· BETWEEN 演算子はサブクエリでは使用できませんが、BETWEEN はサブクエリ内で使用できます。

テーブルデータの変更テーブルデータの削除2. 演算子 変数 a=10 および変数 b=20 と仮定すると、

算術演算子

演算子 説明

a + b は 30 になります

比較演算子

-

減算 - 左オペランドから右オペランドを引く

a - b は-10を取得します

*

乗算 – Put 演算子 値を乗算する両側で

a * b は200を与えます

/

除算 - 左のオペランドは右のオペランドで除算されます

b a は 0 を与えます

演算子

説明

インスタンス

==

2 つのオペランドの値を確認します。等しい場合、条件は true です。

(a == b) は真実ではありません。

=

2 つのオペランドの値が等しいかどうかを確認し、等しい場合は条件が true です。

(a = b) は真実ではありません。

!=

は、2 つのオペランドの値が等しいかどうかをチェックし、等しくない場合は条件が true です。

(a != b) は真実です。

a8093152e673feb7aba1828c43532094

条件が true でない場合は、2 つのオペランドの値が等しいかどうかを確認します。

(a a8093152e673feb7aba1828c43532094b) は本当です。左側のオペランドの値が右側のオペランドの値より大きいかどうかを確認し、大きい場合は条件が true です。

(a > b)

は真実ではありません。

be129141b879342b017a6994ad9b3018=

左のオペランドの値が右のオペランドの値以上であるかどうかを確認し、そうである場合、条件は true です。

(a >= b)

は真実ではありません。

518e92becf02e593987749d6931cc195

左のオペランドの値が右のオペランドの値より大きくないかどうかを確認し、そうであれば条件は true です。

(a !> b) は本当です。

論理演算子

演算子

説明

AND

AND 演算子は、SQL ステートメントの WHERE 句に複数の存在を許可します。条件。

BETWEEN

BETWEEN 演算子は、指定された最小値と最大値の範囲内の値の範囲内の値を検索するために使用されます。

EXISTS

EXISTS 演算子は、特定の条件を満たす指定されたテーブル内の行の存在を検索するために使用されます。

IN

IN 演算子は、値を指定された値のリストと比較するために使用されます。

NOT IN

IN 演算子の逆で、値を指定されたリストにない値と比較するために使用されます。

LIKE

LIKE 演算子は、ワイルドカード演算子を使用して値を類似の値と比較するために使用されます。

GLOB

GLOB 演算子は、ワイルドカード演算子を使用して値を類似の値と比較するために使用されます。 GLOB は、大文字と小文字が区別されるという点で LIKE とは異なります。

NOT

NOT 演算子は、使用される論理演算子の逆です。たとえば、NOT EXISTS、NOT BETWEEN、NOT IN などです。否定演算子です。

OR

OR 演算子は、SQL ステートメントのWHERE句で複数の条件を結合するために使用されます。

IS NULL

NULL 演算子は、値を NULL 値と比較するために使用されます。

IS

IS 演算子は = と似ています。

IS NOT

IS NOT 演算子は!= と似ています。

||

2 つの異なる文字列を連結して、新しい文字列を取得します。

ユニーク

UNIQUE 演算子は、指定されたテーブル内のすべての行を検索し、一意性 (重複がないこと) を保証します。

1. ビット演算子

次の表は、SQLite 言語でサポートされているビット演算子のリストです。変数 A=60、変数 B=13 と仮定すると、次のようになります。

& 演算子は、両方のオペランドが同時に存在する場合、結果に 1 ビットをコピーします。 | を取得します。 (A | B) ~(~A ) ce5b080a77ced2787e343ba0e79923fb> 2

バイナリ AND

(A & B)
は、オペランド、バイナリ OR のいずれかに存在する場合、0000 1100

演算子 1 ビットを結果。

は 61、つまり 0011 1101 を取得します

「フリップ」ビットエフェクトつまり、0は1になり、1は0になります。

は -61 を取得します。これは、符号付き 2 進数の補数形式である 1100 0011 です。

は 15

、つまり 0000 1111 になります

3. あまり使用されない句

1. GLOB

日常的な SQL では、GLOB の関数は基本的には LIKE と同じです。最大の違いは、GLOB が大文字と小文字を区別することです。 アスタリスク (*) は、0、1 つ以上の数字または文字を表します。疑問符 (?) は 1 つの数字または文字を表します。 Like との比較: GLOB's* と Like の役割は GLOB と一致していますか? LIKE

2. HAVING

の機能と一致します。 では、WHERE と HAVING の違いは何でしょうか。実際、この 2 つの違いは実際には非常に大きいです。

(1) HAVING 句を使用すると、最終結果に表示されるグループ化された結果をフィルターするための条件を指定できます。

(2) WHERE 句は選択した列に条件を設定し、HAVING 句は GROUP BY 句によって作成されたグループに条件を設定します。

(3)HAVING

は、

SELECTステートメントでのみ使用できます。 (4)HAVING
は通常、GROUP
BY句で使用されます。 (5)
GROUP
BY句が使用されていない場合、HAVINGWHERE句と同じように動作します。 (6) クエリでは、HAVING 句は GROUP BY 句の後、ORDER BY 句の前に配置する必要があります。

--

例を示します: table

テーブルをクエリして、各クラスの 20 歳以上で性別が男性の人数をクエリしますselect

COUNT(*)as

'> ; 20 歳の人の数 ',classidfromTable1wheresex='男性'groupbyclassid,agehavingage gt;20 --

注意事項: where

句、groupby、having句、集計関数が同時に含まれる場合の実行順序は以下の通りです --

where

句を実行して条件を満たすデータを検索します。--

group

by句を使用して、グループによって形成されたグループに対して集計関数を実行します。 by節を使用して各グループの値を計算し、最後にhavingサブ節を使用します。条件を満たさない文は削除されます。 --having

節内のすべての要素は、select

リストにも表示される必要があります。 oracle.--having

句やwhere

句などの一部のデータベース例外は、クエリ結果が特定の条件を満たすように制限を設定するために使用できます。 --having

句は、行ではなくグループを制限します。集計関数は where

句では使用できませんが、having 句では使用できます。

四、Distinct 关键字

SQLite 的 DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。

有可能出现一种情况,在一个表中有多个重复的记录。当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。

五、约束

约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。

约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。

以下是在 SQLite 中常用的约束。

·          NOT NULL 约束:确保某列不能有 NULL 值。

·          DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

·          UNIQUE 约束:确保某列中的所有值是不同的。

·          PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

·          CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

六、SQLite Joins

SQLite 的 Joins 子句用于结合两个或多个数据库中表的记录。JOIN 是一种通过共同值来结合两个表中字段的手段。

SQL 定义了三种主要类型的连接:

·          交叉连接 - CROSS JOIN

·          内连接 - INNER JOIN

·          外连接 - OUTER JOIN

1、交叉连接CROSS JOIN

交叉连接(CROSSJOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。由于交叉连接(CROSS JOIN)有可能产生非常大的表,使用时必须谨慎,只在适当的时候使用它们。

2、内连接inner join

内连接的结果是从两个或者两个以上的表的组合中挑选出符合连接条件的数据。如果数据无法满足连接条件则将其丢弃。在内连接中,参与连接的表的地位是平等的。

内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:

1)等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

2)不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、816ff14aff4448eec8a656c2ab5ef5de、!<和a8093152e673feb7aba1828c43532094。

3)自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

3、外连接

外连接(OUTERJOIN)是内连接(INNER JOIN)的扩展。虽然 SQL标准定义了三种类型的外连接:LEFT、RIGHT、FULL,但 SQLite 只支持 左外连接(LEFT OUTER JOIN)。外连接(OUTER JOIN)声明条件的方法与内连接(INNER JOIN)是相同的,使用 ON、USING 或 NATURAL 关键字来表达。最初的结果表以相同的方式进行计算。一旦主连接计算完成,外连接(OUTER JOIN)将从一个或两个表中任何未连接的行合并进来,外连接的列使用 NULL值,将它们附加到结果表中。

七、unions子句

1、SQLite的 UNION 子句/运算符用于合并两个或多个 SELECT 语句的结果,不返回任何重复的行。

UNION を使用するには、各 SELECT で選択される列の数が同じであり、列式の数も同じで、データ型も同じである必要があり、それらの順序が同じであることを確認しますが、同じである必要はありません。長さ。

2. UNIONALL 句

UNION ALL 演算子は、重複する行を含む 2 つの SELECT ステートメントの結果を結合するために使用されます。

UNION に適用されるのと同じルールが UNION ALL 演算子にも適用されます。

8. トリガー

SQLite トリガー (トリガー) は、指定されたデータベース イベントが発生したときに自動的に実行/呼び出しされるデータベースのコールバック関数です。 SQLite のトリガーに関する重要なポイントは次のとおりです:

  • SQLite のトリガーは、特定のデータベース テーブルで DELETE、INSERT、または UPDATE が発生したとき、または 1 つ以上の指定されたテーブルの列が発生したときにトリガーするように指定できます。アップデートが発生します。

  • SQLite は FOR EACH ROW トリガー (トリガー) のみをサポートし、FOR EACH STATEMENT トリガー (トリガー) はサポートしません。したがって、FOR EACH ROW の明示的な指定はオプションです。

  • WHEN 句とトリガー (トリガー) アクションは、 NEW.column-name および OLD.column-name 形式の参照を使用して、挿入、削除、または更新された行要素にアクセスできます。ここで、column-name は名前に関連付けられたトリガーからのものです。テーブル列の。

  • WHEN 句が指定されている場合、SQL ステートメントは、WHEN 句が true である指定された行に対してのみ実行されます。 WHEN 句が指定されていない場合、SQL ステートメントはすべての行に対して実行されます。

  • BEFORE または AFTER キーワードは、関連付けられた行の挿入、変更、または削除の前か後かに関係なく、トリガー アクションがいつ実行されるかを決定します。

  • トリガーに関連付けられたテーブルが削除されると、トリガー(Trigger)も自動的に削除されます。

  • 変更するテーブルは、トリガーがアタッチされているテーブルまたはビューと同じデータベースに存在する必要があり、database.tablename ではなく、tablename のみを使用する必要があります。

  • 特別な SQL 関数 RAISE() を使用して、プログラム内でスローされる例外をトリガーできます。

例:

SELECT name FROM sqlite_master WHEREtype = 'trigger';各行のすべてのトリガーを表示できます

は、操作ステートメントが行に影響を与えるたびに1回トリガーされることです。そして 10 行を削除するだけで 10 回トリガーされ、 状態ごとに 操作ステートメントが 1 回トリガーされ、場合によっては影響を受けない行も実行されます。 sqlite は、各行 に対する のトリガーのみを実装します。 各行の の使用法は次のようになります:

CREATETRIGGER trigger_name

AFTERUPDATE OF id ON table_1

FOR EACHROW

いつ

新しいid>30

BEGIN

UPDATEtable_2 SET id

=new.id WHEREtable_2 .id=古いid;

終了

;

上記のトリガーは table_1 の ID を変更します 新しい ID が 30 を超える場合、table_1 の ID と等しい table_2 の行が新しい ID に変更されます

インデックス (インデックス) は次のとおりです。 1 データベース検索エンジンがデータ検索を高速化するために使用する特別なルックアップ テーブル

。インデックスは SELECT クエリや WHERE 句の高速化に役立ちますが、UPDATE ステートメントや INSERT ステートメントを使用する場合はデータ入力の速度が低下します。インデックスは、データに影響を与えることなく作成または削除できます。

単一列インデックス

単一列インデックスは、テーブルの 1 つの列のみに基づいて作成されるインデックスです。基本的な構文は次のとおりです。

CREATE INDEX index_name
ON table_name (column_name);
一意のインデックス

一意のインデックスを使用することは、パフォーマンスのためだけでなく、データの整合性のためにも役立ちます。一意のインデックスでは、テーブルに重複した値を挿入することはできません。基本的な構文は次のとおりです。

CREATE UNIQUE INDEX index_name
on table_name (column_name);
複合インデックス

複合インデックスは、テーブルの 2 つ以上の列に対して作成されるインデックスです。基本的な構文は次のとおりです。

CREATE INDEX index_name
on table_name (column1, column2);
単一列インデックスを作成する場合でも、複合インデックスを作成する場合でも、クエリ フィルターとして

WHERE 句で頻繁に使用する列を考慮してください。 値に列が使用されている場合は、単一列インデックスの使用を選択します。

WHERE 句でフィルターとして頻繁に使用される列が 2 つ以上ある場合は、複合インデックスの使用を選択します。 暗黙的なインデックス

暗黙的なインデックスは、オブジェクトの作成時にデータベースサーバーによって自動的に作成されるインデックスです。インデックスは主キー制約と一意制約を使用して自動的に作成されます。

SELECT * FROM sqlite_master WHEREtype = 'index';

データベース内のすべてのインデックスを表示DROP INDEX Index_name;

SQLiteのDROPコマンドを使用してインデックスを削除できますどのような状況で行うべきかインデックスを使用しないでください?

インデックス作成の目的はデータベースのパフォーマンスを向上させることですが、インデックスの使用を避けなければならない状況がいくつかあります。インデックスを使用する場合は、次のガイドラインを再検討する必要があります。 インデックスは小さなテーブルでは使用しないでください。不検索 インデックスは、大量の操作や挿入操作が頻繁に行われるテーブルでは使用しないでください。

NULL 値を多数含む列ではインデックスを使用しないでください。

· 頻繁に操作される列ではインデックスを使用しないでください。 Indexed By

"INDEXEDBY インデックス名" 句は、前のテーブルの値を検索するために名前付きインデックスが必要であることを指定します。 インデックス名index-nameが存在しないか、クエリに使用できない場合、SQLiteステートメントの準備は失敗します。 「NOTINDEXED」句は、前のテーブル (UNIQUE 制約と PRIMARYKEY 制約によって作成された暗黙的なインデックスを含む) にアクセスするときにインデックスが使用されないことを指定します。

ただし、「NOT INDEXED」が指定されている場合でも、INTEGER PRIMARY KEY を使用してエントリを検索できます。

INDEXED BYは、DELETE

、UPDATE、またはSELECTステートメントと一緒に使用できます:

SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);

十、重命名表或向表中插入新的字段

用来重命名已有的表的 ALTERTABLE 的基本语法如下:

ALTERTABLE database_name.table_name RENAME TOnew_table_name;

用来在已有的表中添加一个新的列的 ALTERTABLE 的基本语法如下:

ALTERTABLE database_name.table_name ADD COLUMNcolumn_def...;

十一、视图

视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视图(View)实际上是一个以预定义的 SQLite 查询形式存在的表的组合。

视图(View)可以包含一个表的所有行或从一个或多个表选定行。视图(View)可以从一个或多个表创建,这取决于要创建视图的 SQLite 查询。、

视图(View)是一种虚表,允许用户实现以下几点:

① 用户或用户组查找结构数据的方式更自然或直观。

② 限制数据访问,用户只能看到有限的数据,而不是完整的表。

③ 汇总各种表中的数据,用于生成报告。

SQLite 视图是只读的,因此可能无法在视图上执行 DELETE、INSERT 或 UPDATE 语句。但是可以在视图上创建一个触发器,当尝试 DELETE、INSERT 或 UPDATE 视图时触发,需要做的动作在触发器内容中定义。

1、创建视图

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

2、删除视图

DROP VIEW view_name;

十二、日期时和时间

SQLite 支持以下五个日期和时间函数:

序号

函数

实例

1

date(timestring, modifier, modifier, ...)

YYYY-MM-DD 格式返回日期。

2

time(timestring, modifier, modifier, ...)

HH:MM:SS 格式返回时间。

3

datetime(timestring, modifier, modifier, ...)

YYYY-MM-DD HH:MM:SS 格式返回。

4

julianday(timestring, modifier, modifier, ...)

これは、11244714BCGMTの正午からの日数を返します。

5

strftime(format, timestring, modifier, modifier, ...)

これは、最初に指定されたフォーマット文字列に基づいてフォーマットされた値を返します。パラメータの日付。具体的なフォーマットについては以下で説明します。

上記の 5 つの日付と時刻の関数は、パラメーターとして時刻文字列を受け取ります。時間文字列の後に 0 個以上の 修飾子 修飾子が続きます。 strftime() 関数は、最初のパラメーターとしてフォーマット文字列 format を取ることもできます。さまざまなタイプの時間文字列と修飾子については、以下で詳しく説明します。

時刻文字列

時刻文字列は次のいずれかの形式です:

9

シリアル番号

時刻文字列

1

YYYY-MM-DD

2010-12-30

2

YYYY- HH :MM SSS

2010-12-30 12:10:04.100

4

MM-DD-YYYY HH:MM

30- 12-2010 12:10

5

HH:MM

12:10

6

YYYY- MM-DDT

HH: mm
12:10:01

8

YYYYMMDD HHMMSS

20101230 121001

現在

2013-05-07

日付と時刻を区切るテキスト文字として「T」を使用できます。

修飾子

時刻文字列の後に 0 個以上の修飾子を続けることができ、これにより、上記の 5 つの関数によって返される日付と / または時刻が変更されます。上記の 5 つの関数はいずれも時間を返します。修飾子は左から右の順に使用する必要があります。 SQLite で使用できる修飾子は以下のとおりです:

(1)日付と時刻を指定された値だけ増やします (正と負の数値は両方ともOK)

· NNN.NNNN秒

· NNN ヶ月

· NNN 年

(2) 現在の開始を返します日付

· ·

(3)次の週が N

であるときの日付と時刻を返します。 -01-01

開始からの秒数

·

unixepoch

(5)

現地時間に戻る

·

現地時間

(6) ) 国際標準時

·

書式設定

SQLite は、任意の日付と時刻を書式設定するための非常に便利な関数 strftime() を提供します。次の置換を使用して日付と時刻をフォーマットできます: d

小数部付きの秒、時間、00-23日、001-366ユリウス日、DDDD.DDDD月、00-12 ポイント、00-59 1970-01-01 より 秒、 曜日、0-6 (0は日曜日)01-53YYYY
一日今月、

01-31

%f

SS.SSS

%H

%j

% J

%m

%M

%s

秒数カウント

%S

00-59

%w

%W

年間の週、

%Y

年、

%%

%シンボル

selectdatetime(&#39;now&#39;,&#39;localtime&#39;);--当前时间读取本地得时间
selectdatetime(&#39;now&#39;,&#39;start of month&#39;);--本月第一天
selectdatetime(&#39;now&#39;,&#39;start of month&#39;,&#39;+1 month&#39;,&#39;-1 day&#39;);--本月最后一天
selectdatetime(&#39;now&#39;,&#39;start of year&#39;,&#39;+1 year&#39;,&#39;start of month&#39;,&#39;-1 day&#39;);--今年最后一天
SELECTjulianday(date(&#39;now&#39;,&#39;localtime&#39;)) - julianday(&#39;2018-03-20&#39;);;--计算今天到2018-03-20相差多少天

十三、函数大全

1、count 用于计算一个数据库表中得行数

如:select count(*)from k_user

2、max 选择某列最大值

3、min 选择某列最小值

4、avg 计算某列平均值

5、sum 允许一个数值列计算总和

6、random 返回一个介于 -9223372036854775808 和 +9223372036854775807之间的伪随机整数

7、abs 返回数值参数得绝对值

8、upper 吧字符串转换为大写字母

9、lower 把字符串转换为小写字母

10、length 返回字符串长度

11、sqlite_version 返回数据库版本

12、coalesce(X,Y,……) 返回第一个非空参数的副本。若所有的参数均为NULL,返回NULL。至少2个参数。

13、ifnull(X,Y) 返回第一个非空参数的副本。若两个参数均为NULL,返回NULL。

14、last_insert_rowid() 返回当前数据库连接最后插入行的RowID。

15、nullif(X,Y) 当两参数不同时返回X,否则返回NULL。

16、quote(X) 返回参数的适于插入其他SQL语句中的值。字符串会被添加单引号。

17、round(X)或round(X,Y) 将X四舍五入,保留小数点后Y位。若忽略Y参数,则默认其为0。

18、zeroblob(N)     返回一个 N 字节长、全部由 0x00 组成的 BLOB。SQLite 或以很有效的组织这些 zeroblob。它可以被用于为以后的使用预留空间。以后可以使用 incremental BLOB I/O 来写入 BLOB 数据。

19、typeof(X) 返回表达式X的类型

20、change_count() 返回受上一语句影响的行数。(好像不能用)

21、total(X) 返回一组中所有非空值的数字和。若没有非空行,sum()返回null而total()返回0.0。total()的返回值为浮点数,sum()可以为整数。

22、ltrim(X)

lrtrim(X,Y)     返回从 X 的左边边去除所有出现在 Y 中字符以后的字符串。如果省略 Y,则去除空格。

23、 replace(X,Y,Z)     返回一个将 X 字符串中每一个出现 Y 的位置替换为 Z 后的字符串。它使用二进制对照序列进行比较。

24、randomblob(N)     返回一个 N 字节长的包含伪随机字节的 BLOG。 N 应该是正整数

25、rtrim(X)

rtrim(X,Y)     返回从 X 的右边去除所有出现在 Y 中字符以后的字符串。如果省略 Y,则去除空格。

26、soundex(X)     计算字符串 X的读音编码。如果参数为 NULL,则返回 "?000"。默认情况下 SQLite 忽略该函数。仅当在编译时指定 -DSQLITE_SOUNDEX=1 时才有效。

27、substr(X,Y,Z)

substr(X,Y) 文字列 X を返します Y 番目の文字から始まり Z の長さの文字列。 Z を省略した場合は、文字列の末尾までの文字列が返されます。 X の最初の文字は 1 から始まります。 Y が負の場合は、右から数えます。 X が UTF-8 文字列の場合、添字付きの値はバイトではなく実際の UTF-8 文字を参照します。 X が BLOB の場合、添え字はバイトを指します。

この記事では SQLLite 関連のコンテンツについて説明します。その他の関連コンテンツについては、php 中国語 Web サイトに注意してください。

関連する推奨事項:

Spark SQL はログオフラインバッチ処理を実装します

MySQL によるデータ取得の詳細な説明

sql 2 つの隣接するレコード間の時間差の比較

以上がSQLLite関連コンテンツの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。