データベース設計

【SQL入門】一意制約(UNIQUE)を作成・削除する

一意制約(UNIQUE)の作成

一意制約(英:UNIQUE、ユニーク制約)は、「ALTER TABLE」で作成することができます。

UNIQUE追加の基本構文

ALTER  TABLE  テーブル名  ADD  CONSTRAINT  制約名  UNIQUE(カラム名);

※「CONSTRAINT  制約名」は省略可。省略した場合はカラム名が制約名となる。

一意制約(UNIQUE)の作成例

以下は「ALTER TABLE」を使い「sample」テーブルの「name」に一意制約(UNIQUE)を追加する例です。

■一意制約(UNIQUE)作成の例

ALTER TABLE sample ADD CONSTRAINT UK1 UNIQUE(name);

一意制約(UNIQUE)を作成した結果、「sample」テーブルのカラム「name」に「UK1」という制約名で一意制約(UNIQUE)が作成された結果です。

> SHOW CREATE TABLE sampledb.sample;
CREATE TABLE `sample` (
  `id` int NOT NULL,
  `address` varchar(255) DEFAULT NULL,
  `age` int DEFAULT NULL,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `UK1` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

一意制約(UNIQUE)の削除

一意制約(UNIQUE制約)は、「ALTER TABLE」で削除することができます。

UNIQUE削除の基本構文

ALTER  TABLE  テーブル名  DROP  CONSTRAINT  制約名;
または
ALTER  TABLE  テーブル名  DROP  INDEX  制約名;

一意制約(UNIQUE)の削除例

以下は「ALTER TABLE」を使い「sample」テーブルの「name」に付与されている一意制約(UNIQUE)を削除する例です。

■一意制約(UNIQUE)削除の例

ALTER TABLE sampledb.sample DROP CONSTRAINT UK1;

一意制約(UNIQUE)を削除した結果、「sample」テーブルのカラム「name」に付与されていた「UK1」というUNIQUE制約が削除されました。

> SHOW CREATE TABLE sample;
CREATE TABLE `sample` (
  `id` int NOT NULL,
  `address` varchar(255) DEFAULT NULL,
  `age` int DEFAULT NULL,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

学習書の紹介

独習SQL第2版 [ 黒石博明 ]

価格:3,080円
(2023/8/20 16:25時点)

独習SQL 第2版

アプリケーションはデータベース管理システム(DBMS)を介して、データベースを操作します。そのために使われるのがSQLです。SQLは、各種実行環境、プログラミング言語から共通の手順でデータベースを操作する言語です。本書では、Oracle9i以降で対応したSQL3の「INNER、JOIN、OUTER JOIN、CROSS JOIN命令、EXISTS演算子、ANY演算子…」などの項目について具体的な説明と使用例を追加しています。各章ごとにまとめと練習問題を添え、本格的な実務アプリケーション開発に必要なSQLの知識を効率的に学べるよう構成しています。
OracleとMicrosoft SQL Serverに対応。

学習書のお求めはこちらから ⇒ 全国送料無料!IT書、ビジネス書、資格書が豊富なSEshop

-データベース設計