sql >> データベース >  >> RDS >> Database

SQLの制約

    SQL制約は、テーブルに存在するデータのルール/制限/制限を指定します。 SQL制約は、テーブルの作成時またはALTERコマンドを使用したテーブルの作成後に指定されます。制約には2つのタイプがあります列レベルの制約 およびテーブルレベルの制約 。名前の列レベルで指定されているように、特定の列を指定します。テーブルレベルの制約では、テーブル内の複数の列またはすべての列を指定します。 NOT NULL: 指定された列の値がNULLにならないようにします。UNIQUE: 列の各値が異なることを確認します。主キー: 主キーは、NOTNULLとUNIQUEの両方を保証します。これは、値をnullにすることはできず、互いに異なる必要があることを意味します。したがって、主キーはテーブル内の各レコードを一意に識別します。外部キー: 他のテーブルからレコードを一意に識別します。外部キーは他のテーブルへの参照であり、他のテーブルの主キーに似ています。デフォルト: 値が指定されていない場合はデフォルト値を設定します。チェック: 列のすべての値が条件を満たすことを保証します。INDEX: インデックスが作成され、データベースからデータを取得するために使用されます。

    NOT NULL

    すべての列のデフォルト値はNULLです。 Not Null制約は、列の値がnullにならないようにします。この制約は、列に何らかの値があることを常に確認します。このフィールドに値を指定せずにレコードを挿入または更新することはできません。ユーザーは、この制約をテーブルの単一または複数またはすべての列に追加できます。構文: CREATE TABLE table_name(列1のデータ型NOT NULL、………); 例: テーブルSTUDENT(student_id int NOT NULL、student_name varchar(10)、student_dept varchar(10)NOT NULL、classyear int);を作成します。 上記の例では、 NOT NULL テーブルの作成中に、STUDENTテーブルの2つの列student_idとstudent_deptに制約が適用されます。 STUDENTテーブルの説明は、どの列をNULLにすることができるか、またはNULLにすることができないかを示しています。テーブルに値を挿入するときの出力画面を参照してください。null制約ではないため、制約が適用されるフィールドにNULL値を入力することはできません。 UNIQUE 一意の制約により、列のエントリが重複しないようにします。 1つのテーブルに複数の一意のキーを含めることができます。構文: CREATE TABLE table_name(列1のデータ型UNIQUE、………); 例: テーブルstudent(student_id int Unique、student_name varchar(10)unique、student_dept varchar(10)not null、classyear int);を作成します。 上記のクエリは他の形式で記述できます。 テーブルstudent(student_id int、student_name varchar(10)unique、student_dept varchar(10)not null、classyear int、unique(student_id));を作成します); #一度に一意の複数の列を定義します 構文: CREATE TABLE table_name(列1のデータ型、………列n、制約制約名一意(列1、..)); 例: テーブルstudent(student_id int、student_name varchar(10)unique、student_dept varchar(10)not null、classyear int、Constraint cs_studentunique(student_id、student_name));を作成します。 #ALTERステートメントを使用してUNIQUE制約を追加する構文: テーブルtable_nameAddUnique(column_name); 例:を変更します テーブルStudentAddUnique(student_id); 構文を変更: テーブルtable_nameAdd制約の変更constraint_nameUnique(column1、column2); 例: テーブルStudentAddConstraintの変更cs_studentUnique(student_id、student_name);主キー 主キーは列内の各レコードを一意に識別し、1つのテーブルには単一の主キーがあります。主キーは単一の列または列のグループにすることができます。構文: テーブルtable_name(column data type Primary key、c​​olumn2 data type、………); 例:を作成します テーブルSTUDENT(student_id int Primary Key、student_name varchar(20)、student_dept varchar(20)、classyear int);を作成します。 構文: テーブルtable_name(column1データ型、column2データ型、………column nデータ型、主キー(column_name)); 例:を作成します。 テーブルStudent(student_id int、student_name varchar(10)、student_dept varchar(10)、classyear int、Primary key(student_id));を作成します。 #ALTERステートメントの使用 構文: テーブルtable_nameadd主キー(column_name);を変更します。 例: 表studentadd主キー(student_id);を変更します。 構文: 表table_namedropの主キーを変更します;例: テーブルstudentdropの主キーを変更します。

    デフォルト

    DEFAULT制約は、デフォルト値を列に設定するために使用されます。この制約は、単一の列または複数の列に適用できます。 NULLは、テーブル内のすべての列のデフォルト値です。ユーザーがいずれかの列にnullまたは主拘束を適用しない場合、そのデフォルト値が変更されます。構文: テーブルtable_nameを作成します(列データ型、……。列データ型のデフォルト値); 例: テーブルstudentを作成します(student_id int、student_name varchar(20)、student_dept varchar(20)default'IT'、classyear int); 出力画面にデフォルト値が表示されます「IT」 列student_deptに割り当てられます。 「IT」student_deptに設定された値 列student_deptに値が指定されていない場合 。 #ALTERステートメントを使用して列にDEFAULT制約を追加する 構文: alter table table_namealtercolumn_namesetデフォルト値;例: テーブルstudentalterstudent_deptsetのデフォルトの変更'CS'; 構文: alter table table_namealter column_namedrop default; 例: テーブルstudentalterstudent_deptdropのデフォルトを変更します; 外部キー 外部キーは、2つのテーブル間のリンクです。あるテーブルの主キーは、別のテーブルの参照/外部キーにすることができます。子テーブルと呼ばれる外部キーを含むテーブルと、そのテーブルを参照する主キーを持つ他のテーブルが親テーブルになります。親テーブルにデータが存在しない場合、ユーザーは子テーブルの前に親テーブルにレコードを入力する必要があります。 1つのテーブルに単一の主キーを含めることができます。DEPARTMENTテーブル IT さんS.K.ミシュラ CS さんD.P.パティル EXTC 夫人S.K. Bhosale メカ さんA.B. Jha
    DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
    0001 06
    0002 04
    0003 05
    0004 07
    学生テーブル CLASSYEAR RAM IT キラン IT NEHA ROOPA メカ
    STUDENT_ID STUDENT_NAME DEPT_NAME
    10001 02
    10002 04
    10003 CS 01
    10004 01
    学生 主キーstudent_idForeignkeydept_name DEPARTMENT 主キーdept_nameHere、DEPARTMENTは親テーブル、STUDENTは子テーブルです。 dept_nameという名前の学生テーブルで外部キーとして参照されているDEPARTMENTテーブルの主キー。2つのテーブルが同じ名前の列を持つ可能性があります。学生テーブルにdept_nameがstudent_deptのような別の名前で存在するか、それが問題を引き起こさないとします。テーブルには1つ以上の外部キーが含まれている可能性があります。#テーブルの作成中に制約を適用する 構文: //親テーブルには主キーが含まれている必要があります テーブルtable_name(列データ型主キー、列……..、列nデータ型);//子テーブルに外部キーが含まれているを作成します。 テーブルtable_name(列データ型、…………、外部キー(column_name)参照parent_table_name(主キーのcolumn_name)); 例:を作成します。 テーブルdepartment(dept_id int、dept_name varchar(30)Primary key、dept_head varchar(50)、dept_loc int); Create table student(student_id int primary key、student_name varchar(30)、dept_name varchar(30)、classyear int、Foreignキー(dept_name)参照部門(dept_name)); #Alterステートメントを使用して外部キー制約を適用します 構文: alter table table_nameadd外部キー(column_name)references parent_table_name(column_name of primary key); 例: テーブルstudentadd外部キー(dept_name)referencesdepartment(dept_name); 構文を変更: 表の変更table_nameadd制約constraint_nameforeignkey(column_name)references parent_table_name(column_name of primary key); 例: テーブルstudentadd制約の変更fk_studentforeignkey(dept_name)references department(dept_name); #DROP制約 構文: alter table table_namedrop外部キーconstraint_name;例: alter table studentdrop外部キーfk_student;テーブルstudentの作成(student_id int、student_name varchar(50)not null、student_dept varchar(30)default'IT'、classyear int check(classyear<5およびclassyear>0)、主キー(student_id) );


    1. パート1– SuiteCRMをインストールし、そのデータベースをリバースエンジニアリングする方法

    2. 日付範囲間の日付を生成する

    3. PDO:MySQLサーバーがなくなりました

    4. SQL Server(T-SQL)でデータベースメールプロファイルを作成する