稚内北星学園短期大学 経営情報学科 丸山不二夫 1994年 8月 5日 Contents 序章 リレーショナル・データベース概観 リレーショナル・データベースとは データベースは情報をどのように組織しているか 情報のいれものとしての「テーブル」 リレーショナルとは すべての関係は、テーブルである 関係演算 リレーショナル・データベース上の標準言語SQL 本書でのSQLの扱い方の特徴 Select selectの基本形 テーブルから指定した項目を抜き出す select 見出しの変更の2つの方法 行内への文字列の表示 項目リスト中の式 from 句 テーブルの積 where句 検索条件の指定 論理演算 リスト null値 文字列の比較 likeとワイルドカード ジョイン テーブルの結合 項目名の修飾 三つのテーブルのジョイン テーブル名のエイリアス(別名) 自己自身とのジョイン サブ・クェリー
今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たい SQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ
このサイトでは、SQL を高速化するためのちょっとしたパフォーマンス・チューニングの技術を紹介します。と言っても、『プログラマのためのSQL 第2版』の受け売りがほとんどなので、この本を読んでいただければ、本稿を読む必要はありません。 最初に、パフォーマンス・チューニングに関する全体の方針を述べておくと、それはボトルネック(一番遅いところ)を改善することです。当たり前ですが、既に十分速い処理をもっと速くしたところで、システム全体のパフォーマンスには影響しません。従って「処理が遅い」と感じたら、最初にすることは、SQL やアプリの改修ではなく、「どこが遅いのか」を調査することです。いきなりあてずっぽうで改善をはじめても効果は出ません。医者が患者を診るとき最初にすることが検査であるのと同じです。病因が何であるかを突き止めてからでないと、正しい処方はできないのです。 その基本を承知していただいた
Calendar for PostgreSQL | Advent Calendar 2021 - Qiita の10日目の記事です。 思い当たる節がある人は、今の見積もりの数倍の時間と予算を確保してからキックオフして欲しい。 多分、そのまま走ると誰か倒れるから。。。 で終わりにするわけにはいかないので、いくつか書きます。 もちろん、SQLがDBMSによって「方言」があるので、使える構文、関数名が違うってのは当然あるのですが、それ以外のところを中心に。 PostgreSQLのサーバーサイドエンコーディングはShiftJISをサポートしていない 今どき、新規で立てるデータベースはUTF8を選ぶよねーキャハハ、と思っても、何世代もバージョンアップしてきたOracleや、塩漬けされたOracleなんかは、ShiftJISを使っているところも多いのではないでしょうか。 自分で文字コードマッピングの処
SQLインジェクションは古典的な攻撃手法でありながら、今なお多くの被害が報告されている。機密情報や個人情報を扱うWebサイトの担当者は、SQLインジェクションに対して適切な対策を講じる責任を負っている。本記事では、SQLインジェクションに関連する被害事例を紹介しながら、その対策について解説する。 SQLインジェクションによる被害とは? デジタル全盛の時代では、あらゆる情報システムにおいてデータベースが利用されている。会員制サイトやECサイト、投稿機能を有する、さまざまなWebサービスに至るまで、多くのWebサイトに組み込まれている。例えば、ECサイトであれば顧客情報、商品情報、注文情報といった機密性が高い情報がデータベースに格納されている。Webサイト上のデータベースの検索、読み出し、書き出しは多くの場合、SQLで記述されたプログラムで処理される。 SQLインジェクションとは、このSQLと
起きた事 本番環境のデータ調査の依頼を受けた。その調査を受ける前に、それとは別で不要データを本番DBから削除する作業をMySQL Workbenchで行っていた。 本番DBで、データ調査を行う際にMySQL WorkbenchでSQLのselectと間違えてdeleteを実行してしまい、Tableを1つ丸ごとDeleteしてしまった。 ON DELETE CASCADEが親テーブルに設定されてしまっていたため、さらに4つのTable dataが芋づる式に消えてしまった。 ON DELETE CASCADEの説明としては、この記事がわかりやすかったです。 https://www.dbonline.jp/mysql/table/index11.html テーブルの構成(テーブル名などは例として挙げていて、実際のものとは多少異なります) 正しい設定 usersテーブルでuserを削除した時に、そ
IT業界において数十年もの間、大きな仕様変更がなく主流の技術であり続けているのがリレーショナルデータベースとSQLです。『SQL 第2版 ゼロからはじめるデータベース操作』の著者でデータベースエンジニアのミックさんは、SQLを学べば長く役立つものの、データベースの魅力はそれ自体の面白さだとおっしゃいます。今回、ミックさんにデータベースの役割や魅力、そしてSQLの学び方についてうかがいました。 いろいろなシステムを見ることができるのが面白い ――ミックさんは『SQL 第2版 ゼロからはじめるデータベース操作』のほかにも、翔泳社から多数出版されています。データベースとSQLの書籍が主ですが、普段はどういった仕事をされているのでしょうか。 ミック:私はSIerに勤めていて、システム開発というよりは、システム開発でトラブルが起きたとき支援を行なうチームに所属しています。パフォーマンスを高めることが
テキストなど非構造化データのデータベース機能とサーチエンジン機能を兼ね備えた分散リアルタイムデータベース「SenseiDB」が、オープンソースとして公開されています。 SenseiDBとは先生DBの意味らしく、「Sensei (先生) means teacher or professor in Japanese」と説明があり、ロゴにも「師」の文字が使われています。なぜ先生なのか、その意味について以下のように説明があるのですが…… This name indicates that the system can be used in place of Oracle database in many applications. この名前が示しているのは、このシステムが多くのアプリケーションにおいてOracleデータベースで使われているところで利用可能だということです。 TeacherやProfe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く