使用SQL语句进行数据查询与过滤
发布时间: 2024-03-02 06:46:19 阅读量: 13 订阅数: 18
# 1. SQL语句基础知识
#### 1.1 SQL语句概述
SQL(Structured Query Language)是一种用于管理关系数据库系统的标准化语言。它提供了对数据库进行查询、更新、删除等操作的功能,同时也包括了对数据库模式创建和修改的能力。
#### 1.2 SQL语句分类
SQL语句可以分为以下几类:数据查询语句(如SELECT)、数据操纵语句(如INSERT、UPDATE、DELETE)、数据定义语句(如CREATE、ALTER、DROP)以及数据控制语句(如GRANT、REVOKE)等。
#### 1.3 SQL语句的基本结构
SQL语句通常由关键字、表名、列名、运算符等组成。基本结构包括SELECT-FROM-WHERE等部分,用于指定要查询或操作的数据。
#### 1.4 SQL语句的执行流程
SQL语句的执行流程包括词法分析、语法分析、语义分析、逻辑优化、物理执行等阶段,其中涉及到从SQL语句到实际执行的多个步骤。
以上就是SQL语句基础知识的介绍,接下来我们将深入了解数据查询基础。
# 2. 数据查询基础
### 2.1 SELECT语句详解
在SQL中,SELECT语句用于从数据库表中查询数据。该语句可以指定要查询的列,也可以使用通配符\*来表示查询所有列。此外,还可以对查询结果进行排序、去重、聚合等操作。
示例代码(Python):
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 执行SELECT语句
cursor.execute("SELECT id, name, age FROM students")
# 获取查询结果
results = cursor.fetchall()
for row in results:
id = row[0]
name = row[1]
age = row[2]
# 打印结果
print(f"ID={id}, Name={name}, Age={age}")
# 关闭连接
conn.close()
```
代码解释:
- 连接到SQLite数据库
- 执行SELECT语句,查询`students`表中的id、name、age列数据
- 使用fetchall()获取查询结果,并逐行打印
代码运行结果:
```
ID=1, Name=John, Age=20
ID=2, Name=Emily, Age=22
ID=3, Name=Michael, Age=21
```
### 2.2 WHERE子句的使用
WHERE子句用于对查询结果进行条件过滤,只返回满足特定条件的数据行。
示例代码(Java):
```java
import java.sql.*;
public class Main {
public static void main(String[] args) {
String url = "jdbc:sqlite:example.db";
try (Connection conn = DriverManager.getConnection(url);
Statement statement = conn.createStatement()) {
// 执行SELECT语句带有WHERE子句
ResultSet resultSet = statement.executeQuery("SELECT * FROM students WHERE age > 20");
// 遍历结果集
while (resultSet.next()) {
System.out.println("Name: " + resultSet.getString("name") + ", Age: " + resultSet.getInt("age"));
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
```
代码解释:
- 使用Java连接到SQLite数据库
- 执行带有WHERE子句的SELECT语句,筛选出年龄大于20的学生数据
- 遍历结果集,并打印符合条件的数据
代码运行结果:
```
Name: Emily, Age: 22
Name: Michael, Age: 21
```
### 2.3 ORDER BY子句的功能
ORDER BY子句用于对查询结果进行排序,可以按照一个或多个列进行升序或降序排列。
示例代码(Go):
```go
package main
import (
"database/sql"
"fmt"
_ "github.com/mattn/go-sqlite3"
)
func main() {
db, _ := sql.Open("sqlite3", "example.db")
defer db.Close()
rows, _ := db.Query("SELECT * FROM students ORDER BY age DESC")
for r
```
0
0