当前位置:实例文章 » 其他实例» [文章]MySQL 约束、聚合查询和联合查询练习

MySQL 约束、聚合查询和联合查询练习

发布人:shili8 发布时间:2024-12-25 12:34 阅读次数:0

**MySQL 约束、聚合查询和联合查询练习**

### 一、约束在 MySQL 中,约束是用来限制表中数据的完整性的。约束可以应用到一个或多个列上。

####1. 主键约束(Primary Key)

主键约束用于唯一标识一条记录。每张表只能有一个主键。

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


在这个例子中,`id` 列作为主键。

####2. 唯一约束(Unique)

唯一约束用于保证某个列的值是唯一的。一个表可以有多个唯一约束。

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


在这个例子中,`email` 列作为唯一约束。

####3. 检查约束(Check)

检查约束用于保证某个列的值满足特定的条件。

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


在这个例子中,`age` 列作为检查约束,保证年龄大于18。

####4. 外键约束(Foreign Key)

外键约束用于保证某个列的值存在于另一个表中。

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


在这个例子中,`orders` 表中的 `user_id` 列作为外键约束,保证它的值存在于 `users` 表中。

### 二、聚合查询聚合查询用于从多条记录中取出某些信息并进行统计计算。

####1. COUNT()

COUNT() 函数用于返回表中记录的数量。

sqlSELECT COUNT(*) FROM users;


在这个例子中,会返回 `users` 表中的记录数。

####2. SUM()

SUM() 函数用于返回某个列的值之和。

sqlSELECT SUM(age) FROM users;


在这个例子中,会返回 `users` 表中 `age` 列的值之和。

####3. AVG()

AVG() 函数用于返回某个列的值的平均数。

sqlSELECT AVG(age) FROM users;


在这个例子中,会返回 `users` 表中 `age` 列的值的平均数。

####4. MAX()

MAX() 函数用于返回某个列的最大值。

sqlSELECT MAX(age) FROM users;


在这个例子中,会返回 `users` 表中 `age` 列的最大值。

####5. MIN()

MIN() 函数用于返回某个列的最小值。

sqlSELECT MIN(age) FROM users;


在这个例子中,会返回 `users` 表中 `age` 列的最小值。

### 三、联合查询联合查询用于将两个或多个表中的数据合并起来。

####1. 内连接(INNER JOIN)

内连接用于将两个表中的匹配记录合并起来。

sqlSELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;


在这个例子中,会返回 `users` 和 `orders` 表中匹配的记录。

####2. 左外连接(LEFT OUTER JOIN)

左外连接用于将两个表中的所有记录合并起来,包括左边表中没有匹配记录的右边表中的记录。

sqlSELECT * FROM users LEFT OUTER JOIN orders ON users.id = orders.user_id;


在这个例子中,会返回 `users` 和 `orders` 表中所有记录,包括左边表中没有匹配记录的右边表中的记录。

####3. 右外连接(RIGHT OUTER JOIN)

右外连接用于将两个表中的所有记录合并起来,包括右边表中没有匹配记录的左边表中的记录。

sqlSELECT * FROM users RIGHT OUTER JOIN orders ON users.id = orders.user_id;


在这个例子中,会返回 `users` 和 `orders` 表中所有记录,包括右边表中没有匹配记录的左边表中的记录。

####4. 全外连接(FULL OUTER JOIN)

全外连接用于将两个表中的所有记录合并起来,包括两边表中没有匹配记录的另一边表中的记录。

sqlSELECT * FROM users FULL OUTER JOIN orders ON users.id = orders.user_id;


在这个例子中,会返回 `users` 和 `orders` 表中所有记录,包括两边表中没有匹配记录的另一边表中的记录。

相关标签:mysql
其他信息

其他资源

Top