phpLiteAdmin is even more powerfull than SQLite itself! Browse & Search Browse through the content of your tables or search for specific rows
似たような処理にreplaceがあるが、 replaceはレコード(行)を丸ごと入れ替える(delete/insert)のに対し、 upsertはカラムを指定してレコードを更新する。 SQLite3 でレコードがあれば置換、なければ新規挿入する (replace) 公式 によると PostgreSQL の構文を利用しているとのこと。 Microsoft SQLServer や Oracle の「merge(マージ)」構文に近い使い方だが mergeは重複の判定にUniqueカラム以外のものを指定できたりする。 実行例 「upsert」というコマンドがあるわけではなく、 on conflict文を使い キーが重複した場合の処理を指定することができる。 on conflict文は sqlite のバージョン3.24.0 から利用可能。 環境 Windows 10 sqlite3 (3.24.0
この記事はFOSS4G Advent Calendar 2017の23日目の投稿です。 みなさまこんにちは。 今年は、Pythonなどで空間処理を行うのにmod_spatialite使ってみたらいかがでしょうか、というオハナシです。 全然新しくない(むしろ古いか…)ものの紹介ですすみません。(検索したらホイホイ出てくるよね…) はじめに ローカル環境で利用できる軽量のRDBMSであるSQLiteの地理空間拡張がSpatiaLiteです。 名だたるPostGISと同じような処理がお手軽に利用できますよ、というメリットがあるわけですが、SQLiteでは変数を使用したSQLを認識できない(他のRDBMSはどうだかわかりません…)ため、バッチ処理などのために変数を使用してSQLを生成するには外部言語からSpatiaLiteへアクセスしたいということになります。 (ちなみに、次期バージョンのSpat
作業手順 今回の作業手順を以下に示します。 1.シェープファイルの入手 国土数値情報のサイト、統計GISのサイトからシェープファイルを入手します。 2.シェープファイルのインポート 今回は、”spatialite_tool”(CLI)を使ってシェープファイルをSpatiaLiteデータベースへインポートします。 3.SpatiaLiteの環境構築 前回の記事を参考に、SpatiaLiteの環境を構築します。 4.Pythonプログラムによる検索 PythonプログラムからSpatiaLiteへ接続して検索を行います。 シェープファイルの入手 以下の国土数値情報ダウンロードサービスからバス停留所(点)のシェープファイルを入手します。 [blogcard url=”http://nlftp.mlit.go.jp/ksj/”] ダウンロードするファイルの情報は、以下となります。 分類:4.交通>
先日、オープンソースな地理空間ソフトウェア群であるFOSS4GなAdvent CalendarにSpatiaLiteについて投稿したところ、たけやぶにお住まいのSQL使い@ozo360さまから畏れ多くもお誘いをいただいたので、こちらにもかんたんな紹介記事を投稿したいとおもいます。(@ozo360さま、お誘いいただきありがとうございます!) SpatiaLite...? パブリックドメインな軽量データベースであるSQLiteにSpatial(空間的)な機能を拡張したのがSpatiaLiteです。正しい読みは知りませんが、「すぺーしゃらいと/すぺいしゃらいと」とか呼んでます。 配布元では、Spatial Is Not Special(空間的なことは特別なことじゃない:もっとましな訳があるはず)というスローガンを掲げていて、空間処理も簡単にできるようになるよ!的な想いがひしひしと伝わってきます。
書き込みが発生する暗黙的トランザクションも同様のロックが発生します。 ロック中の読み取りは、EXCLUSIVEロック中だけ他プロセスもリードアクセスができなくなります。これ以外のUNLOCKED 、SHARED 、RESERVED中はリードアクセス可能です。 PENDINGはSHAREDロック所有プロセスはリードアクセス可能です。新たなSHAREDロックは獲得できません。 同時読み込みをサポートする仕組みであることがわかります。ただEXCLUSIVEロック中は読み込みも失敗することに注意が必要です。 プログラム(PHP SQLIte3)に落とし込んで考えると以下のようなことがわかりました。 ・querySingle("select")、query("select")、prepare("select")等でSHAREDロックが発生する ・exec("insert")等でSHARED、RESE
一括挿入によると SQLite には、データを一括挿入するための特別な方法はありません。 データの挿入または更新時に最適なパフォーマンスを得るには、以下を行ってください。 トランザクションの使用。 同じパラメーター化コマンドの再利用。 後続の実行で、最初の実行のコンパイルを再利用します。 と案内されています。 マシン環境が異なるので所要時間が異なりますが、 takemori_kondoさんのコード: 402ms 一括挿入: 230ms 一括挿入からtranをコメントアウト: 243,755ms と愚直にループしてもかなり高速になります。 #if false foreach (var group in list.Select((hv, i) => (hv, i)).GroupBy(x => x.i / 1000)) { using var cmd = conn.CreateCommand()
A high-severity vulnerability has been disclosed in the SQLite database library, which was introduced as part of a code change dating all the way back to October 2000 and could enable attackers to crash or control programs. Tracked as CVE-2022-35737 (CVSS score: 7.5), the 22-year-old issue affects SQLite versions 1.0.12 through 3.39.1, and has been addressed in version 3.39.2 released on July 21,
#要点 SQLiteでは日付時刻は文字列として格納されるが、日付時刻型があると思って扱った方が楽。 SQLiteは日付時刻をUTCとして保持する。 SQLiteに日付時刻を渡す・取り出す際には関数を使用する。 SQLiteに日付時刻を渡す・取り出す際には時差により補正することができる。 SQLiteでは日付・時刻・日付時刻は単なる文字列として扱われる。SQLiteで格納される日付時刻にはタイムゾーンの概念はなく、すべての日付時刻をUTCとして保持する1。ただし、記録してある日付・時刻・日付時刻を取得する際に、欲しいフォーマットに変換したり時差を考慮したりすることができる。 SQLiteでは日付等は文字列として扱われるが、便宜上「日付時刻型がある」と考えた方が都合がいい2。データベースには日付時刻型として格納し、取り出す際に文字列に変換する。 #背景 さくらのレンタルサーバーライトでデータベ
Introduction 先日Githubに公開されたmvSQLiteですが、 「SQLite互換のスケーラブルなデータベース」とのことで話題になってます。 mvSQLiteの特徴は、SQLiteのストレージレイヤーをFoundationDBに分離しているところです。 これにより、DynamoDBのように際限のないスケーラビリティ、point-in-timeでの読み取り、 そしてRDBの厳密な一貫性を提供します。 作成者曰く、mvSQLiteの目標は 「SQLiteを分散データベースに変えること」 とのことです。 FoundationDBとは FoundationDBは大量の構造化データを処理するために設計された分散データベースです。 2015年にAppleが買収したことでもニュースになりました。 データをソート済みのKeyValueデータとして保管し、 すべての操作にACIDトランザクシ
VMwareのWasm Labsは、Webブラウザ上でWordPressを実行可能にしたデモを公開しました。 デモページをWebブラウザで開くと、実際にWebブラウザ上でWordPressが実行されます。 WordPressはオープンソースで開発されている代表的なCMSです。PHPで開発されています。バックエンドデータベースとしてMySQLが使われることが一般的ですが、今回のデモではSQLiteが使われています。 今回のデモを公開したVMwareのWasm Labsは、C言語をWebAssemblyバイナリにコンパイルできるEmScriptenコンパイラを用いて、PHPとSQLiteのコンパイルを行っています。 さらにメモリ上にファイルシステムを構築し、Service Workerをプロキシとするなど追加でWordPressを実行可能な環境を作り上げ、デモを作成したとのことです。 WebA
SQLiteをはじめとしたデータベースは、Excelなどのアプリとは違いプログラマー以外が直接操作をするのが難しいというデメリットがあります。 データベースは基本的にプログラムから操作する前提でできています。普段はアプリの裏でうごいていて、ユーザーがデータベースの存在を意識することはありませんが、何かしらの理由でユーザーに操作させるには、それ用のプログラムとUIを用意するのがセオリーかと思います。これってすごい面倒なんですよね。そんなときにExcelから一発でデータベースに変換できたら便利だね、というお話です。 最強の表作成ツール Excel Excelは表計算アプリなわけですが、実際の用途はぶっちぎりトップが「一覧表として」でしょう。関数が1つも使われていないブックなんて、めずらしくも何ともないですよね。本来、こういった用途にはWordやPowerPointを使うのがいいのでしょうが、多
はじめに SQLite3 くらい楽に扱えて、PostgreSQL みたいにネットワーク経由で使える物ないかなーなんて思ったりする事ないですか?ありますよね、あるんです。 postlite このニーズに答えてくれるのが postlite です。postlite を使うと SQLite3 で作られたデータベースファイルを、PostgreSQL の様に扱えます。 仕組みは至って簡単で、僕が開発している go-sqlite3 に PostgreSQL の通信プロトコルのガワと、仮想テーブルを使って PostgreSQL のスキーマを疑似しています。 インストール postlite は go-sqlite3 の vtable を使います。ですので、go install ではなく postlite の README.md に書かれた手順を使わなければなりません。
コマンドラインツール コマンド一覧 概要 テキストデータであるTSVファイルをSQLite3に入力/出力させる方法。 コマンドラインツールから利用する。 自作のスクリプトでテキストを読込/出力、DBに接続してinsert/selectをやるよりはるかに簡単。 取り込む処理はインポート・バルクロード、出力する処理をエクスポートと言ったりする。 TSVのフォーマットについて IANAによってMIMEタイプ tsv/tab-separated-values として定義されている。 http://www.iana.org/assignments/media-types/text/tab-separated-values フィールド(列)はTABで区切る レコード(行)は改行で区切る 各行のTABの数は同じでなければならない といったところ。 構文 TSVファイルのインポート .mode tab .
タイトルの日本語に違和感があるが、気にしない方向で。 sqlite_unicode を指定するだけ。 DBD::SQLite - Self-contained RDBMS in a DBI Driver - metacpan.org https://metacpan.org/pod/DBD::SQLite use strict; use warnings; use DBI; use utf8; use open IO => qw/ :encoding(utf8) :std /; my $dbh = DBI->connect("dbi:SQLite:dbname=test.db"); $dbh->{sqlite_unicode} = 1; # important! $dbh->{AutoCommit} = 0; #initdb($dbh); $dbh->do(q{CREATE TABLE I
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
WEBのシステム開発はPHPを使用していますが、データ解析等のため Python3 の研究を始めました。Python3 は日本語の情報がとても少ないので、エンジニアや学生の皆さんに役立ちそうなことをブログ記事として共有できればと思います。 この記事では Python3 で SQLite3 に接続する方法、エラー処理(例外処理)、サンプルによるCRUD(※)、PHPer向け注意点についてまとめました。なおサンプルは Django 等、特定フレームワークの ORM ではなく、SQLの直接実行例です。 MySQL は Python3でMySQLを使う – 基本操作からエラー処理までサンプルコード付を参照ください。 ※ CRUD とは Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)の略です。SQLite の場合Read に相当するのは主に Select 文に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く