当前位置:实例文章 » 其他实例» [文章]MySQL五种约束类型(普通 /自增主键,外键等) + 进阶查询(聚合查询,内 /外连接查询,自连接查询,子查询,合并查询)

MySQL五种约束类型(普通 /自增主键,外键等) + 进阶查询(聚合查询,内 /外连接查询,自连接查询,子查询,合并查询)

发布人:shili8 发布时间:2025-02-08 07:53 阅读次数:0

**MySQL五种约束类型**

在数据库设计中,约束是用来限制表结构或数据的规则。MySQL支持五种约束类型:普通主键、自增主键、外键、唯一约束和检查约束。

###1. 普通主键普通主键是一种唯一标识每个记录的值。它通常用于作为表的主要索引。

sqlCREATE TABLE users (
 id INT PRIMARY KEY,
 name VARCHAR(255),
 email VARCHAR(255)
);


在上面的例子中,`id`列被定义为主键,这意味着它将是唯一标识每个记录的值。

###2. 自增主键自增主键是一种特殊类型的主键,它会自动增加一个数字,每当新记录被插入到表中时。

sqlCREATE TABLE users (
 id INT AUTO_INCREMENT PRIMARY KEY,
 name VARCHAR(255),
 email VARCHAR(255)
);


在上面的例子中,`id`列被定义为自增主键,这意味着每当新记录被插入到表中时,它的值将自动增加。

###3. 外键外键是一种引用了另一个表中的数据的列。它用于维护数据库之间的关系。

sqlCREATE TABLE orders (
 id INT PRIMARY KEY,
 user_id INT,
 FOREIGN KEY (user_id) REFERENCES users(id)
);


在上面的例子中,`orders`表中的 `user_id` 列被定义为外键,它引用了 `users` 表中的 `id` 列。

###4. 唯一约束唯一约束是一种保证每个值都是唯一的规则。它可以应用于任何列。

sqlCREATE TABLE users (
 id INT PRIMARY KEY,
 email VARCHAR(255) UNIQUE);


在上面的例子中,`email` 列被定义为唯一约束,这意味着每个电子邮件地址必须是唯一的。

###5. 检查约束检查约束是一种保证某些条件成立的规则。它可以应用于任何列。

sqlCREATE TABLE users (
 id INT PRIMARY KEY,
 age INT CHECK (age >18)
);


在上面的例子中,`age` 列被定义为检查约束,这意味着每个用户的年龄必须大于18 岁。

**进阶查询**

###1. 聚合函数聚合函数是用来处理多条记录的函数。它们可以用于计算总和、平均值、最大值等。

sqlSELECT SUM(salary) FROM employees;


在上面的例子中,`SUM()` 函数被用于计算所有员工的工资总和。

###2. 内连接内连接是用来连接两个表的方法。它会返回两张表中都有的记录。

sqlSELECT * FROM ordersINNER JOIN customers ON orders.customer_id = customers.id;


在上面的例子中,`INNER JOIN` 关键字被用于连接 `orders` 表和 `customers` 表。

###3. 外连接外连接是用来连接两个表的方法。它会返回两张表中都有的记录,以及其中一张表中没有匹配记录的记录。

sqlSELECT * FROM ordersLEFT JOIN customers ON orders.customer_id = customers.id;


在上面的例子中,`LEFT JOIN` 关键字被用于连接 `orders` 表和 `customers` 表。

###4. 自连接自连接是用来连接一个表的方法。它会返回该表中所有记录。

sqlSELECT * FROM employees AS e1INNER JOIN employees AS e2 ON e1.id = e2.manager_id;


在上面的例子中,`employees` 表被连接到自己身上,以便可以访问每个员工的经理信息。

###5. 子查询子查询是用来在一个查询中嵌入另一个查询的方法。它会返回子查询中的结果。

sqlSELECT * FROM ordersWHERE order_id IN (
 SELECT id FROM customers WHERE country = 'USA'
);


在上面的例子中,子查询被用于筛选出来自美国的客户订单。

###6. 合并查询合并查询是用来连接两个表的方法。它会返回两张表中都有的记录,以及其中一张表中没有匹配记录的记录。

sqlSELECT * FROM ordersUNION ALL SELECT * FROM customers;


在上面的例子中,`UNION ALL` 关键字被用于合并 `orders` 表和 `customers` 表。

相关标签:mysql数据库
其他信息

其他资源

Top