MySQL——表的增删查改

本文详细介绍了MySQL数据库的CRUD操作,包括如何创建表并进行数据插入、查询、更新和删除。讲解了各种查询条件如WHERE、BETWEEN、IN等,以及排序、分页和聚合函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

增删查改CRUD:Create(创建),Retrieve(读取),Update(更新),Delete(删除)

一.Create

创建一个表用来保存学生信息

 1.单行数据 + 全列插入

 

 2. 多行数据 + 指定列插入

 3.插入否则更新

当主键或唯一键发生冲突,可以选择进行同步更新操作语法:

INSERT INTO students (id, sn, name) VALUES (1, 1, 'zhang')
ON DUPLICATE KEY UPDATE sn = 1, name = 'zhang';
Query OK, 2 rows affected (0.47 sec)
-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,并且数据已经被更新
-- 通过 MySQL 函数获取受到影响的数据行数
SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
|      2      |
+-------------+

4.替换

若没有冲突则直接插入,有冲突则删除后再插入。

二.Retrieve

select列

 1.全列查询

但是通常不建议使用*进行全列查询。

2.指定列查询

 

3.查询字段表达式 

3.1表中不包含的字段

 3.2表达式包含一个字段

3.3表达式包含多个字段

 

 4.为查询结果指定别名

### PHPStudy 连接 MySQL 数据库并进行增删查改操作 #### 1. 环境准备 在使用 PHPStudy 进行开发前,需确保已安装 PHPStudy 并成功启动 Apache 和 MySQL 服务。可以通过访问 `http://localhost` 来验证环境是否正常运行[^2]。 #### 2. 创建数据库 假设我们需要创建一个名为 `test_db` 的数据库以及一张用于测试的格 `users`,其结构如下: ```sql CREATE DATABASE test_db; USE test_db; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, email VARCHAR(100) ); ``` 此 SQL 脚本可通过 phpMyAdmin 或命令行执行完成[^2]。 #### 3. 编写连接代码 以下是通过 PHP 使用 mysqli 扩展连接到 MySQL 数据库的基础代码: ```php <?php $host = '127.0.0.1'; // 主机名 $username = 'root'; // 用户名 $password = ''; // 密码,默认为空 $dbname = 'test_db'; // 数据库名称 // 创建连接 $conn = new mysqli($host, $username, $password, $dbname); // 检测连接状态 if ($conn->connect_error) { die('Connection failed: ' . $conn->connect_error); } echo "Connected successfully"; ?> ``` 这段代码实现了与 MySQL 数据库的基本连接功能,并检测了连接的状态[^2]。 #### 4. 插入数据 (Insert) 向 `users` 中插入一条记录的操作可按以下方式实现: ```php $sql = "INSERT INTO users (name, age, email) VALUES ('John Doe', 30, 'john@example.com')"; if ($conn->query($sql) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } ``` 该脚本会尝试将新用户的信息存入数据库,并反馈结果给调用者[^2]。 #### 5. 查询数据 (Select) 查询所有用户的详细信息可以这样处理: ```php $sql = "SELECT id, name, age, email FROM users"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " Age:" . $row["age"] ." Email:". $row["email"] ."<br>"; } } else { echo "0 results"; } ``` 这里展示了如何遍历查询的结果集并将每条记录打印出来。 #### 6. 更新数据 (Update) 如果需要更改某位用户的年龄,则可以用下面的方法来更新对应的字段值: ```php $sql = "UPDATE users SET age=35 WHERE name='John Doe'"; if ($conn->query($sql) === TRUE) { echo "Record updated successfully"; } else { echo "Error updating record: " . $conn->error; } ``` 这条语句定位到了名字为 John Doe 的用户,并将其年龄设置为了新的数值。 #### 7. 删除数据 (Delete) 最后,当不再需要某些特定的数据时,可以选择删除它们: ```php $sql = "DELETE FROM users WHERE name='John Doe'"; if ($conn->query($sql) === TRUE) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . $conn->error; } $conn->close(); ``` 以上即完成了整个 CRUD 流程中的最后一个环节 —— Delete 功能[^2]。 ### 注意事项 - **安全性**:实际应用中应考虑防止 SQL 注入攻击等问题,推荐采用预处理语句(prepared statements)。 - **编码问题**:建议每次请求开始处加入字符集声明以避免乱码现象发生,例如 `$conn->set_charset("utf8")`[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学c的长弓狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值