キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
あなたのDBはINTERSECTとEXCEPTをサポートしているかどうか。Firebird(とMySQL)はしてねえっす。
0
    あなたのDBはINTERSECTとEXCEPTをサポートしているかどうか。Firebirdはしてねえっす。

    本エントリは(遅れていますが)Firebird Advent Calendar 2018の13日目のエントリです。

    本来は「Firebirdの分析関数の衝撃(12) 2つのテーブルが相等であるかどうか」というエントリを書こうとおもったのですが、その前提(?) にINTERSECTとEXCEPTが必要だったので、それについて先にまとめておきたくて、このエントリになりました。

    各データベースの集合演算(UNION, INTERSECTION, EXCEPT)の実装度合いはデータベースによって違う(UNION, UNION ALLは全てのデータベースでサポートされている) 割り算(DIVIDE BY的なもの)は、全てのデータベースでサポートされていません。

    なぜALLがあるのか、とか、割り算がないのか、というところは以下のミックさんのブログ記事を御参照ください。

    SQLで集合演算

    各データベースの集合演算のサポート具合で、三つのグループに分けられます。

    (1) INSERSECTとEXCEPTのどちらもサポートしていない: Firebird, MySQL
    (2) INSERSECTとEXCEPT(MINUS)のどちらもサポートしているが、ALLをサポートしていない: Oracle, SQLite, SQL Server (2005以降), MariaDB (10.3以降)
    (3) INSERSECTとEXCEPTもサポートし、それぞれALLもサポートしている: IBM Db2, PostgreSQL

    # Firebird以外は以下のエントリが参考になります。

    What’s New in MariaDB 10.3, 5.Intersect and Except

    FirebirdへのFR(Feature Request)は以下。

    [#CORE-808] Add support for INTERSECT and EXCEPT data set operators

    PostgreSQL, IBM Db2以外のRDBMで、
    (2) でINTERSECT ALL, EXCEPT ALLをシミュレート、
    (1) で上記に加えてINTERSETC, EXCEPTをシミュレートするには、
    プログラマのためのSQL 第四版 第34章集合演算(Set Operation)の34.2 INTERSECTとEXCEPTを読むといいです。(最新のSQL for Smarties 5th EditionではCHAPTER 16 SET Operationの16.2 INTERSECT and EXCEPT にあたります)

    注意すべき点はNULLと値の重複の有無です。これらがなければネットで検索してでてくるようなクエリはほとんど動く(はず)です。例えば対象とする列が主キーであれば、問題なく動くはずです。

    JUGEMテーマ:コンピュータ



    | meijik | クロスデータベース | 01:23 | comments(0) | trackbacks(0) | - | - |
    LibreOffice 6.2 の Firebird
    0
      本エントリはFirebird Advent Calendar 2018 の 12日目のエントリです。

      四年前くらいからなんやかんやいっていたBase (MS OfficeでいうところのAccess的な立ち位置)で
      Firebirdが使えるようになりました。再度「実験的な機能」からの脱却。

      DB選択画面

      バージョンは6.2 Beta このままGAを向かうことを期待しています。そして、そのときにはデフォルトがFirebirdになっていてくれるとありがたいですが。。。。

      JUGEMテーマ:コンピュータ



      | meijik | Firebird/InterBase | 23:27 | comments(0) | trackbacks(0) | - | - |
      [勝手に対応]MySQL8.0の分析関数の2(Lag関数と累計と移動累計)
      0
        [勝手に対応]MySQL8.0の分析関数の2(Lag関数と累計と移動累計)

        本エントリはMySQL Casual Advent Calendar 2018の11日目です。

        MySQLでは8.0からウインドウ関数に対応しました。これにより商用RDBMS御三家+PostgreSQLが対応していた
        多くの分析関数・ウインドウ関数が利用できるようになりました。

        本エントリは以下のエントリの続きです。

        [勝手に対応]MySQL8.0の分析関数の1(モードとメジアン)


        1. 部分的に不一致なキーの検索

        PostgreSQL 8.4でエラーになるクエリはMySQL 8.0でもエラーになります。(PostgreSQL 11 でも同じ)

        ERROR 1235 (42000): This version of MySQL doesn't yet support '(DISTINCT ..)'

        これはWindow関数内でDISTINCT を扱えない、実装上の問題です。

        window関数で書き換えたSQL1,2は動作しますが、
        window関数で書き換えたSQL3,4はPostgreSQL特有の配列を使ったものですので、PostgreSQL以外は動作しません。

        [To be contined]


        JUGEMテーマ:コンピュータ



        | meijik | MySQL | 23:58 | comments(0) | trackbacks(0) | - | - |
        Firebirdの分析関数の衝撃(11) 「2日前の値」
        0
          本エントリはFirebird Advent Calendar 2018 の10日目です。

          Firebirdの分析関数の衝撃(11) 「2日前の値」


          5. 「2日前の値」

          テーブル定義とデータはそのまま使えます。

          クエリは前回と同様に「prc_date-interval '2 day'」の部分を「dateadd(-2 day to prc_date)」に変更すればよいだけです。

          -- window関数で書いたSQL(dateaddを使ったFirebird版)
          select prc_date,prc_amt,
          case when Lag(prc_date,2) over(order by prc_date) = dateadd(-2 day to prc_date)
          then Lag(prc_amt,2) over(order by prc_date)
          when Lag(prc_date) over(order by prc_date) = dateadd(-2 day to prc_date)
          then Lag(prc_amt) over(order by prc_date)
          else 0 end as before_prc_amt
          from Accounts;

          -- 相関サブクエリで書いたSQL(dateaddを使ったFirebird版)
          select prc_date,prc_amt,
          coalesce((select b.prc_amt
          from Accounts b
          where b.prc_date = dateadd(-2 day to a.prc_date))
          ,0) as before_prc_amt
          from Accounts a;

          -- 外部結合で書いたSQL(dateaddを使ったFirebird版)
          select a.prc_date,a.prc_amt,
          coalesce(b.prc_amt,0) as before_prc_amt
          from Accounts a Left Join Accounts b
          on dateadd(-2 day to a.prc_date) = b.prc_date;

          [それぞれのクエリ結果]
          PRC_DATE PRC_AMT BEFORE_PRC_AMT
          =========== ============ ==============
          2006-10-26 100 0
          2006-10-28 200 100
          2006-10-31 400 0
          2006-11-03 800 0
          2006-11-04 1600 0
          2006-11-06 3200 1600
          2006-11-11 6400 0

          ここまで書いて「あれ、window関数版はorder byあるけど、相関サブクエリ版や外部結合版はorder byないのでAccountsテーブルがprc_dateでソートされている保障ないじゃん!」と思ったのですが、よくよくそれぞれのクエリをみると、相関サブクエリも外部結合も=で比較しているだけですし、prc_dateは主キーの日付なので問題ないですね。

          またひとつ前「4. 「2日前からの累計」」のクエリも相関サブクエリ版はbetweenで日付を指定しているだけで、そのbetween内の行順序は保障する必要はないので、これもまた大丈夫でした。

          JUGEMテーマ:コンピュータ

          | meijik | Firebird/InterBase | 00:10 | comments(0) | trackbacks(0) | - | - |
          Firebirdの分析関数の衝撃(10) 「2日前からの累計」
          0
            本エントリはFirebird Advent Calendar 2018 の9日目です。

            Firebirdの分析関数の衝撃(10) 「2日前からの累計」

            4. 「2日前からの累計」

            テーブル定義とデータはそのまま使えます。
            PostgreSQL 8.4で利用できないクエリは、Firebird 3.0でも利用できません。これはrangeが未実装のためです。

            Window Functions

            それ以外のwindow関数利用のクエリ、未使用のクエリは動作します。
            ただし、一部Firebird独自の関数のdateadd()に変更する必要があります。
            datesub()はなく、第一引数をマイナスにすると引き算相当になります。

            -- window関数で書いたSQL。-interval '2 day'がないのでdateadd()関数に変更。
            select prc_date,prc_amt,
            prc_amt+
            case when Lag(prc_date,2) over(order by prc_date) >= dateadd(-2 day to prc_date)
            then Lag(prc_amt,2) over(order by prc_date) else 0 end +
            case when Lag(prc_date) over(order by prc_date) >= dateadd(-2 day to prc_date)
            then Lag(prc_amt) over(order by prc_date) else 0 end as mvg_sum
            from Accounts;

            -- 相関サブクエリで書いたSQL。-interval '2 day'がないのでdateadd()関数に変更
            select prc_date,prc_amt,
            (select sum(b.prc_amt)
            from Accounts b
            where b.prc_date between dateadd(-2 day to a.prc_date)
            and a.prc_date) as mvg_sum
            from Accounts a;

            PRC_DATE PRC_AMT MVG_SUM
            =========== ============ =====================
            2006-10-26 100 100
            2006-10-28 200 300
            2006-10-31 400 400
            2006-11-03 800 800
            2006-11-04 1600 2400
            2006-11-06 3200 4800
            2006-11-11 6400 6400

            JUGEMテーマ:コンピュータ



            | meijik | Firebird/InterBase | 00:09 | comments(0) | trackbacks(0) | - | - |
            Firebirdの分析関数の衝撃(9) 「最大何人まで座れますか?」
            0
              本エントリはFirebird Advent Calendar 2018 の八日目です。

              Firebirdの分析関数の衝撃(9) 「最大何人まで座れますか?」

              3. 「最大何人まで座れますか?」

              以下のDDL, DMLでSeats3テーブルを作成します。text型をドメインでVARCHARに定義済みの人はダウンロードできるソースそのまま(status text)でも大丈夫です。

              create table Seats3(
              seat integer primary key,
              status char(2));

              insert into Seats3 values( 1,'占');
              insert into Seats3 values( 2,'空');
              insert into Seats3 values( 3,'空');
              insert into Seats3 values( 4,'空');
              insert into Seats3 values( 5,'空');
              insert into Seats3 values( 6,'占');
              insert into Seats3 values( 7,'空');
              insert into Seats3 values( 8,'占');
              insert into Seats3 values( 9,'空');
              insert into Seats3 values(10,'空');

              commit;

              これをいったん定義すれば、ミックさんのビュー定義、クエリ。
              山岸さんのWindow関数版すべて動作します。

              START_SEAT END_SEAT SEAT_CNT
              ============ ============ =====================
              2 5 4

              JUGEMテーマ:コンピュータ



              | meijik | Firebird/InterBase | 00:06 | comments(0) | trackbacks(0) | - | - |
              Firebirdの分析関数の衝撃(8) 「3人なんですけど座れますか?」(行の折り返しを考慮する)
              0
                本エントリはFirebird Advent Calendar 2018 の七日目です。今年も参加者募集!

                Firebirdの分析関数の衝撃(8) 「3人なんですけど座れますか?」(行の折り返しを考慮する)

                2. 「3人なんですけど座れますか?」その2:行の折り返しも考慮する

                ミックさんの『SQLで数列を扱う』では、最初折り返しを考慮しない、つまり1席から15席までを連続した席として
                扱っていましたが、映画館やコンサートホールでは、一定の幅で折り返ししています。この場合数値としては連続していても列で分断される場合があり「折り返しを考慮する」とは、それを考慮したものになります。たとえば今回の場合は以下のようになり、結果として前回の結果から(9, 10, 11)を省いたものになります。

                A列: 1 2 3 4 5
                B列: 6 7 8 9 10
                C列:11 12 13 14 15

                クエリとしては:haed_cntに3を入れるのは前回と同じで、そのクエリに条件「OR S3.row_id <> S1.row_id」を追加したものになります。
                実行前にSeatsからSeats2を作っておきましょう。列名をいれるRow_ID列を追加作成し、その値'A','B','C'をseat番号を割り算してそれぞれのアスキーキャラクタを生成するascii_char関数で生成しています。

                create table Seats2(seat int,Row_ID char(2), status char(2));
                insert into Seats2 select seat,ascii_char(65+(seat-1)/5),status from Seats;
                commit;

                SELECT S1.seat AS start_seat, '〜' , S2.seat AS end_seat
                FROM Seats2 S1, Seats2 S2
                WHERE S2.seat = S1.seat + (3 -1) --始点と終点を決める
                AND NOT EXISTS
                (SELECT *
                FROM Seats2 S3
                WHERE S3.seat BETWEEN S1.seat AND S2.seat
                AND ( S3.status <> '空'
                OR S3.row_id <> S1.row_id));

                START_SEAT CONSTANT END_SEAT
                ============ ======== ============
                3 〜 5
                7 〜 9
                8 〜 10

                さて残念ながら、このページのwindow関数で書き換えたSQL1,2ともにFirebirdでは動作しません。これは「名前つきウインドウ(named windows)」がFirebird 3.0は未サポートのためです。(4.0にて実装予定)そのため「 window W1 as (partition by row_id order by seat)」のようにW1を扱うことができません。

                Window Functions

                window関数を使わないSQL1,2は動作します。

                ROW_ID START_SEAT END_SEAT
                ====== ============ =====================
                A 3 5
                B 7 9
                B 8 10

                JUGEMテーマ:コンピュータ



                | meijik | Firebird/InterBase | 08:47 | comments(0) | trackbacks(0) | - | - |
                Firebirdの分析関数の衝撃(7) 「3人なんですけど座れますか?」(行の折り返しを考慮しない)
                0
                  本エントリはFirebird Advent Calendar 2018 の六日目です。今年も参加者募集!

                  Firebirdの分析関数の衝撃(7) 「3人なんですけど座れますか?」(行の折り返しを考慮しない)

                  1. 「3人なんですけど座れますか?」その1:行の折り返しを考慮しない


                  まずミックさんの『SQLで数列を扱う』で提示されているSQL「人数分の空席を探す その1:行の折り返しを考慮しない」では、バインド変数(プレースホルダ) :head_cntが利用されています。Firebirdでも2.1以降でユーザコンテキスト変数があるので、それを使えばエミュレートできますが、ここは素直に即値の3を使います。(3以外の値を汎用的に利用したい場合はユーザコンテキスト変数を使ってください)

                  SELECT S1.seat AS start_seat, '〜' , S2.seat AS end_seat
                  FROM Seats S1, Seats S2
                  WHERE S2.seat = S1.seat + (3 -1) --始点と終点を決める
                  AND NOT EXISTS
                  (SELECT *
                  FROM Seats S3
                  WHERE S3.seat BETWEEN S1.seat AND S2.seat
                  AND S3.status <> '空' );

                  次に言及だけされている「PostgreSQL8.4では文法エラー」のものは動きません。
                  これは先に説明したフレーム句が未サポートのためです。

                  テーブルとデータはダウンロードできる形式のものは使えないし、FirebirdではCREATE TABLE ... AS SELECT....
                  が使えない
                  ので、普通に作成します。

                  create table Seats(seat int,status char(2));
                  insert into Seats values(1,'占');
                  insert into Seats values(2,'占');
                  insert into Seats values(3,'空');
                  insert into Seats values(4,'空');
                  insert into Seats values(5,'空');
                  insert into Seats values(6,'占');
                  insert into Seats values(7,'空');
                  insert into Seats values(8,'空');
                  insert into Seats values(9,'空');
                  insert into Seats values(10,'空');
                  insert into Seats values(11,'空');
                  insert into Seats values(12,'占');
                  insert into Seats values(13,'占');
                  insert into Seats values(14,'空');
                  insert into Seats values(15,'空');

                  これで確認すると、掲載されているWindow関数版、非Window関数版のクエリとも
                  PostgreSQL 8.4レベルのものは全部実行できます。結果はこんな感じです。

                  SEATSTART SEATEND
                  ============ ============
                  3 5
                  7 9
                  8 10
                  9 11

                  JUGEMテーマ:コンピュータ



                  | meijik | Firebird/InterBase | 22:24 | comments(0) | trackbacks(0) | - | - |
                  PostgreSQL 11 on Windows でPostGIS !
                  0
                    [PostgreSQL 11 on Windows でPostGIS !]

                    本エントリはRDBMS-GIS Advent Calendar 2018の六日目です。

                    PostGISは動作確認用にLinuxでいろいろ動作させてきましたが、最近Window関数の評価用にWindows環境を作成し、
                    そこでは簡単に設定できるため、メモとして本件を残しておきます。

                    1.Windows版PostgreSQL 11のインストール
                     EDBのダウンロードサイトからPostgreSQL Version 11.1 (Windows x86-64)をダウンロードします。
                     exe形式のインストーラになっているので、そのままインストールします。気にする部分はロケールはCというところでしょうか。

                    2.PostGISのインストール

                     実は1.のインストールの延長で追加機能をインストールできます。そこでPostGISを追加してください。現在はPostGIS 2.5がインストールされます。

                    3.PostGISの有効化
                     SQL SHELL(psql)で以下のコマンドを実行します。元ネタはここ

                    七つのEXTENSIONがあります。必要なものだけ入れればいいのですが、また開発環境なので、全部入れちゃいました :)

                    -- Enable PostGIS (includes raster)
                    CREATE EXTENSION postgis;
                    -- Enable Topology
                    CREATE EXTENSION postgis_topology;
                    -- Enable PostGIS Advanced 3D
                    -- and other geoprocessing algorithms
                    -- sfcgal not available with all distributions
                    CREATE EXTENSION postgis_sfcgal;
                    -- fuzzy matching needed for Tiger
                    CREATE EXTENSION fuzzystrmatch;
                    -- rule based standardizer
                    CREATE EXTENSION address_standardizer;
                    -- example rule data set
                    CREATE EXTENSION address_standardizer_data_us;
                    -- Enable US Tiger Geocoder
                    CREATE EXTENSION postgis_tiger_geocoder;

                    4.お試し

                     元ネタのページにあるようにこんなDDL, DMLが打てるようになります。

                    -- Create table with spatial column
                    CREATE TABLE mytable (
                    id SERIAL PRIMARY KEY,
                    geom GEOMETRY(Point, 26910),
                    name VARCHAR(128)
                    );

                    -- Add a spatial index
                    CREATE INDEX mytable_gix
                    ON mytable
                    USING GIST (geom);

                    -- Add a point
                    INSERT INTO mytable (geom) VALUES (
                    ST_GeomFromText('POINT(0 0)', 26910)
                    );

                    -- Query for nearby points
                    SELECT id, name
                    FROM mytable
                    WHERE ST_DWithin(
                    geom,
                    ST_GeomFromText('POINT(0 0)', 26910),
                    1000
                    );

                    5.そのあと
                     こういうのをごにょごにょすると楽しそう。また書籍も(英語版なら)いくつか出てます!

                    PostGIS(地理情報システムを実現するための拡張モジュール)



                    PostGIS データの格納と表示(Let's Postgres)



                    6.ちなみにMySQLは

                     5.7以降本体に取り込まれていますので、どのようなパッケージでも、インストールすれば使えます。

                    明日は@sakaikさんにバトンが戻ります。

                    JUGEMテーマ:コンピュータ



                    | meijik | PostgreSQL | 02:27 | comments(0) | trackbacks(0) | - | - |
                    Firebirdの分析関数の衝撃(6) 移動累計
                    0
                      本エントリはFirebird Advent Calendar 2018 の四日目です。今年も参加者募集!

                      5. 移動累計を求める
                      まず「PostgreSQL8.4では文法エラー」のものは動きません。これは先に説明したフレーム句が未サポートのためです。

                      Window Functions

                      「window関数で書き換えたSQLその1」は動きます。「window関数で書き換えたSQLその2」は動きません。
                      これはFirebird 3.0では名前つきのフレーム(Named Frame)が未サポートのためです。

                      「window関数で書き換えたSQL3」はLagの第三引数のキャストをなくせば動作します。
                      select prc_date,prc_amt,
                      case when count(*) over(order by prc_date) >= 3
                      then runSum - Lag(runSum,3,0) over(order by prc_date)
                      end as mvg_sum
                      from (select prc_date,prc_amt,
                      sum(prc_amt) over(order by prc_date) as runSum
                      from Accounts) a
                      order by prc_date;

                      「相関サブクエリを使うSQL1」は動作します。
                      「相関サブクエリを使うSQL2」は、行の制限(Limited Fetch)にlimitではなく、SQL標準のFETCH FIRST n ROWS ONLYを使えば動作します。

                      select prc_date,prc_amt,
                      (select sum(c.prc_amt)
                      from (select prc_amt
                      from Accounts b
                      where b.prc_date <= a.prc_date
                      order by b.prc_date desc fetch first 3 rows only) c
                      having count(*) = 3) as mvg_sum
                      from Accounts a
                      order by prc_date;

                      JUGEMテーマ:コンピュータ



                      | meijik | Firebird/InterBase | 00:04 | comments(0) | trackbacks(0) | - | - |
                        12345
                      6789101112
                      13141516171819
                      20212223242526
                      2728293031  
                      << January 2019 >>
                      + RECOMMEND
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 (JUGEMレビュー »)

                      100人のうちの一人としてミックさんの本を推薦しています。
                      + RECOMMEND
                      MySQL 5.1 Plugin Development
                      MySQL 5.1 Plugin Development (JUGEMレビュー »)
                      Andrew Hutchings,Sergei Golubchik
                      MySQL 5.1 のプラグインを作るならこれ!
                      + RECOMMEND
                      AWKを256倍使うための本 (Ascii 256倍)
                      AWKを256倍使うための本 (Ascii 256倍) (JUGEMレビュー »)
                      志村 拓,鷲北 賢,西村 克信
                      ここにきてまさかの復刊。15〜16年前の本ですが、いまでも十分役立ちますよ!!
                      + RECOMMEND
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION) (JUGEMレビュー »)
                      松信 嘉範
                      Linux-DB システム構築の新スタンダード。DB Magazine人気連載、待望の書籍化です!!
                      + RECOMMEND
                      + RECOMMEND
                      超・極める!MySQL
                      超・極める!MySQL (JUGEMレビュー »)
                      坂井 恵,志村 和彦,ひろせ まさあき,松信 嘉範
                      内容は少々古くなりましたが、内部説明があり、いろいろ面白いです。
                      + RECOMMEND
                      The Root of .NET Framework
                      The Root of .NET Framework (JUGEMレビュー »)
                      荒井 省三
                      .NETの根っこをつかむ、か?
                      + RECOMMEND
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド (JUGEMレビュー »)
                      奥野 幹也
                      これまでにない構築、そして構築後のMySQLのための本。
                      + RECOMMEND
                      Database Management Systems
                      Database Management Systems (JUGEMレビュー »)
                      Raghu Ramakrishnan,Johannes Gehrke
                      ミックさん連載の参考書籍です。
                      + RECOMMEND
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series)
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series) (JUGEMレビュー »)
                      W. Richard Stevens,Stephen A. Rago
                      必読! といいつつ私が読んだのは初版の日本語訳です。差分はチェックしないといけませんね。
                      + RECOMMEND
                      + RECOMMEND
                      + RECOMMEND
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE (JUGEMレビュー »)

                      DELL SX260の換装用に購入。今はコチラのほうが安いですね。
                      + RECOMMEND
                      情熱プログラマー ソフトウェア開発者の幸せな生き方
                      情熱プログラマー ソフトウェア開発者の幸せな生き方 (JUGEMレビュー »)
                      Chad Fowler
                      OSC2010神戸に出展されたジュンク堂で買いました。
                      + RECOMMEND
                      Software Design 総集編 【2000~2009】(DVD付)
                      Software Design 総集編 【2000~2009】(DVD付) (JUGEMレビュー »)

                      メガトン級の過去記事。売り切れる前にお店に急げ!
                      + RECOMMEND
                      + RECOMMEND
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2 (JUGEMレビュー »)

                      Aspire 1410 HDD換装後、昔のHDDはこれにいれます。
                      + RECOMMEND
                      + RECOMMEND
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22 (JUGEMレビュー »)

                      色違い黒(他に青と白があります): メモリは最大4GBとあるが、がんばれば8GBいけるらしい。
                      + RECOMMEND
                      Firebird 徹底入門
                      Firebird 徹底入門 (JUGEMレビュー »)
                      木村 明治,はやし つとむ,坂井 恵
                      Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
                      + SELECTED ENTRIES
                      + RECENT COMMENTS
                      • 2019年の木村明治
                        田中尚 (01/08)
                      • 使い慣れたSQLに潜む実装依存: Firebirdの場合(6) 文字列との結合演算子
                        noname (12/10)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 2015年版 InterBaseの歩み
                        nakagami (12/06)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        meijik (11/22)
                      • 分散DB本読書会第46回メモ「STOP AFTER 10」
                        masudahidehiko (09/01)
                      • Windows上でのMySQLビルド方法
                        kinoyasu (03/31)
                      • 気軽に新しいMySQLを試してみる: MySQL Sandboxのススメ
                        MeijiK (09/19)
                      • 伝わらない曲シリーズ: 川島恵「ミスター不思議」
                        96 (07/05)
                      + RECENT TRACKBACK
                      + CATEGORIES
                      + ARCHIVES
                      + MOBILE
                      qrcode
                      + LINKS
                      + PROFILE