SQL练习:图书管理与查询
需积分: 33 183 浏览量
更新于2024-09-07
收藏 37KB DOCX 举报
"这些练习题主要涉及SQL语言的基础操作,包括创建表、更新数据、查询数据、连接查询、创建视图以及权限管理等。"
在SQL语言中,创建表是数据库操作的基础,例如创建图书表的SQL语句:
```sql
CREATE TABLE book (
Book_id CHAR(10) PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
Author VARCHAR(20),
Publish VARCHAR(30),
Price DECIMAL(6,2)
);
```
这个语句创建了一个名为`book`的表,包含了图书ID(主键)、书名(非空)、作者、出版社和价格字段。
更新数据是数据库维护的重要环节,如将编号为“NEU1105101”的图书的定价改为50元,可以使用:
```sql
UPDATE book
SET price = 50
WHERE book_id = 'NEU1105101';
```
查询操作则涵盖了多种类型,例如查询所有男性读者的姓名和出生日期:
```sql
SELECT name, birthdate
FROM reader
WHERE sex = '男';
```
查询不同出版社并按升序排列:
```sql
SELECT publish
FROM book
ORDER BY publish ASC;
```
多表连接查询在处理复杂数据关系时十分常见,比如查询借阅过20到40元图书的读者姓名:
```sql
SELECT Name
FROM borrow
JOIN book ON borrow.book_id = book.book_id
JOIN reader ON borrow.reader_id = reader.reader_id
WHERE price BETWEEN 20 AND 40;
```
统计每个读者的借阅数量:
```sql
SELECT COUNT(book_id), reader_id
FROM borrow
JOIN book ON borrow.book_id = book.book_id
JOIN reader ON borrow.reader_id = reader.reader_id
GROUP BY reader_id;
```
权限管理用于控制用户对数据的访问,给用户user001分配对图书表的更新权限:
```sql
GRANT UPDATE ON book TO user001;
```
创建视图可以简化查询,例如创建一个名为view001的视图,展示出版社信息:
```sql
CREATE VIEW view001 AS
SELECT publish, COUNT(book_id), MAX(price), MIN(price)
FROM book
GROUP BY publish;
```
最后,查询出版图书超过100本的出版社及其数量:
```sql
SELECT COUNT(book_id), publish
FROM book
GROUP BY publish
HAVING COUNT(book_id) > 100;
```
这里的`HAVING`子句用于过滤分组后的结果,因为它不能与聚合函数一起在`WHERE`子句中使用。
2018-11-10 上传
2023-05-31 上传
2014-04-22 上传
2015-06-30 上传
2020-05-24 上传
qq_39067199
- 粉丝: 0
- 资源: 1
最新资源
- sicherheit_ws:安全概念讲习班
- Bregman Cookbook:此工具箱提供基于 Bregman Iterations 的信号/图像/3D 处理-matlab开发
- 下一个大学
- fccWebDesign:在此仓库内,有我为在线课程(在freeCodeCamp上进行的响应式Web设计认证)制作的项目
- dchr.host:端到端K8s CICD练习
- 4ampr-fj2021-paginas-web-semana-03:专业人士
- Accuinsight-1.0.36-py2.py3-none-any.whl.zip
- vicms:用于python-flask的迷你内容管理架构
- Atcoder
- Pure
- irawansyahh.github.io:我的个人网站
- ask:一种在 Node 或浏览器中构建 HTTP 请求的简单、可链接的方式
- Dark Crystals New Tab Game Theme-crx插件
- 库存-REST-API:REST APIのテスト
- JavascriptVerletAlgorithm
- antiwasm:Web程序集objdump