前提条件
- 有効なサブスクリプションのある Azure アカウント。
- セットアップ済みの Azure SQL Database インスタンス。
- SQL クエリを実行するための Azure Portal または SQL Server Management Studio (SSMS) へのアクセス。
Azure SQL Database に接続する
まず、Azure SQL Database に接続する必要があります。SQL Server Management Studio (SSMS)、Azure Data Studio、または Azure SQL Database への接続に対応したその他の SQL クライアントを使用できます。
-- Using SQL Server Management Studio (SSMS)
-- Replace <server_name>, <database_name>, <username>, and <password> with your details
Server name: <server_name>.database.windows.net
Database name: <database_name>
Authentication: SQL Server Authentication
Login: <username>
Password: <password>
基本的なテーブルの作成
接続できたら、まずはシンプルなテーブルを作成してみましょう。このテーブルには「社員 ID」「名前」「部署」などの社員情報を格納します。
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName NVARCHAR(100),
Department NVARCHAR(50)
);
想定される出力:
テーブルが正常に作成されると、次のようなメッセージが表示されます:
Commands completed successfully.
制約付きのテーブルを作成する
テーブルに制約を追加すると、データの整合性を保つことができます。たとえば、特定のフィールドを NULL 不可にしたり、一意制約を追加したりできます。
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName NVARCHAR(100) NOT NULL UNIQUE,
CreatedDate DATETIME DEFAULT GETDATE()
);
想定される出力:
Commands completed successfully.
この例では、DepartmentName 列は NULL にできず、一意である必要があります。CreatedDate 列には、新しいレコードが挿入されたときに現在の日時がデフォルトで自動的に設定されます。
外部キー付きのテーブルを作成する
外部キーはテーブル間のリレーションを確立するために使用します。この例では、Departments テーブルを参照するテーブルを作成します。
CREATE TABLE EmployeeDetails (
EmployeeID INT PRIMARY KEY,
EmployeeName NVARCHAR(100) NOT NULL,
DepartmentID INT,
CONSTRAINT FK_Department FOREIGN KEY (DepartmentID)
REFERENCES Departments(DepartmentID)
ON DELETE CASCADE
ON UPDATE CASCADE
);
想定される出力:
Commands completed successfully.
ON DELETE CASCADE と ON UPDATE CASCADE オプションにより、Departments テーブルの変更が EmployeeDetails テーブルにカスケードされ、参照整合性が維持されます。
テーブルにデータを挿入する
テーブルを作成したら、データを挿入してテーブル同士がどのように連携するか確認してみましょう。
-- Insert data into Departments table
INSERT INTO Departments (DepartmentID, DepartmentName)
VALUES (1, 'HR'), (2, 'Engineering');
-- Insert data into EmployeeDetails table
INSERT INTO EmployeeDetails (EmployeeID, EmployeeName, DepartmentID)
VALUES (101, 'John Doe', 1), (102, 'Jane Smith', 2);
想定される出力:
(2 rows affected)
(2 rows affected)
データのクエリ
これで、データをクエリして Departments テーブルと EmployeeDetails テーブルのリレーションを確認できます。
SELECT
e.EmployeeID,
e.EmployeeName,
d.DepartmentName
FROM
EmployeeDetails e
INNER JOIN
Departments d ON e.DepartmentID = d.DepartmentID;
想定される出力:
| EmployeeID | EmployeeName | DepartmentName | |
|---|---|---|---|
| 101 | John | Doe | HR |
| 102 | Jane | Smith | Engineering |
テーブルの変更
作成後にテーブルを変更することはよくあります。新しい列の追加、列のデータ型の変更、デフォルト値の設定などが必要になる場合があります。
-- Add a new column to the EmployeeDetails table
ALTER TABLE EmployeeDetails
ADD Email NVARCHAR(255);
-- Set a default value for the new column
ALTER TABLE EmployeeDetails
ADD CONSTRAINT DF_Email DEFAULT 'example@example.com' FOR Email;
想定される出力:
Commands completed successfully.
テーブルの削除
不要になったテーブルは、DROP TABLE 文で削除できます。この操作はテーブルとそのデータを完全に削除するため、注意して実行してください。
DROP TABLE EmployeeDetails;
想定される出力:
Commands completed successfully.
まとめ
Azure SQL Database でのテーブルの作成と管理は簡単ですが、適用できるさまざまなオプションや制約を理解しておくと、効率的でスケーラブルなデータベースを設計できます。外部キー、制約、適切なデータ型を使用することで、データの整合性を確保し、パフォーマンスを最適化できます。
こちらの記事もおすすめです:
Beekeeper Studioは無料のオープンソースのデータベースGUIです
これまで使った中で最高のSQLクエリ&エディタツールです。データベースの管理に必要なものがすべて揃っています。 - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studioは高速で直感的、そして使いやすいツールです。多数のデータベースに対応し、Windows、Mac、Linuxで快適に動作します。
Beekeeper Studio 利用者の声
「Beekeeper Studio で以前の SQL ワークフローを完全に置き換えました。高速で直感的で、データベース作業がまた楽しくなりました。」
「多くのデータベース GUI を試してきましたが、Beekeeper は機能とシンプルさのバランスが絶妙です。とにかくちゃんと動きます。」