sql

  1. · sql デッドロック

    Coffmanの循環待機条件

    お仕事で、書き込みの順序性を保つのにコードマスターにロックキーを用意して行ロック(select for update)で実現している方式に出会いました。
    なぜにコードマスターで、思わないこともないのですが、そういうものなのです。
    ロックキーは1テーブルごとへの書き込みを表現して…

  2. えくせるでてすとでーたをつくるその1
    · excel sql vba

    えくせるでてすとでーたをつくるその1

    プロジェクトごとというか、会社さんというか、開発時のテストデータの作り方はいろいろありますね。

    プログラムの仕様や、組んだSQL(これから組むであろう)の特性などから、テストケースおこして、それにあわせて、テストデータをつくるというのが一般的な流れかなとは思います。


    エクセルで…

  3. · IN sql

    sql IN句の数制限

    oracleのIN句の中に記述できる要素は1000個ぽいですね。 で、怠惰の僕は1000を越える場合どうすればよいかと考えたわけです。 単純に1000個限界まで書いて、もうひとつIN句を用意してその続きを書いて、ORでつなげればいいんじゃないかと。
    select * …

  4. · sql ソート 仕事が遅い

    白状しますと、昇順と降順の意味をおぼえていません。

    はい、白状しますと、昇順と降順の意味をおぼえていません。
    じゃ、どうやってSQLのソート順を決定するのさ、といわれますと、SQLを書いて実行した結果で、決めています。と、いうとどん引きされそうですね。。。

    お仕事では、ディスプレイの横に、意味とデータを書いて貼ったりして、当座を…

  5. · mysql sql ストアド

    EZSPLIT

    SQLです。
    mysqlのファンクションです。
    カンマ区切りの文字列中の何番目の文字列を取り出す目的で作成しました。
    3〜4週間前に作成したと思うのですが、いまいちその動機を思い出せないでいます。
    やばいですね....
    関数名としてEZSPLITというのもいまいちだなーと思いつ…

  6. · sql 集合演算

    LEFT -RIGHT - 外部結合で集合演算だそうです。

    SQLです。 やはりSQLは苦手です。ジョインとかインナージョインとかアウタージョインとかいうフレーズが聞こえると身構えてしまいます。...

    差集合を求めるSQLです。
    外部結合を使って差をもとめます。
    LEFT側が大きい集合を想定しています。
    LEFT - RIGHT = …

  7. mysqlでストアドプロシージャ その6 - プロシージャ内から別のプロシージャを呼ぶ

    mysqlでストアドプロシージャ その6 です。

    プロシージャ内から別のプロシージャを呼んでみます。

    ついでにトランザクションに参加してるのか調べてみました。

    参考
    プログラマメモ2: mysqlでストアドプロシージャ その4 - トランザクション
    結論としてトランザクションに含…

  8. · mysql sql ストアド

    mysqlでストアドプロシージャ その5 - ラベルを使ってcontinue,breakっぽく

    mysqlでストアドプロシージャ その5です。

    ループでラベル使うとcontinue,breakっぽく使えますねと。

    17.2.10. フローコントロール・コンストラクト3 トリガーおよびストアド・プロシージャ なんとなく下記のような感じで
    DROP PROCEDURE IF E…

  9. mysqlでストアドプロシージャ その4 - トランザクション

    mysqlでストアドプロシージャ その4 です。
    トランザクションの実験です。

    どうもDBのエンジンによってトランザクションが有効無効がある感じですね。

    参考
    ストアドプロシージャでトランザクション処理をするにはどうすれば良いのでMySQL ストアドプロシージャー で 失敗時の…

  10. · mysql sql ストアド

    mysqlでストアドプロシージャ その3 - ROW_COUNT()

    mysqlでストアドプロシージャ その3です。
     ROW_COUNT()を使うのが今回の趣旨です。
    ROW_COUNTは
    先行するステートメントによって更新、インサート、または削除された行の数を戻します。
    ってことらしい
    参考
    [MySQL]複数行を追加するためのinsert…

  11. · mysql sql ストアド

    mysqlでストアドプロシージャ その2

    mysqlでストアドです。
    oracleほどではないですが、使えて便利そうな予感です。

    参考
    17.2.9. カーソルInsert query doesn't support where keyword*
    ストアドプロシージャで実験

    簡単なシナリオ

    aテーブルに入っている…

  12. · mysql sql ストアド

    mysqlでストアドプロシージャ

    mysqlでストアドです。
    まずストアドプロシージャのリストを表示は以下で
    show procedure status;
    参考
    List of Stored Procedures/Functions Mysql Command Line - Stack OverflowMyS…

  13. · mysql sql

    最後に登録されたidを取得します。えーと、auto_incrementされた値をとることができるようです。

    mysqlです。最後に登録されたidを取得します。えーと、auto_incrementされた値をとることができるようです。

    select last_insert_id();

    参考
    auto_incrementでinsertされたレコードを取得するには?
    INSERT ~~ ON …

  14. · merge mysql oracle sql

    oracleでいうところのmergeのようなものmysql

    oracleでいうところのmergeと似たようなものがmysqlにないかなーと
    ON DUPLICATE KEY UPDATEというのを使えばいいらしい。merge intoよりは使いづらいけど。キーを指定しなおすところがめんどいです。
    参考
    ON DUPLICATE KEY …

  15. · h2database sql

    H2 - afterカラムして追加はできないような....BEFOREしかない

    H2です。
    dropしてcreateしてたテーブルですが、データが入ってしまったので、alterしてカラム追加です。

    alter_table_add - SQL Grammar

    afterカラムして追加はできないような....BEFOREしかないような。

    一番最後に追加したい場合は普通…

  16. · h2database sql

    H2で複合キー

    SQL Grammar

    H2で複合キーです。

    drop table aaa;
    create table aaa
    (
    table_name VARCHAR2(100) ,
    a1 VARCHAR2(100),
    a2 VARCHAR2(100),
    a3 VARCHAR2(100),
    a4 VARCHA…

  17. · db sql 排他

    楽観ハイタ

    DBの楽観排他(ロック)の方法についてです。
    まず「楽観的ロックとは」、ですが、とりあえず、がちがちにロックしないという感じでしょうか。
    「先に更新したもの勝ち」ぐらいの理解でいいのかな。対称となる悲観的ロックは、ロックとってる間は誰もさわらせないぜぐらいの理解でよろしいか。

    で、つ…

  18. · oracle sql

    おらくる VSIZE は内部でのサイズを返します。

    oracleです。VSIZEはデータベース内部でのサイズを返してくれるそうです。
    で、実験です。
    下記のようなテーブルを作成します。
    create table bbb
    (
    a1 NCHAR(1),
    a2 NVARCHAR2(1),
    a3 CHAR(1 BYTE),
    a4 CHAR(1 CHAR…

  19. [oracle]varcharのデータ型にバイナリを入れることができるか。
    · jdbc oracle sql

    [oracle]varcharのデータ型にバイナリを入れることができるか。

    Oracleです。テーブルのデータ型で悩み中です。どういう悩みかというと、char,varchar2のデータ型にバイナリのデータ(ようするに生のデータ)を入るのか、というものです。本来は、そういう用途だと、BLOBとかRAWの型だというのは承知のうえで。

    で、入れてそれを使えるの…

  20. · sql

    えーと、一行で複数のテーブルのカウントを返すSQL

    SQLです。SQLは苦手です。
    一行で複数のテーブルのカウントを返すSQLです。
    見せてもらって、へーと、思ったのでメモ。

    実験はH2で行ってます。

    まず、テーブル作成
    CREATE TABLE A ( id VARCHAR (10))
    CREATE TABLE B ( id VARCHA…