SQL とは何ですか?

構造化照会言語 (SQL) は、リレーショナルデータベースに情報を格納および処理するためのプログラミング言語です。リレーショナルデータベースは、情報を表形式で格納します。行と列は、さまざまなデータ属性と、データ値間のさまざまな関係を表します。SQL ステートメントを使用して、データベースから情報を格納、更新、削除、検索、および取得できます。また、SQL を使用して、データベースのパフォーマンスを維持したり、最適化したりすることもできます。

SQL が重要なのはなぜですか?

構造化照会言語 (SQL) は、あらゆるタイプのアプリケーションで頻繁に使用される一般的な照会言語です。SQL はさまざまなプログラミング言語と良好に統合できるため、データアナリストとデベロッパーは SQL を学び、使用しています。例えば、Java プログラミング言語に SQL クエリを埋め込んで、Oracle や MS SQL Server などの主要な SQL データベースシステムで高性能なデータ処理アプリケーションを構築できます。また、SQL はステートメントで一般的な英語のキーワードを使用するため、かなり簡単に習得できます

SQL の歴史

SQL は、リレーショナルデータモデルに基づいて 1970 年代に発明されました。当初は構造化英語照会言語 (SEQUEL) として知られていました。この用語は後に SQL に短縮されました。Oracle (旧称: Relational Software) は、商用 SQL リレーショナルデータベース管理システムを提供する最初のベンダーになりました。

SQL システムの構成要素にはどのようなものがありますか?

リレーショナルデータベース管理システムは、構造化照会言語 (SQL) を使用してデータを格納および管理します。システムは、相互に関連する複数のデータベーステーブルを格納します。MS SQL Server、MySQL、または MS Access は、リレーショナルデータベース管理システムの例です。このようなシステムの構成要素を次に示します。 

SQL テーブル

SQL テーブルは、リレーショナルデータベースの基本要素です。SQL データベーステーブルは、行と列で構成されます。データベースエンジニアは、データストレージの領域を最適化するために、複数のデータベーステーブル間の関係を作成します。

例えば、データベースエンジニアは、店舗内の製品の SQL テーブルを作成します。 

製品 ID

製品名

色 ID

0001

マットレス

色 1

0002

色 2

その後、データベースエンジニアは、色 ID を持つ色テーブルに製品テーブルをリンクします。

色 ID

色名

色 1

色 2

SQL ステートメント

SQL ステートメント、または SQL クエリは、リレーショナルデータベース管理システムが理解できる有効な命令です。ソフトウェアデベロッパーは、さまざまな SQL 言語要素を使用して SQL ステートメントを作成します。SQL 言語要素は、正しい SQL ステートメントを形成する識別子、変数、検索条件などのコンポーネントです。

例えば、次の SQL ステートメントは SQL INSERT コマンドを使用して、価格が 499 USDマットレスブランド A を、列名が brand_namecost である Mattress_table という名前のテーブルに格納します。

INSERT INTO Mattress_table (brand_name, cost)

VALUES(‘A’,’499’);

ストアドプロシージャ

ストアドプロシージャは、リレーショナルデータベースに格納されている 1 つ以上の SQL ステートメントをまとめたものです。ソフトウェアデベロッパーは、効率とパフォーマンスを改善するためにストアドプロシージャを使用します。例えば、異なるアプリケーションで同じ SQL ステートメントを記述する代わりに、売上テーブルを更新するためのストアドプロシージャを作成できます。 

SQL はどのように機能しますか?

構造化照会言語 (SQL) の実装には、データベースクエリを処理して結果を返すサーバーマシンが必要です。SQL プロセスは、いくつかのソフトウェアコンポーネントを通過します。これには次のコンポーネントが含まれます。 

パーサー

パーサーは、SQL ステートメントの一部の単語を特殊記号でトークン化、または置換することから始めます。その後、次について、ステートメントをチェックします。

正しさ

パーサーは、クエリステートメントが正確であるようにする SQL セマンティクス (またはルール) に SQL ステートメントが準拠していることを検証します。例えば、パーサーは SQL コマンドがセミコロンで終わるかどうかをチェックします。セミコロンがない場合、パーサーはエラーを返します。

承認

パーサーは、クエリを実行しているユーザーが、それぞれのデータを操作するために必要な権限を持っていることも検証します。例えば、管理者ユーザーのみがデータを削除する権限を持っている場合があります。 

リレーショナルエンジン

リレーショナルエンジンまたはクエリプロセッサは、対応するデータを最も効果的な方法で取得、書き込み、または更新するための計画を作成します。例えば、類似するクエリをチェックしたり、以前のデータ操作方法を再利用したり、新しい方法を作成したりします。これは、バイトコードと呼ばれる SQL ステートメントの中間レベルの表現で計画を記述します。リレーショナルデータベースは、バイトコードを使用してデータベースの検索と変更を効率的に実行します。 

ストレージエンジン

ストレージエンジン、またはデータベースエンジンは、バイトコードを処理し、目的の SQL ステートメントを実行するソフトウェアコンポーネントです。データを読み取り、物理ディスクストレージ上のデータベースファイルに格納します。完了すると、ストレージエンジンはリクエスト元のアプリケーションに結果を返します。

SQL コマンドとは何ですか?

構造化照会言語 (SQL) コマンドは、デベロッパーがリレーショナルデータベースに格納されているデータを操作するために使用する特定のキーワードまたは SQL ステートメントです。SQL コマンドは次のように分類できます。

データ定義言語

データ定義言語 (DDL) とは、データベース構造を設計する SQL コマンドをいいます。データベースエンジニアは DDL を使用して、ビジネス要件に基づいてデータベースオブジェクトを作成および変更します。例えば、データベースエンジニアは CREATE コマンドを使用して、テーブル、ビュー、インデックスなどのデータベースオブジェクトを作成します。

データクエリ言語

データクエリ言語 (DQL) は、リレーショナルデータベースに格納されているデータを取得するための命令で構成されます。ソフトウェアアプリケーションは、SELECT コマンドを使用して、SQL テーブルから特定の結果をフィルタリングして返します。 

データ操作言語

データ操作言語 (DML) ステートメントは、新しい情報を書き込んだり、リレーショナルデータベース内の既存のレコードを変更したりします。例えば、アプリケーションは INSERT コマンドを使用して新しいレコードをデータベースに格納します。

データコントロール言語

データベース管理者は、データコントロール言語 (DCL) を使用して、他のユーザーのデータベースアクセス権を管理または承認します。例えば、GRANT コマンドを使用して、特定のアプリケーションが 1 つ以上のテーブルを操作することを許可します。 

トランザクション制御言語

リレーショナルエンジンは、トランザクション制御言語 (TCL) を使用してデータベースを自動的に変更します。例えば、データベースは ROLLBACK コマンドを使用して、エラーが発生したトランザクションを元に戻します。 

SQL 標準とは何ですか?

SQL 標準は、構造化照会言語 (SQL) の公式に定義された一連のガイドラインです。米国国家規格協会 (ANSI) と国際標準化機構 (ISO) は、1986 年に SQL 標準を採択しました。ソフトウェアベンダーは、ANSI SQL 標準を使用して、デベロッパー向けの SQL データベースソフトウェアを構築します。

SQL インジェクションとは何ですか?

SQL インジェクションは、SQL クエリでデータベースを欺くサイバー攻撃です。ハッカーは SQL インジェクションを使用して、SQL データベース内のデータを取得、変更、または破損させます。例えば、SQL インジェクション攻撃を実行するために、送信フォームで人名ではなく SQL クエリを入力する場合があります。

MySQL とは

MySQL は、Oracle が提供するオープンソースのリレーショナルデータベース管理システムです。デベロッパーは、ライセンス料を支払うことなく MySQL をダウンロードして使用できます。MySQL は、さまざまなオペレーティングシステムやクラウドサーバーでインストールできます。MySQL は、ウェブアプリケーションのための一般的なデータベースシステムです。 

SQL とMySQL

構造化照会言語 (SQL) は、データベースの作成と操作のための標準言語です。MySQL は、SQL クエリを使用するリレーショナルデータベースプログラムです。SQL コマンドは国際標準によって定義されていますが、MySQL ソフトウェアは継続的にアップグレードおよび改善されています。

NoSQL とは

NoSQL とは、データを格納するためにテーブルを使用しない非リレーショナルデータベースをいいます。デベロッパーは、グラフ、ドキュメント、キー値など、さまざまなタイプの NoSQL データベースに情報を格納します。NoSQL データベースは、水平方向にスケーラブルであるため、最新のアプリケーションで人気があります。水平スケーリングとは、NoSQL ソフトウェアを実行するコンピュータを追加することで処理能力を高めることを意味します。

SQL とNoSQL

構造化照会言語 (SQL) は統一データ操作言語を提供しますが、NoSQL の実装はさまざまなテクノロジーに依存しています。デベロッパーはトランザクションアプリケーションや分析アプリケーションのために SQL を使用しますが、NoSQL は応答性が高く、使用頻度の高いアプリケーションに適しています。 

SQL サーバーとは何ですか?

SQL Server は、SQL でデータを操作する Microsoft のリレーショナルデータベース管理システムの正式名称です。MS SQL Server には複数のエディションがあり、それぞれが特定のワークロードと要件に合わせて設計されています。

AWS は SQL をどのようにサポートしますか?

Microsoft SQL Server on AWS を使用すると、デベロッパーは AWS で Microsoft SQL ワークロードを実行できます。SQL データベースシステムは、スケーラブルな AWS コンピューティングリソースを使用することで、より優れたパフォーマンスを発揮します。AWS は 24 のリージョンにまたがる極めて広範なグローバルインフラストラクチャを備えているため、MS SQL on AWS を実行することにより、企業はサービスの可用性を高めることができます。SQL Server on AWS は、230 を超えるセキュリティ、コンプライアンス、ガバナンスサービスと統合され、外部の脅威からデータを保護します。AWS が SQL をサポートするその他の方法には、次が含まれます。

今すぐ AWS アカウントにサインアップして、SQL Server on AWS を開始しましょう。

AWS SQL の次のステップ

無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで構築を始めましょう。

サインイン