気合いで実装、どうもかわしんです。 この記事は Rust Advent Calendar 2023 の6日目 兼 情報検索・検索技術 Advent Calendar 2023 の 6 日目です。 Rust で SQLite をフルスクラッチで実装しています。 github.com なぜ SQLite を Rust で再実装しようと思ったのかについては以前の記事で紹介しています。一言で言えば、誰も Rust で SQLite を書いている人がいなかったからやってみたのですが、そもそも SQLite が強すぎるということが再実装しているうちにわかってきて絶望しています。 kawasin73.hatenablog.com 4 ヶ月前にこの記事を書いたときは簡単な SELECT 文しか実行できなかったのですが、現時点では SELECT, INSERT, DELETE 文をサポートし、express
後方互換性って辛いね、どうもかわしんです。 最近 Rust で SQLite をフルスクラッチで再実装しています。 github.com 再実装するために SQLite の公式ドキュメントやソースコードを読み込んでいるわけですが、その過程で気付いたおもしろポイントを共有しようかと思います。 今回はその第二弾、ファイルフォーマット編です。第一弾はこちら:SQLite のおもしろ仕様 (1) : データ型 - kawasin73のブログ 前提知識 : ページ まず、この記事を面白いと思ってもらうための前提知識です。 大抵のデータベースはデータを保存するファイルをページという単位で管理します。SQLite ではデフォルトでは 1 ページ 4096 バイトです。これは、ファイルを保存するデバイス(HDD や SSD など)としてブロックデバイスを想定しているからです。ブロックデバイスとはデータの読
PandasでUpsertが待ちきれず、自作してみた PandasのSql Upsertを試してみた を見て、Upsert なる言い方を知った(SQLiteの"INSERT OR REPLACE"は大昔使っていたけど) これこれ、と思ったけど、まだリリースされていないいし(21年4月現在)、なんとPandas の to_sqlだと、primary keyやunique keyが作れない。 (SQLTable/SQLiteTableにはkeysで指定できるけど、to_sqlにない。Why?) とりあえず、下記を参考にして、SQLite専用だけどUpsertを作ってみた。 Python Pandas to_sql, how to create a table with a primary key? def upsert(frame, name: str, unique_index_label,
Webサーバ上でデータベースを作ろうと思ったので、まずSQL文の練習をすることにしました。 csvファイルでデータをもらった後、軽量なデータベースであるsqlite3にデータを移しました。 python組み込みのsqlite3モジュールを使用しました。 データの用意 まずサンプルとしてcsvファイルで受注表を用意しました。 jyuchuhyo.csv 受注番号,顧客コード,商品コード,受注個数,納品日 100011,001,1002,30,20110501 100012,002,1001,20,20110501 100013,003,1003,10,20110501 100014,001,1003,15,20110502 100015,003,1101,15,20110503jyuchuhyo.py # -*- coding: utf-8 -*- import csv import sql
#要点 SQLiteでは日付時刻は文字列として格納されるが、日付時刻型があると思って扱った方が楽。 SQLiteは日付時刻をUTCとして保持する。 SQLiteに日付時刻を渡す・取り出す際には関数を使用する。 SQLiteに日付時刻を渡す・取り出す際には時差により補正することができる。 SQLiteでは日付・時刻・日付時刻は単なる文字列として扱われる。SQLiteで格納される日付時刻にはタイムゾーンの概念はなく、すべての日付時刻をUTCとして保持する1。ただし、記録してある日付・時刻・日付時刻を取得する際に、欲しいフォーマットに変換したり時差を考慮したりすることができる。 SQLiteでは日付等は文字列として扱われるが、便宜上「日付時刻型がある」と考えた方が都合がいい2。データベースには日付時刻型として格納し、取り出す際に文字列に変換する。 #背景 さくらのレンタルサーバーライトでデータベ
DB Browser for SQLite The Official home of the DB Browser for SQLite Screenshot What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. DB4S is for users and developers who want to create, search, and edit databases. DB4S uses a familiar spreadsheet-like interface, and complicated SQL commands do not hav
mysqlvizはMySQL/SQLiteの構造を可視化するライブラリです。 DBを使ったシステムを構築していると必要になるのがER図ではないでしょうか。そんなER図を実際のデータベースのダンプファイルをベースに描き出すのがmysqlvizです。 ヘルプです。 まずdotファイルを生成します。 さらにdotファイルをpngに変換して得られた結果です。 mysqlvizはMySQLとSQLiteに対応しています。MySQLの場合はダンプファイル、SQLiteの場合は実際のデータベースファイルを読み込んでdotファイルを出力します。後はGraphvizを使ってPNG画像に変換する仕組みになっています。 mysqlvizはPHP製、GPL v3のオープンソース・ソフトウェアです。 MOONGIFTはこう見る mysqlvizの面白いところはMySQLについてはダンプファイルを使っているということ
sqliteがバックエンドの時のTracReportを書くtips sqliteがバックエンドの時のTracReportのSQLを書くtipsです。 主なテーブル構造(ticket) CREATE TABLE ticket ( id integer PRIMARY KEY, type text, time integer, changetime integer, component text, severity text, priority text, owner text, reporter text, cc text, version text, milestone text, status text, resolution text, summary text, description text, keywords text ); CREATE TABLE ticket_custom
What is NanoStore? NanoStore is an open source, lightweight schema-less local key-value document store written in Objective-C for Mac OS X and iOS. Relational databases tend to have a rich understanding of the structure of your data, but requires some planing beforehand and some level of maintenance as well. NanoStore provides the flexibility that comes with key-value document stores, but still un
Kazzz/FMDBExtensions · GitHub FMDBExtensionsはiOSのSQLite用ライブラリィであるFMDBとandroidのSQLiteDatabaseクラスにインスパイアされて書いた、iOSのSQLiteデータベース用ライブラリィです。 経緯 iOSのアプリケーションを開発する際にSQLiteデーターペースを扱うための高次のライブラリィが提供されていない所に、FMDBというオープンソースライブラリィがあることを知り、大変に便利に使わせて頂きました。 ccgus/fmdb · GitHub 一方でandroidでSQLiteにアクセスする際にはSDK標準で提供されているSQLiteDatabaseクラスを使用してました。SQLをあまり意識せずに使える一連のAPI群は非常に便利であり、生のSQLを書くのが嫌いな私はandroidと同様の使い勝手をFMDBに求め
レッスン一覧 料金プラン ログイン 2024/12/06 NEW 「MySQL入門 基礎編」のミニクイズをリリースしました 2024/12/05 NEW 【週刊ドットインストール】 マイページの改善、レッスン制作の進捗、ミニクイズ更新情報 2024/12/04 NEW 「UNIXコマンド入門」のミニクイズをリリースしました 2024/12/04 NEW 「PHP入門 クラス編」のミニクイズをリリースしました 2024/12/02 NEW 「PHP入門 データ構造編」のミニクイズをリリースしました 2024/12/02 NEW 「PHP入門 関数編」のミニクイズをリリースしました 2024/05/07 NEW あなただけの学習ロードマップを作成します 【随時受付中】
iOS で SQLite を簡単に扱うためのライブラリ FMDB についてまとめる。 2017/1/22 本記事のサンプルを最新の Objective-C と Swift で書き直して記事にまとめました iOS で SQLite - FMDB の使い方 2017 FMDB とは? FMDB は SQLite を iOS の Objective-C で扱いやすくするための Wrapper ライブラリ。 GitHub で公開されている。 ccgus/fmdb インターフェースや使用感は JDBC や ADO.NET に近い。よってこれらを利用したことがあればスムーズに理解できるだろう。 FMDB の仕様準備 まず FMDB を利用したいプロジェクトで SQLite 用のライブラリを有効にする。手順は以下。 Xcode 左ペインのナビゲーションからプロジェクトを選択 右ペインに PROJECT
まえがき ある日突然Twitterで@TeamMOSA2さんが@glassonion1さんのつぶやきをリツイットしてくれました。なんか面白そうなイベントだなと思って、 すぐにATNDに参加しました。時期が早かった!6人目になって、自動的に12月6日の担当になってしまいました。しかし、製作中のtuneTVの新しいバージョンがサブミット予定日辺りなので、無理やりに@glassonion1にお願いして、12月12日にリスケして頂きました。本当にありがとうございます。 前回は@happy_ryoさんの記事:XCodeからappCodeへ乗り換える8つの理由でした。面白い記事ので、ぜひご覧ください。 さて、今回僕の記事はSQLiteを使って、全文検索をする方法を紹介しようと思っています。皆さんに少し役に立てばと思います。 えぇ?SQLiteを使って全文検索ができるの? SQLiteがFTSをサポート
9. context = new RenamingDelegatingContext( getContext(), "test_" ); helper = new TestterSQLiteOpenHelper( context ); 16. public class IconSQLiteDaoTest extends DatabaseTestCase { private IconDao iconDao; @Override protected void setUp() throws Exception { super.setUp(); importData(FileType.Yaml, "IconSQLiteDaoTest"); iconDao = new IconSQLiteDao(getSQLiteDatabase()); } @Override protected SQLiteOp
はじめに xls2dbという Pythonモジュールを使って、Excel(.xls)ファイルを SQLite3のデータベース形式に変換します。 例えば、マスタやテスト用データをExcelで作成してSQLiteで使用、というような用途で使えます。 xls2db (公式サイト github) https://github.com/jesusabdullah/xls2db README.rst の Why?? の節を読むと、作者(Joshua Holbrook氏)が何故このモジュールを作ったかが、なんとなく分かります。 …データ登録に苦労されたみたいでです。 とりあえず、このツールを使えば、コマンド一発でExcelファイルをSQLite3のデータベースファイル形式に変換出来ます。 ワークシートの記述ルール lxs2dbでは、変換元のExcelワークシートの記述に一定のルールがあります。 (記述ル
ここ2、3週間久々にiphoneを弄っているのですが、GCが入ってない環境でのプログラミングはやらないと衰えるんですね。LLに慣れると辛いです。細かい事にまで気を使う必要があるので疲れますね。ブログ書きながらリハビリしようと思います。 さてiPhoneではバックエンドにSQLiteを使えるんですが、そのラッパーのFMDatabaseの使い方をまとめておきます。 インストールとプロジェクト設定はこちらのページを参考にさせて頂きました。ソースをコピーして、プロジェクトにライブラリを追加しましょう。 今回このインターフェースを使って行う処理は、概ね以下のSQLの通りです。テーブル作成後、CRUD操作を一通り行っています。 -- CREATE TABLES CREATE TABLE authors( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT )
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く