条件をわけるDECODEの使い方 DECODEの構文 --DECODEで条件をわけてSELECTする SELECT DECODE(列名, 値1, 結果1, 値2, 結果2, 結果3) FROM table1; 「DECODE」では、指定した列の値によって異なる結果を返すことができます。
条件をわけるDECODEの使い方 DECODEの構文 --DECODEで条件をわけてSELECTする SELECT DECODE(列名, 値1, 結果1, 値2, 結果2, 結果3) FROM table1; 「DECODE」では、指定した列の値によって異なる結果を返すことができます。
こんにちは、Development Teamの三宅です。 先日、社内(AI事業本部内)でSQL研修の講師を担当したので、今回はその内容について簡単に共有したいと思います。 はじめに 例年、AI事業本部では、新卒エンジニアの育成のためにソフトウェアエンジニア研修を行っております。今年はフルリモートでの実施となりました。研修期間は2週間ほどで、内容は前半が講義、後半が実践(チーム開発)でした。私が担当したのは、講義パートの一部であるSQL研修です。SQLやRDBにあまり慣れていない人でも、できるだけ体系的な学びが得られるようにすることを目標に、様々な資料をまとめて提供する方針で準備しました。結果的には、ハンズオン込みで4時間ほどのやや長い講義となりましたが、勉強になったという声も頂けたのでやって良かったと思っています。 研修資料 研修内容 SQL研修の内容は、基本的には大学のデータベース講義で
SQLのチューニング方法 昔Qiitaで書いたものをzennにうつして、若干の修正、追加をしてみました。 ORACLEでの経験を元に書いていますがコストベースのリレーショナルデータべースなら大体共通の考え方だと思うので他にも使えると思います。 SQLのチューニングといえば比較的容易に済むインデックスをとりあえず作成する。といった対応を取られがちですが、数万レコード程度でのデータ量ではあまり効き目がなく(自分の経験則)、どちらかといえば、結合順が大幅に狂ってたりすることが原因のことが多かったりします。よって本当にインデックスがないことが原因なのか?を熟考する必要があります。(例えばID以外のフラグとかコードに単項目indexを貼ってるのもみたことがあります。怖いけど実話) また、インデックスを作りすぎるとオプティマイザが狂いやすくなって他のSQLにも悪影響を及ぼしたりするので結構熟慮して追加
こんにちは。sanamekoです! 突然ですが、INSERT文を書くのってすごく大変ですよね!(個人の感想です。) 「カラム名1,カラム名2,・・・カラム名N」の後に「値1,値2,・・・値N」と書くのが苦手で、最終的にカラムがずれてたり、カラム数足りなかったりってこと、よくあります! 手でガリガリ書かずに、うまいことツールを使ってラクに書けないものか・・・ヽ(ˇд ˇ;)ノ ということで、「ExcelでできるだけスマートにINSERT文を作成する方法」を考えたいと思います! 「スマート」とは ExcelでINSERT文を作成するという話はよく聞くので、今更感は否めませんが、今回は「スマート」をテーマに、下記のことを念頭において作ってみます! 誰が見ても分かりやすい マクロやVBAは使わない あちこちに数式(関数)を散りばめたりせず、最小限のセルに抑える 数式の中身を見なくても、何をやってい
「migrate時の実行SQLがみれればいいのになー」とか思ってたらたまたま別の問題の原因を調べているときに↓の記事に行き着いた。 2年前のエントリで若干古い感は否めないが「こんな便利な機能が!」となったのでメモ代わりに書いておく。 Laravelでプライマリキーを使った1:1関連のテーブル分割で自動採番をしないようにする 最後に migrate の SQL を確認したいときは pretend オプションをつけると確認できます。 上記 2 テーブルのマイグレート SQL はこんな感じです。 $php artisan migrate --pretend CreateUsersTable: create table `users` (`id` int unsigned not null auto_increment primary key, `email` varchar(255) not n
SQL Formatter helps to format SQL code data and it helps the developer easy to read the SQL. This tool helps uses to beautify large SELECT statements and make it easy to read. SQL formatting is a tedious task, which can be handled by an SQL formatter. SQL formatter is a utility that converts the unreadable SQL code into a readable format. It preserves all the details of the original, just in a dif
Query Builder を使った時にどんなSQLになるのか知りたい [2020-07-30 追記] 最新のLaravel 7.x でもこの方法が使えることを確認しました。 [/2020-07-30 追記] ここでは開発中に簡単に確かめる方法を載せています。 じっくりとログに出力してSQL調整したいとかだったらこちらが参考になると思います。 Laravel5でSQLログを取る laravel5.2 実行SQLのログを取る - web開発メモ 答え: toSql() を使う APIドキュメントにありました。QueryBuilder::toSql() 以下はそのやり方です $users = DB::table('users') ->where('status', '<>', 1) ->get();
『2014-07-26 08:47:13』のようにdatetime型でカラムに格納されている値を日付で抽出(SELECT)した時の速度を比較してみました。 サンプルテーブルは100,000レコード 抽出するdatetime型のカラムにはインデックスを張っています。 実行時間は10回平均です。 結果はほほ想像通りですが、参考として 同じ結果でもSQL文にはいくつもの書き方があり、書き方によって速度が20倍も違います。 [参考記事] 日付型のフォーマットにスラッシュを使ってはいけません(文字コードによって値が変わる) datetime型を『2014-07-26』のように単純に比較すると『00:00:00』が補完されます。 `sample_time` = '2014-07-26' ↓と同じ扱い `sample_time` = '2014-07-26 00:00:00' 以下、早い順です。 日時を
テーブル内のデータをINSERT文付きでエクスポートする手順です。 データ移行用のデータ抽出などで利用できるかと。 SSMSの左ペインのオブジェクトエクスプローラのデータベース名で右クリック、「タスク」を選択し、「スクリプト生成」を選びます。 今回は特定のテーブルのデータのみ抽出したいため、「特定のデータベース オブジェクトの選択」を選び、エクスポートしたいテーブル名を選択。 「詳細設定」を押下します。 オプションの「全般」にある「スクリプトを作成するデータの種類」で「データのみ」を選択。 「次へ」を選択し、次画面で「完了」を押下します。 指定したフォルダにINSERT文付きのテーブルデータがエクスポートされます。 「スクリプトを作成するデータの種類」の際に「スキーマとデータ」を選択すれば、テーブル作成や制約付きでエクスポートすることができますし、「統計のスクリプトを作成」で「統計とヒスト
普段は Linux 系システムがメインで、SQLServerは確認用SQLを走らせる程度。 管理系作業はほぼいじらないので、忘れないようにメモ。 SQLServer Management Studio を起動 「データベース」を右クリックして、「新しいデータベース」を作成 「データベース」を右クリックして、「データベースの復元」をクリック 「全般」タブの復元先→復元先データベースに上で新規作成したデータベースを選択 「 復元用のソース」で「デバイスから」をチェックし、完全バックアップファイルを指定 [オプション]タブで「既存のデータベースを上書きする」をチェック [OK] 完了 ■注意1 「オプション」タブの「既存のデータベースを上書きする」のチェックを行いわないと バックアップ セットは、既存のデータベース ‘%ls’ 以外のデータ ベースのバックアップを保持しています。 といったエラー
対象ソフトウェア:Windows XP/Windows Vista/Windows 7/Windows 8/Windows 8.1/Windows Server 2003/Windows Server 2008/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2、SQL Server 2005/SQL Server 2008/SQL Server 2008 R2/SQL Server 2012/SQL Server 2014 解説 マイクロソフトのデータベースソフトウェア「SQL Server」は、Windows OSと同様、機能や性能の向上のためにバージョンアップが繰り返されてきた。現在サポート中の(ライフサイクルが終わっていない)バージョンだけでも、次の5種類が存在する。 SQL Server 2005(内
新しいLaravelのバージョンに合わせてアップデートした記事を書きました。 Laravel 10.15.0 以降を使用している場合はご参考にどうぞ。 https://qiita.com/ucan-lab/items/ef95805818b843ce5bce LaravelではEloquentやQueryBuilderを介してデータベースとやり取りしますが、実際に実行されるSQLを確認する時に使用する方法を3つご紹介します。 環境 PHP 8.0 MySQL 8.0.17 Laravel 8.23.1 1. QueryBuilderをSQLに変換したい時 クエリビルダには、 toSql() メソッドを呼び出すことでSQL文を取得できます。プレースホルダの値は getBindings() で取得できます。
社内勉強会資料 追記: 2013-10-31 ついったで指摘( https://twitter.com/akuraru/status/395822183777202176 )を受けたので入れ子集合のノード追加の説明の所を修正しました。
利用シーン MySQL(UTF8のDB)からテーブル単位でCSV出力して、Excelで編集し再度取り込む。 テーブルを選択する。 「メニュー>Tools>Export grid rows ..」を選択する。 Encodingを「ANSI」とする。 Row selectionを「Complete」とする。 「OK」を押してエクスポートする。 ~ Excel等でCSVを編集 取り込むCSVの文字コードをUTF-8とする。※任意のエディタやツールで 「メニュー>Tools>Import CSV file ..」を選択する。 Control charactersのFields terminated byを「,」にする。 Methodを「Client parses file contents」にする。 「Import!」を押してインポートする。 補足 Handling of duplicate ro
開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQL、Oracle、SQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 DB2Use The
普段、SQLを書いていないとよく忘れるので備忘録。 escape句を利用することにより、アンダースコア(_)やパーセント(%)を検索文字列として指定できる。 SQL> select * from TBLNAME; ID STR ---------- ---------- 1 KONY 2 _KONY ←アンダースコアを含む文字列 SQL> select * from TBLNAME where STR like '_%'; ID STR ---------- ---------- 1 KONY ←アンダースコアは任意の1文字のためこれもヒットする。 2 _KONY SQL> select * from TBLNAME where STR like '#_%' escape '#'; ID STR ---------- ---------- 2 _KONY ←エスケープすることに
テーブルを作成/削除するSQL。 ・表を作成する(表領域を指定しない場合はデフォルト表領域に作成されます。)
想定読者 マテリアライズド・ビューという言葉を聞いたことはあるがその意味や仕組みを知らない方 集計処理を実現する一つの手段としてマテリアライズド・ビューを検討している方 マテリアライズド・ビューの実装にあたり必要な知識・注意点を把握したい方 前提 以降の記載は以下のDBMSの使用を前提としています。 Oracle Database 10g, 11g, 12c 集計処理という敵とマテリアライズド・ビューという武器 システム開発を進める中で、何らかの集計処理が必要になることが多々あると思います。 例えば、売上高の集計処理(地域ごと・店舗ごと・期間ごとなど)や、特定の条件を満たす顧客の集計処理(商品名◯×を購入した顧客の合計数など)などです。 SQLで集計処理を実装すればよいのですが、実際に実装してみると以下のような問題が生じることがあります。 集計処理が遅い(複数テーブルの結合などに起因する処
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く