何千もの組織が、構造化照会言語 (SQL) を習得した技術専門家を必要としています。 SQL 開発者のスキルを持つ人は、特に巨大なリレーショナル データベースの経験がある場合、さまざまな組織や業界で仕事を得る可能性があります。
多くの採用担当者や採用担当者は、Oracle Database SQL Certified Associate 認定や Oracle Database PL/SQL Developer Certified Professional 認定などの認定資格を取得して、SQL 開発者のスキルを証明することを求職者に望んでいます。 ただし、SQL 関連の認定資格を持っているかどうかに関係なく、面接プロセスには、SQL 開発者のスキルをテストするために設計された一連の高度に技術的な質問が含まれる可能性があります。
SQL 開発者としてのキャリアを考えている場合、トレーニングの選択肢はたくさんあります。 たとえば、Udemy には約 100 ドルから 175 ドルの価格帯の SQL コースがあり、Coursera には主要な大学やカレッジと共同で多数の SQL コースがリストされています。 また、SQL のさまざまな要素を「チャプター」に分解する w3schools の便利なサービスもあります。
ただし、最も基本的なレベルでは、主要な SQL 開発者スキルを習得するには、リレーショナル データベースのしくみを理解する必要があります。 SQL Server、Oracle、Db2 (および MySQL、PostgreSQL、SQLite) など、SQL に依存するリレーショナル データベースについて詳しく見ていきましょう。
データベースとは
SQL 開発者のスキルを習得すると、NoNQL、グラフ、時間ベースなど、さまざまな種類のデータベースがあることがわかりますが、ここで関心のあるのはリレーショナル データベースだけです。 これらは、いくつかのテーブルにデータを保持します。 テーブルは、多数の列の行にデータが保持されているスプレッドシートのようなものです。
違いは、リレーショナル テーブルでは、各列の内容が各行でまったく同じ型である必要があることです。 列 1 に整数が含まれている場合、そのテーブルのすべての行の列 1 に整数が含まれている必要があります。
データを取得するときは、かなりの量の検索を行います。 本をめくって、どのページに「ハンプティ・ダンプティ」という言葉があるかを想像してみてください。 すべてのページを読む必要がありますが、これは時間のかかるプロセスですが、多くの本の後ろに索引があり、「ハンプティ・ダンプティ」が 10、11、および 187 ページにあることがわかります。リレーショナル データベースでは、追加することもできます。検索に役立つように、テーブル内の任意の列にインデックスを付けます。 数千または数百万行のテーブルがある場合、検索を短時間で機能させるにはインデックスが不可欠です。
ファイルまたはサーバー データベース?
ほとんどのリレーショナル データベースはサーバーとして実行され、ローカルまたはネットワーク経由で接続されたスタンドアロン クライアントまたはソフトウェアからアクセスされます。 ここでの SQLite は例外で、ファイルベースであり、ファイルに対して直接動作します。 ファイルベースのデータベースは、単一のユーザーまたは少数のユーザーが同時に作業する場合に適しています。 多くのユーザーがいる場合は、サーバー データベースが最適です。
データを手動で保存、取得、および操作するためにデータベースを使用する場合、データベース クライアントが必要になります。 無料と商用の両方で、多くのオプションがあります。 たとえば、多くの SQL 開発者は、MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL Server などで動作する DBeaver を選択しています。
SQL について
SQL ステートメントには、主に 2 つのセットがあります。 1 つは、テーブルとデータベースの作成または削除、テーブルへの列の追加などです。 もう 1 つのセットは、データの取得、更新、および削除用です。 SQL を学習する場合、最初に学習する必要があるコマンドは、データの操作とフェッチのためのコマンドです。
データを操作するための SQL コマンド: 知っておく必要があるコマンドは、Insert、Update、Select、および Delete の 4 つです。 4 つのコマンドはすべて、テーブル全体または行のサブセットに適用できます。
3 つの列を持つ Hours というテーブルがあるとします。 最初の列は、日付を保持する datevalue というテキスト フィールドです。 次は、employeeId という int です。 3 番目の列は、その従業員がその日に働いた時間数です。 DBeaver によって生成された SQL は次のとおりです。
CREATE TABLE Hours (
datevalue text NOT NULL,
employeeid INTEGER,
hoursworked INTEGER
);
CREATE UNIQUE INDEX Hours_date_IDX ON Hours (datevalue,employeeid);
特定の日付の従業員には 1 つのエントリしか存在できないため、一意のインデックスを使用することでそれが強制されます。 「Not Null」は、日付列に常に値があることを意味します。 各行の日付なしで、このテーブルにデータを挿入することは決してありません。
テーブルへのデータの配置: Select および Update SQL コマンドを確認する前に、処理するデータが必要です。 大量のデータを取得する最も簡単な方法は、スプレッドシートに入力し、CSV ファイル (カンマ区切り値) として保存してから、データベース クライアントを使用してインポートすることです。
以下は、3 人の従業員のデータを表しています。 SQLite の列タイプの範囲は非常に限られているため、日付を保持するためにテキスト フィールドを使用しています。 他のデータベースでは、日付を日付型として保存できます。 (このページは SQLite のデータ型を示しています)。
datevalue,employeeid,hoursworked
'2022-09-05',0,8
'2022-09-05',1,4
'2022-09-06',2,6
'2022-09-06',0,8
'2022-09-06',1,4
'2022-09-07',0,8
'2022-09-07',1,4
'2022-09-07',2,6
データのインポート プロセスの後、8 行すべてがテーブル Hours に表示されます。
従業員 ID = 0 の勤務日数を表示してみましょう。これは select ステートメントを使用します。 DBeaver で新しい[SQL スクリプト]タブを開き、SQL クエリを入力できるようにします。
select date,hoursworked from Hours where employeeid=0;
これは、オプションで、テーブルから指定された列を選択すると解析されます どこ 調子。 列は、実際の名前付き列またはすべての列の * にすることができます (「where」句は、employeeid 0 の 3 つの行のみを表示することを意味します)。
データの挿入: Insert SQL ステートメントを使用すると、データをテーブルに挿入できます (単一の行または他のデータベース テーブルからの複数の行)。 9 月 8 日に employeeid 3 の 8 時間レコードを追加したい場合、insert ステートメントは次のようになります。
INSERT INTO Hours (datevalue, employeeid, hoursworked) VALUES('2022-09-08', 3, 8);
VALUES という単語の後の値は、括弧内に指定された列に対応します。
データの削除: 従業員 1 を解雇して、勤務時間を削除しましょう。 このために、delete ステートメントを使用します。
delete from Hours WHERE employeeid = 1;
お茶 どこ 句を使用すると、行のサブセットを指定できます。 employeeid 1 の行のみを削除します。削除後に以下のクエリを実行すると、指定された行が削除されたことを示す 0 が返されます。 Count は、サブセットに一致する行がいくつあるかを示します。 どこ:
select count(*) from hours where employee=1;
データの更新: このコマンドを使用すると、1 つまたは複数の行の値を変更できます。 従業員 2 の毎日の勤務時間が間違っているとします。 彼らはその日早く出発したので、6時間ではなく4時間になるはずです.
update Hours set hoursworked=4 where employeeid =2;
これにより、employeeid = 2 のすべての行で、hoursworked が 4 に設定されます。
覚えておくべき 1 つの重要な SQL コーディングの秘訣
金曜日の夕方、あなたがちょうど退職しようとしていて、従業員をデータベースから削除するように求められたと想像してください。 でもその代わりに 消去 上記のステートメントで、誤って どこ あなたは急いでいるからです。 今はただ 時間から削除します。
残念ながら、それはすべての従業員の勤務時間の記録を削除しただけで、元に戻すことはできません! バックアップからの完全な復元が必要です。 それが最近のバックアップであることを願いましょう!
削除または更新ステートメントを実行する場合は、最初に次の SQL コマンドを実行する必要があります。
Begin transaction;
これで、更新または削除を実行できます。 間違えた場合は、次のことを行うだけです ロールバック; コマンドとあなたの間違いは一掃されます。 それが正しければ、あなたは 専念; 変更は永続的なものになります。 これにより、多くの不満を解消できます。 常に覚えておいてください:あなたがするとき 取引を開始します。 あなたは常に対応することをしなければなりません 専念; ゴールドは ロールバック;.
結論
SQL 開発者のスキルを習得することに関心がある場合は、DBeaver (または選択した別のデータベース クライアント) の使用方法と 4 つの SQL コマンドを学習することから始められます。 すべてのリレーショナル データベースは、データベースとテーブルの作成、およびデータの操作に同じ SQL コマンドを使用します。 それらが異なるのは、SQL 実装の拡張機能です。これにより、より多くの機能が追加されますが、データベース間の移動が難しくなります。
関連するSQL開発者の求人リソース:
SQL認定
SQL スキル
SQL トレーニング