sql数据库--1.查询书名、作者、页数,并根据页数多少显示信息:NULL显示未知,<=0显示有误,<20显示超薄,<300显示薄,<700显示厚,>=700显示超厚。
时间: 2023-12-23 15:05:51 浏览: 25
可以使用以下 SQL 语句实现:
```
SELECT
book_name AS '书名',
author AS '作者',
page_num AS '页数',
CASE
WHEN page_num IS NULL THEN '未知'
WHEN page_num <= 0 THEN '有误'
WHEN page_num < 20 THEN '超薄'
WHEN page_num < 300 THEN '薄'
WHEN page_num < 700 THEN '厚'
ELSE '超厚'
END AS '页数状态'
FROM
books;
```
其中,使用 `CASE` 语句根据页数的不同情况显示不同的信息。结果会显示书名、作者、页数以及页数状态。
相关问题
java 1.从配置文件中读取数据库连接信息 2.连接不同数据库,并查询出数据,显示到控制台
好的,针对你的问题,我可以给出以下的 Java 代码示例:
1. 从配置文件中读取数据库连接信息:
```java
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class DBConfig {
private static Properties props = new Properties();
static {
try {
FileInputStream in = new FileInputStream("config.properties");
props.load(in);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getDriver() {
return props.getProperty("driver");
}
public static String getUrl() {
return props.getProperty("url");
}
public static String getUsername() {
return props.getProperty("username");
}
public static String getPassword() {
return props.getProperty("password");
}
}
```
其中,`config.properties` 是配置文件的名称,包含以下内容:
```
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
```
2. 连接不同数据库,并查询出数据,显示到控制台:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBTest {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 从配置文件中读取数据库连接信息
String driver = DBConfig.getDriver();
String url = DBConfig.getUrl();
String username = DBConfig.getUsername();
String password = DBConfig.getPassword();
// 加载 JDBC 驱动
Class.forName(driver);
// 获取连接
conn = DriverManager.getConnection(url, username, password);
// 创建 Statement
stmt = conn.createStatement();
// 执行查询语句,并获取结果集
String sql = "SELECT * FROM student";
rs = stmt.executeQuery(sql);
// 输出结果集中的数据到控制台
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("id=" + id + ", name=" + name + ", age=" + age);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
这段代码会从配置文件中读取数据库连接信息,然后连接到数据库并执行查询操作,最后将查询结果输出到控制台。需要注意的是,这里的示例是连接 MySQL 数据库的,如果你要连接其他类型的数据库,需要使用相应的 JDBC 驱动。
使用SQL语句实现1.创建函数fn_getauthor,实现根据书名返回作者;—数据库名:library00
在 library00 数据库中创建函数 fn_getauthor 的 SQL 语句如下:
```
CREATE FUNCTION fn_getauthor (@bookname VARCHAR(50))
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @author VARCHAR(50)
SELECT @author = author
FROM books
WHERE bookname = @bookname
RETURN @author
END
```
该函数的作用是根据输入的书名返回该书的作者。在函数中,首先声明了一个变量 @author,然后使用 SELECT 语句从 books 表中查询该书的作者。
使用方法示例:
```
SELECT dbo.fn_getauthor('The Great Gatsby')
```
该语句会返回 The Great Gatsby 这本书的作者名字。