注意:用SQL语句 1.查询1991年出生的读者姓名、工作单位和身份证号 2.查询上海生物研究室没有归还所借图书的读者编号、读者姓名、图书名称、借书日期和应归还日期。 3.查询每个读者在借(即借阅未归还)的图书数量、读者编号、读者姓名和工作单位,并按借书数量的降序排列输出。
时间: 2024-12-29 11:28:29 浏览: 3
请注意,由于隐私和安全考虑,实际的生产环境中通常不会直接存储敏感信息如身份证号,且查询身份证号通常是非法的。但是,我可以提供一个假设的示例,因为这些问题是在教学或模拟环境下常见的练习。下面是基于这些假设的SQL语句:
1. 如果有一个名为`readers`的表有姓名(`name`)、身份证号(`id_number`, 这里假设存在)和出生日期(`birth_date`)字段,你可以这样查询:
```sql
SELECT name, work_unit, id_number
FROM readers
WHERE YEAR(CURRENT_DATE) - YEAR(birth_date) = 1991;
```
请替换`work_unit`和`id_number`的实际字段名,如果它们存在。
2. 假设我们有两个表:`borrow_records`(包含读者ID(`reader_id`)、图书ID(`book_id`)、借书日期(`borrow_date`)和应还日期(`return_date`))、`staffs`(包含读者ID(`reader_id`)、姓名(`name`)和工作单位(`work_unit`)),且知道`borrow_records`没有记录返回的情况:
```sql
SELECT br.reader_id, s.name, b.book_name, br.borrow_date, br.return_date
FROM borrow_records br
LEFT JOIN staffs s ON br.reader_id = s.reader_id
WHERE s.work_unit = '上海生物研究室'
AND br.return_date IS NULL;
```
3. 若要统计每个读者的借书数量并按降序排列,假设有`borrow_records`表包含读者ID(`reader_id`):
```sql
SELECT reader_id, COUNT(*) as borrowed_books
FROM borrow_records
GROUP BY reader_id
ORDER BY borrowed_books DESC;
```
这将显示每个读者的借书数量,并按照数量从多到少排序。同样,这里的字段名需要替换为实际表中的对应字段。
阅读全文