SQLはITプロジェクトで重要な役割を果たすため、すべてのプログラマーはSQLの基本を理解している必要があります。データベースがプロジェクトの中心であり、SQLがそれに通信する唯一の方法であるのと同じように、心臓が人体の中心である方法。これを使用することにより、データの追加、保存されたデータの取得、既存のデータの変更と廃止されたデータの削除などのすべてのタスクを実行できます。この記事では、OracleSQLとPL/SQLとは何かについて詳しく説明します。
このOracleチュートリアルは、初心者および専門家向けに特別に設計されています。 PL / SQLチュートリアルシリーズの今後のトピックは慎重に設計されているため、このチュートリアルでOracleSQLおよびPL/SQLプログラミング言語を習得することをお約束します。
このチュートリアルでは、OracleSQLとPL/ SQLについて、非常に基本的な概念からOracleデータベースのすべての高度なトピックまで、より実践的な質問と実際のシナリオを使用して、効果的かつ簡単な方法で完全に学習します。最終的には、Oracleデータベースの概念をよりよく理解し、Oracle PL/SQLでプログラミングを行うための完全な知識を得ることができます。また、Oracle SQL開発者、Oracle PL / SQL開発者、データエンジニア、データベース管理者(DBA)としての企業の職務を探している場合、このOracleチュートリアルは主にあなたを対象としています。そのような役割だけでなく、Oracleリレーショナルデータベース管理システムの完全なアイデアも得られます。
データベースとは何ですか?
データベース管理システム(DBMS)は、データベースを管理するために作成されたプログラムのコレクションです。つまり、ユーザーとデータベース間のインターフェースとして機能します。
データベースは、コンピュータシステムに電子的に保存された構造化情報またはデータの組織化されたコレクションです。
多くの場合、データベースは正式な設計およびモデリング手法を使用して開発されます。
当初、CSVファイルは、情報を管理したり、フィールドと呼ばれる列とレコードと呼ばれる行にデータを格納したりするために使用されていました。ファイルの行数がさらに多く(>百万)行に増えた場合、人間が管理するのは非常に難しいことは明らかです。したがって、データベース管理(RDBMS)のリレーショナルモデルが発明されました。データベースでは、フィールドとレコードはそれぞれ列と行と呼ばれます。
Oracleは、リレーショナルデータベース管理システム(RDBMS)です。エンタープライズアプリケーションで広く使用されており、RDBMSの世界市場のほぼ半分がOracleによって所有されています。これは、エンタープライズグリッドコンピューティング用に設計された最初のデータベースです。最も柔軟で費用効果の高い方法で情報とアプリケーションを管理します。
Oracleデータベースには2つの構造が含まれています。
- 論理構造:
論理構造は、表領域、スキーマオブジェクト、エクステント、およびセグメントです。
- 物理的構造:
物理構造は、データファイル、REDOログファイル、制御ファイルです。
データベースには、列と行の組み合わせであるテーブルと呼ばれるオブジェクトがあります。これにより、データがデータベースに保存されます。従業員関連の情報が、従業員ID、名、姓、市区町村、国などの列と行に格納されている場合、そのテーブルは従業員テーブルと呼ばれます。テーブルはエンティティとも呼ばれます。
従業員ID | 名 | 姓 | 都市 | 国 |
102 | ジョシュア | 緑 | ニューヨーク | 米国 |
垂直方向の値(従業員ID、名、...)は列/フィールドと呼ばれ、水平方向の値(102、ジョシュア、…)は行/レコードと呼ばれます。
比較すると、リレーショナルモデルは、重複データを削除するため、フラットファイルモデルよりもはるかに優れています。
以下は、Oracleデータベースとは別に市場で入手可能な他のよく知られたRDBMSデータベースです。
データベース | 会社 |
MySQL | Oracle Corporation |
DB2 | IBM |
SQL Server | Microsoft |
PostgreSQL | PostgreSQLグローバル開発グループ |
SQLとは何ですか?
SQLはStructuredQueryLanguageの略で、S-Q-LまたはSee-Quellと発音されることもあります。
これは、データベースにアクセス、操作、および保守するための標準言語です。 SQLを使用して、データベース内の以下のすべてのタスクを実行できます。
- DDL、DML、TCLなどのSQLクエリを実行する
- SELECTステートメントまたはコマンドを使用してデータを取得する
- INSERTステートメントを使用したエントリの追加
- UPDATEステートメントを使用してエントリを変更する
- DELETEステートメントを使用してエントリを削除します
- SQLコマンドをトリガーして、ユーザーオブジェクトとデータベースオブジェクトに特権を発行します
- 新しいデータベースを作成する
- テーブル、プロシージャ、ビューなどの新しいデータベースオブジェクトを作成する
SQLは、ユーザーとデータベースの間で通信するための効果的な言語の1つです。 SQLはユーザー要求を受け取り、データベースと対話して、出力を返します。データの取得や操作のいずれかである可能性があります。
次の図はSQLのアーキテクチャです。
理解を深めるためのSQLステートメントをいくつか示します。
SELECTステートメントの構文:
SELECT * FROM <Employee_TableName>;
INSERTステートメントの構文:
INSERT INTO <Employee_TableName> values (103,’Michel’, ‘Jackson’, ‘London’, ‘United Kingdom’);
UPDATEステートメントの構文:
UPDATE <Employee_TableName> SET <Employee_CityColumn> = ‘New Jersey’ WHERE < Employee_CityColumn > = ‘New York’;
DELETEステートメントの構文:
DELETE FROM <Employee_TableName> WHERE < Employee_CityColumn > = ‘New York’;
PL / SQLとは何ですか?
PL / SQLは、Oracleで使用される構造化照会言語の手続き型言語拡張の略で、ブロック構造化言語とも呼ばれます。これにより、プログラマはSQLの機能と手続き型ステートメントを組み合わせることができます。
Oracle SQL言語がすでに導入されているのに、なぜOracle PL/SQLを使用する必要があるのかという疑問があるかもしれません。答えは、データベース内のデータにアクセスして操作するためのSQL言語がありますが、Oracle PL/SQLはSQL言語の制限を克服するように構築されているということです。
PL/SQLはSQL言語と緊密に統合されています。これは高度に構造化された読みやすい言語であり、OracleDatabaseにSQLが欠けている領域をカバーしています。すべてのSQLステートメントを一度にOracleエンジンに渡すことができるため、処理速度が向上し、トラフィックが減少します。また、以下はSQLの制限のリストです。
- SQLはDDLおよびDML操作のみを実行するために使用され、プログラマーがループ、反復、および条件付きチェック手法を使用する余地はありません
- SQLステートメントは一度に1つずつOracleエンジンに渡されるため、トラフィックが増加し、速度が低下します。
- SQLには、データ操作中のエラーチェックメカニズム(例外処理)がありません。
- PL/SQLと比較した場合のパフォーマンスの低下
次の図は、Oracle PL/SQLのアーキテクチャです。
PL / SQLユニットは、プロシージャ、関数、パッケージ、タイプ、トリガーなどのようなもので、アプリケーションで再利用するためにデータベースに格納されます。文字列と文字リテラル内を除いて小文字と大文字の両方を自由に使用できるため、大文字と小文字の区別を考慮せずにPL/SQLコードを記述できます。
Oracle PL/SQL匿名ブロックの基本構文
<宣言セクション>
開始
<実行可能セクション>
終了;
上記は、Oracle PL / SQLの匿名ブロックの例です。これは、ブロックに名前がなく、将来使用するためにデータベースサーバーに保存されないためです。なぜこのような匿名ブロックなのかと聞かれたら、PL/SQL匿名ブロックは主にプログラマーがテスト目的でのみ使用していると言えます。
関数やプロシージャなど、独自の名前を持つPL/SQLブロックがあります。このPL/SQLブロックはOracleDatabaseサーバーに格納され、後で再利用できます。
SQLとPLSQL-SQLとPLSQLの違い
SQL | PL / SQL |
構造化照会言語 | SQLの拡張機能への手続き型言語 |
単一のSQLステートメントとして実行 | PLSQLブロック全体として実行 |
データの操作に使用 | アプリケーションの作成に使用 |
SQL文にPL/SQLコードを含めることはできません | これはSQLの拡張であるため、PLSQLブロック内にSQL文を含めることができます。 |
SQLは、DMLおよびDDL操作を実行するために使用される単一のクエリです | PL / SQLは、プログラムブロック/プロシージャ/関数など全体を記述するために使用されるコードのブロックです。 |
結論として、SQLは、必要なデータを定義するために使用される宣言型言語です。ただし、PL/SQLは手続き型言語です。必要なデータと、データベースでデータを取得する方法の両方を指定します。