MySQLデータベース:制約基本操作の作成
4787 ワード
制約は、データの整合性と一貫性を保証するためです.
制約のタイプは次のとおりです.
NOT NULL(NULL以外の制約)PRIMARY KEY(プライマリ・キー制約)UNIQUE KEY(一意の制約)DEFAULT(デフォルトの制約)FOREIGN KEY(外部キー制約)
外部キー制約の参照操作と機能:
1.CASCDE:親テーブルから一致する行を削除または更新し、サブテーブルから一致する行を自動的に削除または更新します.SET NULL:親テーブルから行を削除または更新し、サブテーブルの外部キー列をNULLに設定(ps.このオプションを使用する場合は、サブテーブル列にNOT NULLが指定されていないことを保証する必要があります).RESTRICT:親テーブルの削除または更新操作を拒否する.NO ACTION:標準SQLのキーワード、MySQLではRESTRICTと同じ
-- ,
-- ,
-- , ,
--
-- !
--NOT NUll DEFAULT
制約のタイプは次のとおりです.
NOT NULL(NULL以外の制約)PRIMARY KEY(プライマリ・キー制約)UNIQUE KEY(一意の制約)DEFAULT(デフォルトの制約)FOREIGN KEY(外部キー制約)
CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY);
-- :PRIMARY KEY
-- , ,
-- , NOT NULL
CREATE TABLE users(name VARCHAR(20) NOT NULL UNIQUE KEY);
-- :UNIQUE KEY
-- ,
--
CREATE TABLE users(sex ENUM('1','2','3') DEFAULT '3');
-- :DEFAULT
-- , , ,
--ENUM , 3 ,
CREATE TABLE provinces(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL
);
-- ,
CREATE TABLE users(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(10) NOT NULL,
pid SMALLINT UNSIGNED,
FOREIGN KEY (pid) REFERENCES provinces (id)
);
-- , , pid id
-- :FOREIGN KEY
-- :
--1. ,
--2. InnoDB
/*
3. 。
, ,
*/
--4. , 。!MySQL !
外部キー制約の参照操作と機能:
1.CASCDE:親テーブルから一致する行を削除または更新し、サブテーブルから一致する行を自動的に削除または更新します.SET NULL:親テーブルから行を削除または更新し、サブテーブルの外部キー列をNULLに設定(ps.このオプションを使用する場合は、サブテーブル列にNOT NULLが指定されていないことを保証する必要があります).RESTRICT:親テーブルの削除または更新操作を拒否する.NO ACTION:標準SQLのキーワード、MySQLではRESTRICTと同じ
--
CREATE TABLE users(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(10) NOT NULL,
pid SMALLINT UNSIGNED,
FOREIGN KEY (pid) REFERENCES provinces (id) ON DELETE CASCADE
);
--ON DELETE