Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

2020/9/30追記 本記事は元々、「SQL記述者全員が理解すべきSELECT文の実行順序のお話」というタイトルで投稿しておりました。 しかし、知見のある方からのコメントと自分でも調べてみた結果、今回紹介している順序はあくまで論理的な処理順序であり、実行順序とは別物ということがわかりました。 誤った知識を布教してしまい申し訳ございません。 2020/9/30のタイミングで、本記事のタイトルを「SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話」に変更させていただきました。 はじめに 「SQLといえば、エンジニアが扱うスキル」と思われがちですが、最近はマーケターや営業など、非エンジニアの方もSQLを使って、自らデータを抽出し分析する方が増えてきています。 またエンジニアの方でも、ORM任せでなんとなく理解している状態の方もいるのではないでしょうか? 今回は、そんな方々にこそ
こんにちは、やっと花粉症がおさまってきたシステムエンジニアのリョータです。 今年もすでに4ヶ月目に突入し、新たなスタートを切った方も多いのではないでしょうか。 今回は、最新のレコードを取得するSQLについて、解説を3つほどご紹介したいと思います。 下記のSQL文は、私がSQLを仕事で使い始めてからつまずいたもので、初心に戻ってまとめようと思ったのがきっかけです。 3つともサブクエリを使ったSQLとなっています。是非、ご参考にしてみてください。 条件 下のSQLは、全社員の所属部署(staff_section)テーブルの最新を取るものです。 社員番号(staff_no)が社員のキーになり、開始日(start_date)は必ず入力されています。 所属期間はかぶらないものとします。 社員番号(staff_no)でレコードが絞れる(※)なら、社員番号にインデックスを張ると、コストが改善されます。
はじめまして。Souki.Tです。 SQLを書く上で、使いどころが難しいのがサブクエリです。何でもかんでもJOINして運用するのは格好わるい、サブクエリを使ったら何かカッコいい、結局サブクエリを使いすぎて訳の分からなくなり、作った自分でも手が出せなくなった経験は私だけではないはずです。今回はサブクエリを使う場面をパターンに分けて上手なつき合い方を考えてみたいと思います。 サブクエリとは何かということを説明するのは私には手に余るので誰か説明の上手な人に任せます。どこかにいい解説があったら教えてください。 サブクエリを使わない理由サブクエリの特徴を一言でいうと「重い」。ともかく重い。使い方を間違えたら劇的に重くなることはもちろんのこと、適切に使ったとしても重いものは重いです。普通にJOINで結合して解決するのであれば、使うべきではありません。 それでもサブクエリを使うパターンとはいえ、サブクエ
問題 データベースで都道府県を県コードで持っていたのですが、都道府県名にすることになりました。 データベースの県コードを都道府県名に変換するには? 答え こんな感じでどうでしょう。 update <対象のテーブル> set <対象のカラム> = case <対象のカラム> when 1 then '北海道' when 2 then '青森県' when 3 then '岩手県' when 4 then '宮城県' when 5 then '秋田県' when 6 then '山形県' when 7 then '福島県' when 8 then '茨城県' when 9 then '栃木県' when 10 then '群馬県' when 11 then '埼玉県' when 12 then '千葉県' when 13 then '東京都' when 14 then '神奈川県' when
更新のお知らせ 「その2」ができました。 「その1」を読んでいただいたあとに、こちらもご覧ください。 https://zenn.dev/maxima/articles/a23a9eda0cd3ae はじめに Hamee Advent Calendar 1日目ということで、実用的なSQL、バルクアップデートをご紹介したいと思います! バルクアップデートとは、1文のSQLで複数のレコードを一気に更新してしまうUPDATE文のことです。 バルクインサートはよく聞くけど、バルクアップデートは出来ないのかと疑問に思ったことはないですか? (バルクインサートについてそもそもご存じない方はこちらの記事がシンプルで分かりやすいかと思います) 結論から言いますと、バルクアップデートは可能です。しかし、バルクインサートほど気の利いた構文があるわけではありません。 これから何種類かご紹介しますが、ここに書かれて
検索をする際に、SQLServerでは正規表現を使うことはできません。 使い勝手は正規表現ほどではありませんが、似たようなものがありますので検証してみました。 まずは、テーブルを作成します。 CREATE TABLE TEXT_TEST ( [id] INT, [text] NVARCHAR(255) ) 今回検証に使うテストデータは以下となります。 INSERT INTO TEXT_TEST VALUES (1, N'123'), (2, N'abc'), (3, N'aBc'), (4, N'a c'), (5, N'A C'), (6, N'123'), (7, N'漢字a') (8, N'1bc') 照合順序に左右されたくないため、ここではCOLLATE句でJapanese_BIN2を指定しています。 半角英数字以外を含むレコードを抽出 SELECT * FROM TEXT_TES
職場でオンラインDDLのパターンをより勉強したほうがよいと感じたのでインプットしたことをQiitaにアウトプットしてみた。 以下のリポジトリで実践も合わせて行った。 記事の中で出てくるコードなどはこちらで参照することが可能。 https://github.com/d0riven/learning_online_ddl_pattern 今回はMySQLというDBMSに限定してパターンを紹介しているが、他のDBMSでも使えるパターンはいくつかあるはずなのでPostgreSQLやOracleを利用している人が読んでもためになるとは思う。 想定読者 MySQLを普段から触っている人 可用性の高さを求められるサービスを運用・開発している人 古くからあるシステムのリファクタリングのためにデータベースの足回りから手をつけていきたい人 オンラインDDLのやり方を知らない人・知っていても色々なパターンがある
引用は主に以下から。 [INF] SQL Server における自動拡張および自動圧縮の構成に関する注意事項 http://support.microsoft.com/kb/315512/ja SQL Server データベースのいっぱいになったトランザクション ログからの回復 http://support.microsoft.com/kb/873235/ja 1.自動拡張を行っている間、トランザクションが停止する。 ログを拡張する必要がある大規模なトランザクションを実行する場合、そのトランザクション ログに書き込む必要がある他のトランザクションも、拡張操作が完了するまで待機する必要があります。 これによりクエリタイムアウトも起きやすくなりそうです。 2.ファイルの断片化が招きやすくなり、パフォーマンスに影響が出る。 データ ファイルまたはログ ファイルのサイズ変更に起因する物理的な断片化
この記事はSilbird Advent Calendar 2017 8日目の記事となります。 弊社では、稼働中のサービスの永続化データ格納先としてAmazon RDS for SQL Serverを利用しています。 その中で経験したDB領域の拡張と縮小について、大きな2つのトラブル事例とその対応内容をご紹介しようと思います。 DB領域の拡張、縮小はサービスを一時的止める(メンテナンスに入れる)た状態でないとできないと思われがちですが、サービス稼働中のまま実行することができます。 [事例1] DB自動拡張中に応答停止 1つめはDBの自動拡張についてです。 DBの初期容量は、想定ユーザー数やアクセス数をもとにある程度余裕を持って見積もっていると思います。しかし、Webサービスの世界ではその見積もりどおりにユーザーが増えていくとは限りません。サービス運営者としては嬉しい悲鳴ですが、ユーザー数・滞
Basic support for relational databases: MySQL, SQL Server, PostgreSQL and others Data Editor SQL Editor Database schema editor DDL Basic ER Diagrams Basic charts Data export/import Task management Database maintenance tools All DBeaver Community featuresAdvanced securityAdvanced support for relational databasesConnection through ODBC driversNoSQL databases support: MongoDB, Cassandra, Redis, Couch
SELECT TOP 100 der.session_id as spid ,der.blocking_session_id as blk_spid ,datediff(s, der.start_time, GETDATE()) as elapsed_sec ,DB_NAME(der.database_id) AS db_name ,des.host_name ,des.program_name ,der.status -- Status of the request. (background / running / runnable / sleeping / suspended) ,dest.text as command_text ,REPLACE(REPLACE(REPLACE(SUBSTRING(dest.text, (der.statement_start_offset / 2)
CakePHP3でクリエビルダーを使わず生の SQL文を実行する方法を解説 CakePHP3で生の SQL文を実行する方法を解説 CakePHP3で直接 SQL文を実行する方法を解説します。 【参考サイト】CookBook データベースの基本 https://book.cakephp.org/3.0/ja/orm/database-basics.html CakePHP3において、直接 SQL文を実行する方法は、上記の CakePHP3の Cookbookにも書いてあるのですが、非常に簡単で、データベースにアクセスする方法としては基本形のようです。 ただ、CakePHP3のようなフレームワークを使う理由は、SQL文を作成しなくても簡単にデータベースにアクセスできるから、といったこともあるワケですが、より簡単にアクセスするには、クエリービルダーを利用します。 【参考サイト】CookBook
ポイントは下記の通りです。 X社(原告)はセキュリティ対策について特に指示はしていなかった 損害賠償について個別契約に定める契約金額の範囲内とする損害賠償責任制限があった 当初システムはカード決済を外部委託し直接カード情報を扱っていなかった X社が「カード会社毎の決済金額を知りたい」とY社に依頼をして、その結果カード情報をいったんDBに保存する仕様となった(2010年1月29日) X社からの問い合わせに対してY社は、カード情報を保持しない方式に変更することが可能で、そのほうが安全となり、費用は20万円程度である旨を伝えた(2010年9月27日)が、その後X社は改良の指示をしなかった 以下の脆弱性その他が認められた システム管理機能のIDとパスワードが admin/password であった 個人情報が記載されたお問い合わせログファイルの閲覧が可能(ディレクトリリスティングと意図しないファイ
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く