数据库MySQL基础——增删查改

本文介绍了SQL语言的基础操作,包括数据库的选择、数据类型的介绍、增删查改等基本SQL语句的使用方法。并详细解释了如何通过WHERE、GROUP BY、ORDER BY及LIMIT等子句进行数据筛选。

一.数据库的数据类型与配置

1.数据库

数据库可以理解为存储数据的一个库,以表和 单元的形式存储。
常见数据库有:

(1)SQL Server:微软出品,中小型数据库,不过只能运行在windows平台上。

(2)Oracle:功能强大。适用于数据量庞大的情况。

(3)MySQL:针对中小型数据存储。

(4)Postgre SQL:类似于MySQL,开源,免费。

(5)DB2:IBM出品的非常庞大的数据库,功能强大。

2.数据库的结构


3.数据库管理工具

1)phpMyAdmin:操作简便。
(2)MySQL GUI Tools:MySQL官方出品,简单好用。

4.字段的数据类型


二.常用增删查改SQL语句的语法格式

1.增加数据

(1)insert into 表 (字段1,字段2.…) values (值1,值2.…)
注意:字段跟值的顺序是对应的。

(2)insert into  表  values (值1,值2.…)

这里的值对应的字段是数据库里字段的顺序,不能颠倒,否则会对应出错,这样会造成数据错位。

(3)insert into  表  set 字段1=值1,字段2=值2,....
使字段名对应一个值。

2.查询数据

查询是SQL语句中使用最频繁的语句,因为大多数的增删改操作的基础操作都是查询。
(1)select  字段1,字段2,.....  from  表
(2)select  * 或 函数(字段) from 表

第二种查询方式,星号可以表示要查询的所有字段。当你要查询的字段数目很大时,可以使用这种方法是代码量变得简洁。但是如果需要查询的字段数比较少的话,使用这种方法会影响查询效果,所以当查询字段数较少时,最好采用函数的方式查询。

类似函数:count//统计所有字段
sum(字段)//求某字段的和
avg(字段)//求指定字段的平均值
max(字段)//求指定字段的最大值

(3)select  字段,字段,...... from  表  where  条件

这种方法是查询带条件字段时使用的方法。可以用条件语句来筛选查找的内容。

(4)select  字段,字段,......  from  表  where  字段  like '%值%'
(5)select  字段,字段,......  from  表  where  字段  not like '%值%'

以上两种方法表示模糊查询,%表示匹配任意字符和任意次数

(6)select  字段,字段,......  from  表  where  字段  in (值,值)
(7)select  字段,字段,......  from  表  where  字段  not in (值,值)

以上两种方法表示精确查询,不过不推荐经常使用,因为in函数的效率低下,影响查询效率。

(8)select  字段,字段,......  from  表 group by  字段
group by 表示归组/归类方法,以上方法用来查询不重复项

(9)select  字段,字段,......  from  表 order by  字段 [asc / desc ]
order by 主要是对数据进行排序的操作。
   asc表示对数据正序排序,即从小到大排序。
   desc表示逆序排序,即从大到小排序。


(10)select  字段,字段,......  from  表 limit 起始位, 条数
批量读取数据。例:
.....limit 0, 5//从第1条开始读取5条数据
.....limit 5, 5//从第6条开始读取5条数据
.....limit  5//从第1条开始读取5条数据,简化写法



当出现多种组合的查询时,应当遵循WGOL的顺序规范,即以where,group by,order by,limit顺序进行查找。

例如:查询表user,id倒叙,age小于3岁,不重复职业job,取前10条。
将各个条件翻译成查询语句的话,对应的语句为:order by id descwhere age < 3group by job, limit 10。
他们的查询顺序应当遵循WGOL规范,所以这个查询语句为:
select  *  from user  where age < 3group by joborder by id desc limit 10;

3.修改数据

updata  表  set  字段=值,字段=值;

4.删除数据

delete  from  表;

修改和删除操作是直接对数据库进行操作的,删除和修改之后不可恢复,所以使用的时候一定要谨慎。这两个操作都可以先进过WGOL操作之后再进行修改或者删除工作。














### 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]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值