mysqlのユニークな点は何ですか

青灯夜游
リリース: 2023-04-19 15:30:18
オリジナル
6030 人が閲覧しました

mysql では、unique は「一意の制約」を指します。これは、すべてのレコードのフィールドの値が繰り返し出現できないことを意味します。テーブルには複数の一意制約を設定でき、一意制約が設定されている列には NULL 値を含めることができますが、NULL 値は 1 つだけです。テーブルを変更するときに一意制約を追加するための構文は、「ALTER TABLE <データ テーブル名> ADD CONSTRAINT <一意制約名> UNIQUE(<列名>);」です。

mysqlのユニークな点は何ですか

#このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

mysql では、unique は「一意の制約」を指します。

MySQL の一意制約 (UNIQUE KEY)

MySQL の一意制約 (UNIQUE KEY) とは、フィールドの値を意味します。すべてのレコードで繰り返し実行することはできません。たとえば、一意の制約を id フィールドに追加すると、各レコードの id 値は一意になり、繰り返すことはできなくなります。いずれかのレコードの ID 値が「0001」の場合、テーブル内に ID 値「0001」を持つ別のレコードは存在できません。

一意制約は、列の一意性を保証できるという点で主キー制約に似ています。違いは、テーブル内に複数の一意制約を設定できることと、一意制約が設定されている列には NULL 値を持つことが許可されますが、NULL 値は 1 つだけであることです。テーブル内に存在できる主キー制約は 1 つだけであり、NULL 値は許可されません。たとえば、ユーザー情報テーブルでは、テーブル内でユーザー名の重複を避けるために、ユーザー名を一意性制約として設定できます。

テーブルの作成時に一意制約を設定する

一意制約は、テーブルの作成時に、通常は主キーを除く他の列に直接設定できます。

列を定義した直後に UNIQUE キーワードを使用して、一意制約を指定します。構文形式は次のとおりです:

<字段名> <数据类型> UNIQUE
ログイン後にコピー

例 1:

データ テーブル tb_dept2 を作成し、次のように指定します部門の一意の名前、SQL 文および実行結果は次のとおりです。

mysql> CREATE TABLE tb_dept2
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) UNIQUE,
    -> location VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_dept2;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(40) | YES  | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.08 sec)
ログイン後にコピー

テーブル変更時に一意制約を追加します

テーブル変更時に一意制約を追加する構文形式は次のとおりです:

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);
ログイン後にコピー

例 2 :

データテーブル tb_dept1 を変更し、一意の部門名を指定します SQL 文と実行結果は次のとおりです。

mysql> ALTER TABLE tb_dept1
    -> ADD CONSTRAINT unique_name UNIQUE(name);
Query OK, 0 rows affected (0.63 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
ログイン後にコピー

一意制約の削除

MySQL で一意制約を削除するための構文形式は次のとおりです。

ALTER TABLE <表名> DROP INDEX <唯一约束名>;
ログイン後にコピー

例 3:

Delete データテーブル tb_dept1 の一意制約 unique_name、SQL 文および実行結果は次のとおりです。

mysql> ALTER TABLE tb_dept1
    -> DROP INDEX unique_name;
Query OK, 0 rows affected (0.20 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
ログイン後にコピー

[関連する推奨事項:

mysql ビデオ チュートリアル ]

以上がmysqlのユニークな点は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート