タグ付けされた質問 「sqlite」

Cライブラリとして実装された、人気のあるオープンソースの組み込み可能な(つまり、非クライアントサーバー)RDBMS。

7
sqliteシェル出力を適切にフォーマットする方法は?
にアクセスしmysql shellて入力すると、次のようSELECT * FROM usersになります- +--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+ | USERID | NAME | EMAILID | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS | +--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+ | 137 | X | b@cc.com | # | ADMIN | 166 | 110 | | 138 | Kshitiz | ksharma@aaa.com | asdf | ADMIN | 167 | …
79 sqlite 

3
JSONをSQLiteに保存およびクエリできますか?
JSONオブジェクトをSQLiteデータベースに保存してから、複雑なクエリを実行する必要があります。 私はこのようなテーブルを作りました: +--------------------------------------+ |document | property | string | number| +--------------------------------------+ |foo | "title" | "test" | | +--------------------------------------+ |foo | "id" | | 42 | +--------------------------------------+ |bar | "id" | | 43 | +--------------------------------------+ 2つのオブジェクト用 foo {"title": "test", "id": 42} bar {id: 43} ただし、次のような「AND」クエリは実行できません。 SELECT DISTINCT id FROM table …
35 sqlite  json 


3
絶対的なパフォーマンスのために、SUMは高速ですか、それともCOUNTですか?
これは、特定の条件に一致するレコードの数のカウントに関連していますinvoice amount > $100。 私は好む傾向がある COUNT(CASE WHEN invoice_amount > 100 THEN 1 END) ただし、これは有効です SUM(CASE WHEN invoice_amount > 100 THEN 1 ELSE 0 END) 次の2つの理由から、COUNTの方が望ましいと考えていました。 意図を伝えます COUNT COUNT おそらくi += 1どこかで単純な操作が行われますが、SUMはその式が単純な整数値であると期待することはできません。 特定のRDBMSの違いに関する特定の事実はありますか?

1
SQLiteの制限
シングルユーザー、組み込み、プロトタイプ指向のdbエンジンからsqliteデータベースをどこまで取得できますか?
22 sqlite 


1
列のインデックスを作成するときに、このsqliteクエリがはるかに遅いのはなぜですか?
(偽の)人の名前を含む、それぞれ50,000行の2つのテーブルを持つsqliteデータベースがあります。両方のテーブルに共通する名前(名前、ミドルネームのイニシャル、姓)がいくつあるかを調べる簡単なクエリを作成しました。 select count(*) from fakenames_uk inner join fakenames_usa on fakenames_uk.givenname=fakenames_usa.givenname and fakenames_uk.surname=fakenames_usa.surname and fakenames_uk.middleinitial=fakenames_usa.middleinitial; 主キー以外にインデックスがない場合(このクエリとは無関係)、すぐに実行されます。 [james@marlon Downloads] $ time sqlite3 generic_data_no_indexes.sqlite "select count(*) from fakenames_uk inner join fakenames_usa on fakenames_uk.givenname=fakenames_usa.givenname and fakenames_uk.surname=fakenames_usa.surname and fakenames_uk.middleinitial=fakenames_usa.middleinitial;" 131 real 0m0.115s user 0m0.111s sys 0m0.004s しかし、各テーブルの3つの列にインデックスを追加する場合(全部で6つのインデックス): CREATE INDEX `idx_uk_givenname` ON `fakenames_uk` (`givenname` ) //etc. …

5
SQLiteからPostgreSQLに移行するためのツール
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答や相互作用を受け入れていません。 SQLiteからPostgreSQLに継続的に移行する必要があります。継続的に、私は毎日SQLiteデータベースをPostgreSQLに再インポートすることを意味します。手動でPostgreSQLデータベースに変更を加える必要なく、SQLiteのテーブルに変更を加えることができれば素晴らしいと思います。私はPythonから移行を実行しますが、コマンドラインから制御できる任意の外部ツールを使用できます。ツールはLinuxで使用できる必要があり、Windowsでも実行できると便利です。

5
クエリを実行するためにアクセスするデータベースサーバーにインストールされているデータベースエンジンを確認するにはどうすればよいですか?
アクセス可能なDatasaseサーバーで実行されているSQLのタイプを確認したい。Webインターフェースとテーブルのリストにしかアクセスできません。 インターフェイスを介して、リストにあるテーブルに対してクエリを実行できます。 サーバーとサーバーが実行しているバージョンに関する詳細情報を取得するにはどうすればよいですか。サーバーが実行しているIPまたはポートについてはわかりません。 サーバーがMySQL、Mircosoft SQLサーバー、Oracle SQL、Postgre SQL、またはその他のSQLサーバーかどうかを知りたい。 私が話しているWebサイトは、 w3schools.com SQLエディターです。 編集2:一部のコマンドselect sqlite_version()は私にとっては機能しますが、機能しません。これは応答のスクリーンショットです。 編集3:Chromiumブラウザでは、コマンドは正しく機能しています。ただし、Firefoxブラウザーではコマンドは機能しませんでした。 また、私はLinuxを実行していることも述べました。 FirefoxとChromeで異なる結果が得られる理由は何だと思いますか?

3
SQLITE:タグと製品の問題
次のことを行うクエリを作成する方法を探しています。 3つのテーブルについて考えてみましょう。 製品:製品リスト タグ:タグのリスト tag_ties:タグを製品に関連付けるために使用されるテーブル 各テーブルについてこの構造を考えてみましょう: 製品: id(int、autoincrement) 名前(varchar、製品名) タグ: id(int自動インクリメント) ラベル(varchar、タグのラベル) Tag_ties: id(int、autoincrement) tag_id(int、タグIDへの参照) ref_id(int、製品IDへの参照) 私が欲しいもの: たとえば、タグID 10、11、および12でタグ付けされたすべての製品を取得します。 このクエリは機能しません。少なくとも1つのタグを持つ製品が返されるためです。 select p.name as name, p.id as id from products p inner join tag_ties ties on p.id=ties.ref_id where ties.ref_id=p.id and ties.tag_id in (10,11,12) group by p.id order by p.name asc
10 query  sqlite  subquery 

1
SQLiteデータベースのロックを防ぐにはどうすればよいですか?
SQLite FAQから私はそれを知っていました: 複数のプロセスが同じデータベースを同時に開くことができます。複数のプロセスが同時に実行できますSELECT。ただし、いつでもデータベースに変更を加えることができるプロセスは1つだけです。 だから、これまで私は私ができる理解限り:1)複数のスレッドからの読み取りデシベル(SELECT複数のスレッド(から)2)リードデシベルSELECTシングルスレッドから)と書き込み(CREATE、INSERT、DELETE) しかし、リーダーはライターをブロックせず、ライターはリーダーをブロックしないため、同時実行性が向上する先行書き込みロギングについて読みました。読み取りと書き込みは同時に実行できます。 最後に、指定されたとき、私はそれを見つけたときに完全に混乱しました: SQLITE_LOCKEDエラーが発生するその他の理由は次のとおりです。 しようとしCREATEたりDROPしながら、テーブルやインデックスSELECTの文はまだ保留されています。 SELECT同じテーブルでがアクティブなときにテーブルに書き込もうとしています。 SELECTsqliteがそのように設定されていない場合に、マルチスレッドアプリケーションで同じテーブルに対して同時に2つを実行しようとする。 DBファイルのfcntl(3、F_SETLK呼び出しが失敗します。これは、たとえばNFSロックの問題が原因である可能性があります。この問題の1つの解決策は、DBを移動してコピーし、新しいInode値を持つようにコピーすることです。 だから、私は明確にしたいのですが、ロックを回避する必要がありますか?2つの異なるスレッドから同時に読み書きできますか?ありがとう。
10 locking  sqlite 

1
複数のデータベースで作業していますか?
Linuxでsqlite3を使用して、複数のデータベースをどのように操作できますか? データベース1で次のようなことをしたいのですが? sqlite3 database1.db insert into database1.mytable values (select * from database2.mytable) SELECT上記のdatabase2 のクエリを作成するにはどうすればよいですか?
9 sqlite 

4
最小値を持つすべての行を選択します
Sqlite 3では、最小値に基づいて行を選択する方法を理解しようとしています。Googleを効果的に検索するのに十分な関連用語がわからないため、制限があると思います。 テーブルは次のようになります。 num text num2 ---------- ---------- ---------- 0 a 1 0 a 2 1 a 3 1 b 4 私は、行を取得したいnum2ですが1, 2、と4。テキスト列の一意の値ごとに、numの最小値に基づいて選択を行います。 だから、のためtext = 'a'の最小値、numである0私は、行1および2.たいのでtext = 'b'、の最小値numであるが1、私は行をしたいので4。 することにより、グループの様々な組み合わせを使用して、私はどちらかの行を取得することができるよ1と2または行を1して4。自分のやりたいことを実行するSQLコンポーネントが不足しているように感じますが、それが何であるかを理解することができませんでした。 このタイプのクエリを実行する適切な方法は何ですか? 可能な解決策 これを行う方法を見つけました。自分の質問に答えるほど評判がよくないので、ここで更新を行っています。それが常に正しいのか、それとも効率がどの程度なのかはわかりません。コメントは大歓迎です。 1つのクエリでテキストの一意の値ごとにnumの最小値を見つける、複合selectステートメントを使用しました。 sqlite> select num, text from t group by text having num = min( num ); num text …
9 sqlite 

1
インデックスの影響の見積もりSQLiteデータベースサイズ
多数のインデックス付き列を含むSQLite DBの(ディスク上の)データベースサイズを推定しようとしています。これらの列は(SQLite)タイプの整数と文字列です。これらの列を使用して行ごとのサイズを見積もるのは十分簡単ですが、インデックスのために行ごとの余分なパディングをどのように説明するかわかりません。これに対する最善のアプローチは何ですか?
9 index  sqlite  size 

1
SQLite3はjson_extract式でカバリングインデックスを使用していません
式SQLite3を使用して(3.18)でインデックスを作成しようとしていますjson_extract。私の目的は、結果を生成するためにインデックスのみを必要とするクエリを実行することです。これは、json_extract大きなデータセットや値を操作するときにパフォーマンスを低下させる高価な操作であるためです。私は自分のニーズに合うカバリングインデックスが必要だと結論しました。 ステップ1-通常のテーブル構造を使用して理論をテストする CREATE TABLE Player ( Id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, FirstName TEXT NOT NULL, MiddleName TEXT, LastName TEXT NOT NULL ); CREATE INDEX Player_FirstName ON Player ( FirstName ASC, LastName ASC ); EXPLAIN QUERY PLAN SELECT FirstName, LastName FROM Player WHERE LENGTH(LastName) > 10 ORDER BY FirstName …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.