美文网首页
MySQL Tutorial: part 3

MySQL Tutorial: part 3

作者: 庞贝船长 | 来源:发表于2018-01-24 14:18 被阅读0次

    Constraints

    NOT NULL

    The NOT NULL constraint is a column constraint that forces the values of a column to non-NULL values only.

    column_name data_type NOT NULL;
    
    • Add a NOT NULL constraint to an existing column

    In this case, you use the following steps:

    1. Check the current values of the column.
    2. Update the NULL values to non-null values.
    3. Add the NOT NULL constraint

    PRIMARY KEY

    A primary key is a column or a set of columns that uniquely identifies each row in the table. You must follow the rules below when you define a primary key for a table:

    • A primary key must contain unique values. If the primary key consists of multiple columns, the combination of values in these columns must be unique.

    • A primary key column cannot contain NULL values. It means that you have to declare the primary key column with the NOT NULL attribute. If you don’t, MySQL will force the primary key column as NOT NULL implicitly.

    • A table has only one primary key.

    A primary key column often has the AUTO_INCREMENT attribute that generates a unique sequence for the key automatically.

    id PRIMARY KEY
    
    or ..
    
    PRIMARY KEY(id_1,id_2)
    
    • Defining MySQL PRIMARY KEY constraints using ALTER TABLE statement
    ALTER TABLE table_name
    ADD PRIMARY KEY(primary_key_column);
    
    • PRIMARY KEY vs. UNIQUE KEY vs. KEY

    A KEY is a synonym for INDEX. You use the KEY when you want to create an index for a column or a set of columns that is not the part of a primary key or unique key.

    A UNIQUE index creates a constraint for a column whose values must be unique. Unlike the PRIMARY index, MySQL allows NULL values in the UNIQUE index. A table can also have multiple UNIQUE indexes.

    FOREIGN KEY

    A foreign key is a field in a table that matches another field of another table. A foreign key places constraints on data in the related tables, which enables MySQL to maintain referential integrity.

    A foreign key can be a column or a set of columns. The columns in the child table often refer to the primary key columns in the parent table.

    A table may have more than one foreign key, and each foreign key in the child table may refer to a different parent table.

    • The following syntax illustrates how to define a foreign key in a child table in CREATE TABLE statement.
    CONSTRAINT constraint_name
    FOREIGN KEY foreign_key_name (columns)
    REFERENCES parent_table(columns)
    ON DELETE action
    ON UPDATE action
    
    • Adding a foreign key to a table MySQL adding foreign key syntax
    ALTER table_name
    ADD CONSTRAINT constraint_name
    FOREIGN KEY foreign_key_name(columns)
    REFERENCES parent_table(columns)
    ON DELETE action
    ON UPDATE action;
    
    • Dropping MySQL foreign key
    ALTER TABLE table_name 
    DROP FOREIGN KEY constraint_name;
    
    • Disabling foreign key checks

    To disable foreign key checks, you use the following statement:

    SET foreign_key_checks = 0;
    

    you can enable it using the statement below:

    SET foreign_key_checks = 1;
    

    UNIQUE

    The UNIQUE constraint is either column constraint or table constraint that defines a rule that constrains values in a column or a group of columns to be unique.

    To add the UNIQUE constraint to a column, you use the following syntax:

    CREATE TABLE table_1(
        column_name_1  data_type UNIQUE,
    );
    

    Or you can define the UNIQUE constraint as the table constraint as follows:

    CREATE TABLE table_1(
     
       ...
       column_name_1 data_type,
       column_name_2 data type,
       ...
       UNIQUE(column_name_1,column_name_2)
    );
    

    If you want to assign a specific name to a UNIQUE constraint, you use the CONSTRAINT clause as follows:

    CREATE TABLE table_1(
       ...
       column_name_1 data_type,
       column_name_2 data type,
       ...
       CONSTRAINT constraint_name UNIQUE(column_name_1,column_name_2)
    );
    

    To remove a UNIQUE constraint, you use can use DROP INDEX or ALTER TABLE statement as follows:

    DROP INDEX index_name ON table_name;
    
    ALTER TABLE table_name
    DROP INDEX index_name;
    

    Adding a UNIQUE constraint to a table that already exists

    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name UNIQUE (column_list);
    

    Managing Database Index

    A database index, or just index, helps speed up the retrieval of data from tables. When you query data from a table, first MySQL checks if the indexes exist, then MySQL uses the indexes to select exact physical corresponding rows of the table instead of scanning the whole table.

    A database index is similar to an index of a book. If you want to find a topic, you look up in the index first, and then you open the page that has the topic without scanning the whole book.

    Notice that all primary key columns are in the primary index of the table automatically.

    Creating MySQL Index

    CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    USING [BTREE | HASH | RTREE] 
    ON table_name (column_name [(length)] [ASC | DESC],...)
    

    Removing Indexes

    DROP INDEX index_name ON table_name
    

    UNIQUE INDEX

    To create a UNIQUE index, you use the CREATE UNIQUE INDEX statement as follows:

    CREATE UNIQUE INDEX index_name
    ON table_name(index_column_1,index_column_2,...);
    

    The following statement illustrates how to create a unique constraint when you create a table.

    CREATE TABLE table_name(
    ...
       UNIQUE KEY(index_column_,index_column_2,...) 
    );
    

    If you want to add a unique constraint to an existing table, you can use the ALTER TABLE statement as follows:

    ALTER TABLE table_name
    ADD CONSTRAINT constraint_name UNIQUE KEY(column_1,column_2,...);
    
    • UNIQUE Index & NULL

    MySQL considers NULL values as distinct values. Therefore, you can have multiple NULL values in the UNIQUE index.

    Refenrence

    Basic MySQL Tutorial

    相关文章

      网友评论

          本文标题:MySQL Tutorial: part 3

          本文链接:https://www.haomeiwen.com/subject/evluaxtx.html