#このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。mysql では、unique は「一意の制約」を指します。これは、すべてのレコードのフィールドの値が繰り返し出現できないことを意味します。テーブルには複数の一意制約を設定でき、一意制約が設定されている列には NULL 値を含めることができますが、NULL 値は 1 つだけです。テーブルを変更するときに一意制約を追加するための構文は、「ALTER TABLE <データ テーブル名> ADD CONSTRAINT <一意制約名> UNIQUE(<列名>);」です。
mysql では、unique は「一意の制約」を指します。
MySQL の一意制約 (UNIQUE KEY)
MySQL の一意制約 (UNIQUE KEY) とは、フィールドの値を意味します。すべてのレコードで繰り返し実行することはできません。たとえば、一意の制約を id フィールドに追加すると、各レコードの id 値は一意になり、繰り返すことはできなくなります。いずれかのレコードの ID 値が「0001」の場合、テーブル内に ID 値「0001」を持つ別のレコードは存在できません。 一意制約は、列の一意性を保証できるという点で主キー制約に似ています。違いは、テーブル内に複数の一意制約を設定できることと、一意制約が設定されている列には NULL 値を持つことが許可されますが、NULL 値は 1 つだけであることです。テーブル内に存在できる主キー制約は 1 つだけであり、NULL 値は許可されません。たとえば、ユーザー情報テーブルでは、テーブル内でユーザー名の重複を避けるために、ユーザー名を一意性制約として設定できます。テーブルの作成時に一意制約を設定する
一意制約は、テーブルの作成時に、通常は主キーを除く他の列に直接設定できます。 列を定義した直後に UNIQUE キーワードを使用して、一意制約を指定します。構文形式は次のとおりです:<字段名> <数据类型> UNIQUE
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(<列名>);
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 <唯一约束名>;
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 サイトの他の関連記事を参照してください。