Detailed graphic and text explanation of MySQL learning foreign keys
1. For example, there are two tables "category table" and "product table". In order to indicate which category the product belongs to, usually we will add a column to the product table to store the classification cid information. This column is called : foreign key.
At this time, the classification table category is called the main table, and cid is called the primary key; the product table products is called the slave table, and category_id is called the foreign key.
Features of foreign keys: 1) The value of the foreign key of the secondary table is a reference to the primary key of the primary table
2) The type of the foreign key of the secondary table must be consistent with the primary key of the primary table.
The purpose of using foreign keys: to ensure data integrity
2. First create a database web09 in the command prompt, and create two tables category and product. The statements are as follows:
Insert multiple pieces of data respectively
eg.insert into category(cid,cname) values('c001','家电'); insert into product(pid,pname,price,category_id) values('p001','联想','5000','c001');
is displayed as follows:
3. Declare foreign key constraints
Syntax: alter table from table add [constraint] [foreign key name] foreign key (from table foreign key field name) references main table (primary key of main table);
[Foreign key name] is used to delete foreign key constraints. It is generally recommended to end with "_fk"
After the constraint is declared, if I want to delete the category table The data of cid=c003 cannot be deleted
#4. Release the constraint
Syntax: alter table drop foreign key from the table Foreign key name
Continue to delete the data with cid=c003 in the category table. You can delete it
Note: Foreign keys from the slave table cannot be added to the main table. Existing records
The master table cannot delete records that have been referenced in the slave table.
5. One-to-many table creation principle:
6. Many-to-many table creation principle:
The above is the detailed content of Detailed graphic and text explanation of MySQL learning foreign keys. For more information, please follow other related articles on the PHP Chinese website!

MySQL processes data replication through three modes: asynchronous, semi-synchronous and group replication. 1) Asynchronous replication performance is high but data may be lost. 2) Semi-synchronous replication improves data security but increases latency. 3) Group replication supports multi-master replication and failover, suitable for high availability requirements.

The EXPLAIN statement can be used to analyze and improve SQL query performance. 1. Execute the EXPLAIN statement to view the query plan. 2. Analyze the output results, pay attention to access type, index usage and JOIN order. 3. Create or adjust indexes based on the analysis results, optimize JOIN operations, and avoid full table scanning to improve query efficiency.

Using mysqldump for logical backup and MySQLEnterpriseBackup for hot backup are effective ways to back up MySQL databases. 1. Use mysqldump to back up the database: mysqldump-uroot-pmydatabase>mydatabase_backup.sql. 2. Use MySQLEnterpriseBackup for hot backup: mysqlbackup--user=root-password=password--backup-dir=/path/to/backupbackup. When recovering, use the corresponding life

The main reasons for slow MySQL query include missing or improper use of indexes, query complexity, excessive data volume and insufficient hardware resources. Optimization suggestions include: 1. Create appropriate indexes; 2. Optimize query statements; 3. Use table partitioning technology; 4. Appropriately upgrade hardware.

MySQL view is a virtual table based on SQL query results and does not store data. 1) Views simplify complex queries, 2) Enhance data security, and 3) Maintain data consistency. Views are stored queries in databases that can be used like tables, but data is generated dynamically.

MySQLdiffersfromotherSQLdialectsinsyntaxforLIMIT,auto-increment,stringcomparison,subqueries,andperformanceanalysis.1)MySQLusesLIMIT,whileSQLServerusesTOPandOracleusesROWNUM.2)MySQL'sAUTO_INCREMENTcontrastswithPostgreSQL'sSERIALandOracle'ssequenceandt

MySQL partitioning improves performance and simplifies maintenance. 1) Divide large tables into small pieces by specific criteria (such as date ranges), 2) physically divide data into independent files, 3) MySQL can focus on related partitions when querying, 4) Query optimizer can skip unrelated partitions, 5) Choosing the right partition strategy and maintaining it regularly is key.

How to grant and revoke permissions in MySQL? 1. Use the GRANT statement to grant permissions, such as GRANTALLPRIVILEGESONdatabase_name.TO'username'@'host'; 2. Use the REVOKE statement to revoke permissions, such as REVOKEALLPRIVILEGESONdatabase_name.FROM'username'@'host' to ensure timely communication of permission changes.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Chinese version
Chinese version, very easy to use

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
