SQLの制約とは何ですか?
SQL制約は、データベースデータの整合性と精度を確保するために使用されるルールです。一般的なタイプは次のとおりです。1。列が空でないことを確認してください。 2. Uniqueは、列の値が一意であることを保証します。 3.プリマリーキーは、空ではなくユニークな行識別子です。 4。外部キーは、テーブル間のデータを関連付けます。 5.列データに条件を適用することを確認します。 6.デフォルトは列のデフォルト値を設定します。これらの制約は、テーブルを作成するときに作成テーブルを作成することで定義するか、その後変更テーブルで変更できます。たとえば、nullではないことは、メールボックスなどの必要なフィールドに適しています。チェックは、在庫量が負になるのを防ぐことができます。外部キーは孤児の記録を避けることができます。制約は、作成テーブルの作成を介して直接適用できます。たとえば、IDをプライマリキー名、空ではない電子メール、一意の年齢に設定しても、18歳未満でなければなりません。国のデフォルトを米国に設定すると、異なるデータベース構文がわずかに異なる場合があります。
SQL制約は、データの整合性と精度を実施するために、データベース内の列またはテーブルに適用されるルールです。これらの制約により、データベースに入力または存在するデータが特定の条件に付着し、無効または一貫性のない情報が保存されないようにします。彼らは、アプリケーションとシステム全体のデータの信頼性を維持する上で残酷な役割を果たします。

一般的なタイプのSQL制約
一般的に使用されるSQL制約がいくつかあり、それぞれがデータベース内でデータをどのように動作させるかを定義する際に独自の目的を果たします。
- nullではありません- 列に
NULL
値がないことを保証します。 - 一意- 列内のすべての値が明確であることを確認します。
-
主キー- テーブル内の各行を一意に識別するために、
NOT NULL
、UNIQUE
識別します。 - 外部キー- ある列の値が別のテーブルの主キーの値が一致するようにすることにより、テーブル間のデータをリンクします。
- チェック- 列のデータ上の特定の条件を実施します(たとえば、年齢は少なくとも18でなければなりません)。
- デフォルト- 挿入時に値が提供されていない場合、列のデフォルト値を設定します。
これらの制約は、 CREATE TABLE
作成を使用してテーブルを作成するときに定義するか、後でALTER TABLE
を使用して追加されます。

いつ、なぜ制約を使用するのか
制約は、一貫性を維持し、悪いデータを避ける必要がある場合に最も便利です。例えば:
-
NOT NULL
制約は、ユーザーテーブルの電子メールや電話番号などの列には理にかなっています。空白のままにしないでください。 - 製品の在庫を追跡している場合、
CHECK
制約により、負の数が「数量」列に入力されないようにすることができます。 -
FOREIGN KEY
を使用すると、孤児の記録を避けることができます。たとえば、注文テーブルの注文は、常に顧客テーブルの有効な顧客にリンクする必要があります。
これらのルールがなければ、データベースはデータの欠落、複製、または不一致のデータになり、レポートのエラー、アプリケーションロジック障害、およびメンテナンスの頭痛が増えます。

実際に制約を適用する方法
制約の適用は簡単です。 CREATE TABLE
を使用した基本的な例です。
テーブルユーザーを作成します( id intプライマリキー、 名前varchar(50)nullではありません、 電子メールvarchar(100)ユニーク、 年齢intチェック(年齢> = 18) );
この場合:
-
id
列は主キーとして機能します。 -
name
空にすることはできません。 - 各
email
行全体で一意でなければなりません。 -
age
少なくとも18でなければなりません。
後で制約を追加または削除する場合は、 ALTER TABLE
使用できます。たとえば、新しいDEFAULT
制約の追加:
テーブルユーザーを変更します column Countryセットのデフォルト「USA」を変更します。
さまざまなデータベース(MySQL、PostgreSQL、SQL Serverなど)にはわずかな構文の違いがある可能性があるため、使用しているシステムのドキュメントを常に確認してください。
基本的にそれだけです。
以上がSQLの制約とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











/elseロジックが主にSQLのSELECTステートメントに実装されている場合。 1.給与間隔に応じて低/中/高をマークするなど、構造が条件に応じて異なる値を返すことができる場合。 2。MySQLは、マークがボーナス資格を満たしているかどうかなど、判断する2つの単純な選択のためにif()関数を提供します。 3。ケースは、ブール式を組み合わせて、「高層と若い」従業員のカテゴリを判断するなど、複数の条件の組み合わせを処理できます。全体として、ケースはより柔軟で複雑なロジックに適していますが、単純化されたライティングに適している場合。

中間結果セットを保存するためのSQLで一時テーブルを作成します。基本的な方法は、createTempolaryTableステートメントを使用することです。さまざまなデータベースシステムには詳細に違いがあります。 1。基本的な構文:ほとんどのデータベースは、createTemporaryTableTemp_table(フィールド定義)を使用し、sqlServerは#を使用して一時テーブルを表します。 2。既存のデータから一時テーブルを生成します。構造とデータは、createTemporarytableasまたはselectIntoを介して直接コピーできます。 3。メモには、アクションの範囲が現在のセッション、処理メカニズムの変更、パフォーマンスオーバーヘッド、およびトランザクションの動作の違いに限定されます。同時に、インデックスを一時テーブルに追加して最適化することができます

SQLで現在の日付と時刻を取得する方法は、データベースシステムによって異なります。一般的な方法は次のとおりです。1。mysqlおよびmariadb now()またはcurrent_timestampを使用します。 2。PostgreSQLはNow()を使用します。これは、current_timestampまたはタイプ変換を使用してタイムゾーンを削除することもできます。 3。SQLSERVERは、挿入値とデフォルト値設定をサポートするgetDate()またはsysdateTime()を使用します。 4。OracleはSysdateまたはSystimestampを使用し、日付の形式変換に注意を払います。これらの機能を習得すると、さまざまなデータベースで時間相関を柔軟に処理できます

場所と持っていることの主な違いは、フィルタリングタイミングです。1。グループ化する前にフィルター行、元のデータに作用し、集約関数を使用できません。 2。グループ化後に結果をフィルターし、集約データに作用し、集約関数を使用できます。たとえば、クエリで高給の従業員をスクリーニングする場所を使用してから、グループ統計をグループ化してから、平均給与が60,000を超える部門をスクリーニングする必要がある場合、2人の注文は変更できません。常に最初に実行して、条件を満たす行のみがグループに参加し、グループ化の結果に基づいて最終出力をさらにフィルターすることを確認します。

個別のキーワードは、クエリ結果の重複行を削除するためにSQLで使用されます。そのコア機能は、返されるデータの各行が一意であり、部門、ステータス、名前などの単一の列または複数の列の一意の値のリストを取得するのに適していることを確認することです。それを使用する場合は、1つの列ではなく行全体に異なる動作があり、複数の列と組み合わせて使用すると、すべての列の一意の組み合わせが返されます。基本的な構文は、SelectDistinctColumn_nameFromTable_Nameであり、単一の列または複数の列クエリに適用できます。特にソートまたはハッシュ操作を必要とする大規模なデータセットで、それを使用するときのパフォーマンスへの影響に注意してください。一般的な誤解には、個別は単一の列にのみ使用され、Dを推測する必要がないシナリオで乱用されるという誤った信念が含まれます。

データベース設計では、作成可能なステートメントを使用してテーブル構造と制約を定義して、データの整合性を確保します。 1.各テーブルは、user_idintprimarykeyなどのフィールド、データ型、およびプライマリキーを指定する必要があります。 2. NotNull、一意、デフォルト、およびその他の制約を追加して、emailvarchar(255)notnulluniqueなどのデータの一貫性を改善します。 3. foreignkeyを使用して、注文テーブルなどのテーブル間の関係を確立します。ユーザーテーブルの主要なキーをuser_idを介して参照します。

sqlfunctions andStoredproceduresdifferinpurpose、returnbehavior、callingcontext、andsecurity.1.functions leturnasedlevalueortable daredareused forcomputations withinquithines、whileprocedureporformclecplexoperations anddatamodifications.2

asequenceObjectInsqlGenerateSaseasequenceofnumericValuesは、一般的に使用されているため、一般的に使用されています
