検索

mysql では、restrict はテーブル内のデータに対する制限を意味する制約を意味します。データベース管理者がデータベースをより適切に管理し、データベース内のデータが正しいことを確認するのに役立ちます。 、有効性と完全性。 MySQL では、主キー制約、外部キー制約、一意制約、チェック制約、非 null 制約、およびデフォルト値制約を含む 6 種類の制約を使用できます。

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 つの方法。

単一主キー: 1 つの列を主キー列として使用します。この列の値が繰り返されると、一意性制約に違反します。

ユニオン主キー: 複数の列を主キー列として使用します。複数の列の値が同じ場合、一意性制約に違反します。複数の列を組み合わせて主キーを決定することを指し、00,01,10,11,12,22の組み合わせのように組み合わせが重複すると無効となります。

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中添加主键:

mysqlの制限の意味は何ですか

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、给一张表添加外键约束

使用DDL语句添加外键约束。可以给一张表设置多个外键。

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表示。

mysqlの制限の意味は何ですか

5、删除一张表的外键约束

外键约束可以通过使用DDL语句来删除。或者在Navicat中主动删除外键。

ALTER TABLE 表名 DROP FOREIGN KEY 约束名;
alter table emp drop foreign key emp_fk;

mysqlの制限の意味は何ですか

6、给表中某字段添加唯一性约束

使用DDL语句添加唯一性约束。或在在Navicat中添加唯一性约束。

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名);
alter table emp add constraint emp_uk unique(name);

mysqlの制限の意味は何ですか

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;

mysqlの制限の意味は何ですか

9、删除表中某个字段的非空约束

使用DDL语句删除非空约束。

ALTER TABLE 表名 MODIFY 列名 类型 NULL;
alter table emp modify salary float(8,2) NULL;

mysqlの制限の意味は何ですか

创建表的时候添加约束

上面介绍了当一张表已经存在之后如何添加约束。下面介绍在一开始新建表的时候如何添加约束。

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の制限の意味は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
MySQLの場所:データベースとプログラミングMySQLの場所:データベースとプログラミングApr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQL:中小企業から大企業までMySQL:中小企業から大企業までApr 13, 2025 am 12:17 AM

MySQLは、中小企業に適しています。 1)中小企業は、顧客情報の保存など、基本的なデータ管理にMySQLを使用できます。 2)大企業はMySQLを使用して、大規模なデータと複雑なビジネスロジックを処理して、クエリのパフォーマンスとトランザクション処理を最適化できます。

Phantomの読み取りとは何ですか?Innodbはどのようにそれらを防ぐ(次のキーロック)?Phantomの読み取りとは何ですか?Innodbはどのようにそれらを防ぐ(次のキーロック)?Apr 13, 2025 am 12:16 AM

INNODBは、次のキーロックメカニズムを通じてファントムの読み取りを効果的に防止します。 1)Next-KeyLockingは、Row LockとGap Lockを組み合わせてレコードとギャップをロックして、新しいレコードが挿入されないようにします。 2)実際のアプリケーションでは、クエリを最適化して分離レベルを調整することにより、ロック競争を削減し、並行性パフォーマンスを改善できます。

mysql:プログラミング言語ではありませんが...mysql:プログラミング言語ではありませんが...Apr 13, 2025 am 12:03 AM

MySQLはプログラミング言語ではありませんが、そのクエリ言語SQLにはプログラミング言語の特性があります。1。SQLは条件付き判断、ループ、可変操作をサポートします。 2。ストアドプロシージャ、トリガー、機能を通じて、ユーザーはデータベースで複雑な論理操作を実行できます。

MySQL:世界で最も人気のあるデータベースの紹介MySQL:世界で最も人気のあるデータベースの紹介Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLの重要性:データストレージと管理MySQLの重要性:データストレージと管理Apr 12, 2025 am 12:18 AM

MySQLは、データストレージ、管理、クエリ、セキュリティに適したオープンソースのリレーショナルデータベース管理システムです。 1.さまざまなオペレーティングシステムをサポートし、Webアプリケーションやその他のフィールドで広く使用されています。 2。クライアントサーバーアーキテクチャとさまざまなストレージエンジンを通じて、MySQLはデータを効率的に処理します。 3.基本的な使用には、データベースとテーブルの作成、挿入、クエリ、データの更新が含まれます。 4.高度な使用には、複雑なクエリとストアドプロシージャが含まれます。 5.一般的なエラーは、説明ステートメントを介してデバッグできます。 6.パフォーマンスの最適化には、インデックスの合理的な使用と最適化されたクエリステートメントが含まれます。

なぜMySQLを使用するのですか?利点と利点なぜMySQLを使用するのですか?利点と利点Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

InnoDBロックメカニズム(共有ロック、排他的ロック、意図ロック、レコードロック、ギャップロック、次のキーロック)を説明します。InnoDBロックメカニズム(共有ロック、排他的ロック、意図ロック、レコードロック、ギャップロック、次のキーロック)を説明します。Apr 12, 2025 am 12:16 AM

INNODBのロックメカニズムには、共有ロック、排他的ロック、意図ロック、レコードロック、ギャップロック、次のキーロックが含まれます。 1.共有ロックにより、トランザクションは他のトランザクションが読み取らないようにデータを読み取ることができます。 2.排他的ロックは、他のトランザクションがデータの読み取りと変更を防ぎます。 3.意図ロックは、ロック効率を最適化します。 4。ロックロックインデックスのレコードを記録します。 5。ギャップロックロックインデックス記録ギャップ。 6.次のキーロックは、データの一貫性を確保するためのレコードロックとギャップロックの組み合わせです。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境