MySQL ConstraintsThe constraint in MySQL is used to specify the rule that allows or restricts what values/data will be stored in the table. They provide a suitable method to ensure data accuracy and integrity inside the table. It also helps to limit the type of data that will be inserted inside the table. If any interruption occurs between the constraint and data action, the action is failed. Types of MySQL ConstraintsConstraints in MySQL is classified into two types:
How to create constraints in MySQLWe can define the constraints during a table created by using the CREATE TABLE statement. MySQL also uses the ALTER TABLE statement to specify the constraints in the case of the existing table schema. SyntaxThe following are the syntax to create a constraints in table: Constraints used in MySQLThe following are the most common constraints used in the MySQL:
Let us discuss each of these constraints in detail. NOT NULL ConstraintThis constraint specifies that the column cannot have NULL or empty values. The below statement creates a table with NOT NULL constraint. Execute the queries listed below to understand how it works: Output In the above image, we can see that the first INSERT query executes correctly, but the second statement fails and gives an error that says column LastName cannot be null. UNIQUE ConstraintThis constraint ensures that all values inserted into the column will be unique. It means a column cannot stores duplicate values. MySQL allows us to use more than one column with UNIQUE constraint in a table. The below statement creates a table with a UNIQUE constraint: Execute the queries listed below to understand how it works: Output In the below output, we can see that the first INSERT query executes correctly, but the second statement fails and gives an error that says: Duplicate entry 'Cantabil' for key BrandName. CHECK ConstraintIt controls the value in a particular column. It ensures that the inserted value in a column must be satisfied with the given condition. In other words, it determines whether the value associated with the column is valid or not with the given condition. Before the version 8.0.16, MySQL uses the limited version of this constraint syntax, as given below: After the version 8.0.16, MySQL uses the CHECK constraints for all storage engines i.e., table constraint and column constraint, as given below: Let us understand how a CHECK constraint works in MySQL. For example, the following statement creates a table "Persons" that contains CHECK constraint on the "Age" column. The CHECK constraint ensures that the inserted value in a column must be satisfied with the given condition means the Age of a person should be greater than or equal to 18: Execute the listed queries to insert the values into the table: Output In the below output, we can see that the first INSERT query executes successfully, but the second statement fails and gives an error that says: CHECK constraint is violated for key Age. DEFAULT ConstraintThis constraint is used to set the default value for the particular column where we have not specified any value. It means the column must contain a value, including NULL. For example, the following statement creates a table "Persons" that contains DEFAULT constraint on the "City" column. If we have not specified any value to the City column, it inserts the default value: Execute the listed queries to insert the values into the table: Output In the below output, we can see that the first insert query that contains all fields executes successfully, while the second insert statement does not contain the "City" column but also executed successfully. It is because it has a default value. Now, executes the following statement to validate the default value for the 4th column: We can see that it works perfectly. It means default value "New York" stored automatically in the City column. PRIMARY KEY ConstraintThis constraint is used to identify each record in a table uniquely. If the column contains primary key constraints, then it cannot be null or empty. A table may have duplicate columns, but it can contain only one primary key. It always contains unique value into a column. The following statement creates a table "Person" and explains the use of this primary key more clearly: Next, use the insert query to store data into a table: Output In the below output, we can see that the first insert query executes successfully. While the second insert statement fails and gives an error that says: Duplicate entry for the primary key column. AUTO_INCREMENT ConstraintThis constraint automatically generates a unique number whenever we insert a new record into the table. Generally, we use this constraint for the primary key field in a table. We can understand it with the following example where the id column going to be auto-incremented in the Animal table: Next, we need to insert the values into the "Animals" table: Now, execute the below statement to get the table data: Output In the output, we can see that I have not specified any value for the auto-increment column, so MySQL automatically generates a unique number in the sequence order for this field. ENUM ConstraintThe ENUM data type in MySQL is a string object. It allows us to limit the value chosen from a list of permitted values in the column specification at the time of table creation. It is short for enumeration, which means that each column may have one of the specified possible values. It uses numeric indexes (1, 2, 3…) to represent string values. The following illustration creates a table named "shirts" that contains three columns: id, name, and size. The column name "size" uses the ENUM data type that contains small, medium, large, and x-large sizes. Next, we need to insert the values into the "Shirts" table using the below statements: Now, execute the SELECT statement to see the inserted values into the table: Output We will get the following output: INDEX ConstraintThis constraint allows us to create and retrieve values from the table very quickly and easily. An index can be created using one or more than one column. It assigns a ROWID for each row in that way they were inserted into the table. The following illustration creates a table named "shirts" that contains three columns: id, name, and size. Next, we need to insert the values into the "Shirts" table using the below statements: Now, execute this statement for creating index: We can use the query below to retrieve the data using the index column: Output The following output appears: Foreign Key ConstraintThis constraint is used to link two tables together. It is also known as the referencing key. A foreign key column matches the primary key field of another table. It means a foreign key field in one table refers to the primary key field of another table. Let us consider the structure of these tables: Persons and Orders. Table: Persons Table: Orders In the above table structures, we can see that the "Person_ID" field in the "Orders" table points to the "Person_ID" field in the "Persons" table. The "Person_ID" is the PRIMARY KEY in the "Persons" table, while the "Person_ID" column of the "Orders" table is a FOREIGN KEY. Output Our table contains the following data:
Next TopicMySQL INSERT Statement
|