mysqlで制限とは何を意味しますか
mysql では、restrict は制限を意味し、テーブル内のデータに対する制限を指します。データベース管理者がデータベースをより適切に管理し、データベース内のデータの正確性と有効性を確保するのに役立ちます。 。 MySQL は、主キー制約、外部キー制約、一意制約、チェック制約、非ヌル制約、およびデフォルト値制約の 6 種類の制約をサポートします。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql では、restrict は制限を意味します。
MySQL の制約とは何ですか?
restrict (制約) は、テーブル内のデータに対する制限を指します。これは、データベース管理者がデータベースをより適切に管理し、データベース内のデータの正確性、有効性、整合性を確保するのに役立ちます。
たとえば、年齢の値をデータテーブルに保存する場合、200 や 300 などの無効な値を保存しても意味がありません。したがって、制約を使用してテーブル内のデータの範囲を制限する必要があります。
MySQL の制約は、データの正確性と合理性を検出するために使用されます。一般的なエラーには、1. 同じ重複データが存在する、2. 間違ったデータ、3. データ損失エラー (空のデータ)、4. 参照が含まれます。不明瞭なエラー(テーブルを正確にリンクできない)など。
MySQL の制約は、ID 番号を重複して使用できない、配送先住所を空にすることができないなど、上記の問題を解決するために使用されます。制約に違反すると、データ操作動作が抑制されます。
MySQL では、主に次の 6 種類の制約がサポートされています。
1) 主キー制約
主キー制約は最も頻繁に使用されます。制約。データテーブルを設計するときは、通常、テーブルに主キーを設定する必要があります。
主キーは、テーブル内の各情報を一意に識別するテーブル内の特別なフィールドです。例えば、学生情報テーブルの学生番号は一意である。
2) 外部キー制約
外部キー制約は、データの一貫性を確保するために主キー制約と一緒に使用されることがよくあります。
たとえば、果物屋台には、リンゴ、桃、プラム、スイカの 4 種類の果物しかない場合、果物を買いに果物屋台に来たとき、選択できるのはリンゴ、モモ、プラムのみです。 、スイカ、その他の果物は購入できません。
3) 一意制約
一意制約は主キー制約と似ており、どちらも列の一意性を保証できます。主キー制約とは異なり、テーブル内に複数の一意制約を設定でき、一意制約が設定されている列には NULL 値を含めることができますが、NULL 値は 1 つだけです。
たとえば、ユーザー情報テーブルでは、テーブル内でユーザー名が重複するのを避けるために、ユーザー名列を一意制約として設定できます。
4) チェック制約
チェック制約は、データ テーブル内のフィールド値が有効かどうかをチェックする手段です。
たとえば、学生情報テーブルの年齢フィールドには負の数値はなく、値も制限されています。大学生の場合、年齢は通常 18 歳から 30 歳の間となります。フィールドのチェック制約を設定する際は、実際の状況に合わせて設定することで、不正なデータの入力を減らすことができます。
5) 非 null 制約
非 null 制約は、テーブル内のフィールドを空にできないように制約するために使用されます。たとえば、学生情報テーブルでは、学生名が追加されていない場合、このレコードは役に立ちません。
6) デフォルト値制約
デフォルト値制約は、データ テーブルのフィールドに値が入力されていない場合に、すでに設定されている値が自動的にフィールドに追加されることを制約するために使用されます。
例えば、生徒情報を登録する際に、生徒の性別を入力しないと、デフォルトで性別が設定されるか、「不明」が入力されます。
デフォルト値制約は通常、非 NULL 制約が設定されている列に使用され、データ テーブルにデータを入力する際のエラーを防ぐことができます。
上記の 6 つの制約のうち、データ テーブルに存在できる主キー制約は 1 つだけであり、他の制約は複数存在する可能性があります。
操作テーブルの制約
1. テーブルに主キー制約を追加します
テーブルの制約があります主キーは 1 つだけです。主キーを追加するには 2 つの方法があります。
DDL ステートメントを使用して主キー制約を追加します。例:
ALTER TABLE 表名 ADD PRIMARY KEY(列名); alter table emp add primary key(employee_id);//选取employee_id作为主键 alter table emp add primary key(employee_id,shenfen_id);//联合主键
2. 自動インクリメント主キー制約をテーブル
auto_incrementに追加します。主キーは、データベース管理システムがテーブルを自動管理する際に自動的に追加されるものであり、主キーは自然数を用いて自動的に増加するように決定される。同様に、自己増加主キーも特定の列を主キーとして使用します。テーブルの主キーが追加されているフィールドにデータが追加されると、主キーは自動的に 1 ずつ増加します。
自己成長主キーと一般主キーは相互に変換できます。
1. テーブル内の 1 つの列のみ 自動的に拡張できます。 2. 自動的に拡張される列の型は integer type である必要があります。 3. 自動拡張は、主キー制約および一意制約を持つ列にのみ追加できます。 4. 主キー制約または一意制約を削除します。列に自動拡張機能がある場合は、まず自動拡張を削除してから、制約を削除する必要があります。
注: 以前に自動インクリメント属性をフィールドに追加したことがある場合は、このフィールドを削除するときに最初に自動インクリメント属性を削除する必要があります。
alter table 表名 modify 主键 类型 auto_increment; alter table emp modify employee_id int auto_increment;
または、Navicat に主キーを追加します:
3. テーブル内の主キー制約を削除します
DDL ステートメントを使用して主キーを削除します。
ALTER TABLE 表名 DROP PRIMARY KEY; alter table emp drop primary key;
注: 主キーを削除するときに、主キー列に自動拡張機能がある場合は、まず自動拡張を削除してから主キーを削除する必要があります。
alter table emp modify employee_id int;//去掉自增长,与添加自增长代码地区别就是没有auto_increament alter table emp drop primary key;
4. 外部キー制約をテーブルに追加します
UseDDL ステートメントは外部キー制約を追加します。テーブルには複数の外部キーを設定できます。
ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY(列名) REFERENCES 参照的表名(参照的列名); alter table emp add constraint emp_fk foreign key(dept_id) references departments(department_id);
または、Navicat に外部キーを追加します。外部キー名がよく使用されます: テーブル名 _fk、テーブル名 _fk1 は表します。
#5. テーブルの外部キー制約を削除します
ALTER TABLE 表名 DROP FOREIGN KEY 约束名; alter table emp drop foreign key emp_fk;
6、给表中某字段添加唯一性约束
使用DDL语句添加唯一性约束。或在在Navicat中添加唯一性约束。
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名); alter table emp add constraint emp_uk unique(name);
7、删除表中某字段的唯一性约束
使用DDL语句删除唯一性约束。删除之前需要弄清楚删除的约束名是对哪一个字段进行约束的。
ALTER TABLE 表名 DROP KEY 约束名; alter table emp drop key emp_uk;
8、给表中某个字段添加非空约束
使用DDL语句添加非空约束。或者Navicat。
ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL; alter table emp modify salary float(8,2) not NULL;
9、删除表中某个字段的非空约束
使用DDL语句删除非空约束。
ALTER TABLE 表名 MODIFY 列名 类型 NULL; alter table emp modify salary float(8,2) NULL;
创建表的时候添加约束
上面介绍了当一张表已经存在之后如何添加约束。下面介绍在一开始新建表的时候如何添加约束。
1、查询表中加了哪些约束?
SHOW KEYS FROM 表名;
2、创建表时添加约束
创建 depts 表包含 department_id 该列为主键且自动增长,department_name 列不允许重复,location_id 列不允含有空值。
create table depts ( department_id int primary key auto_increment, department_name varchar(30) unique, location_id int not null; );
【相关推荐:mysql视频教程】
以上がmysqlで制限とは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。
