查询所有姓'林',且全名为2个汉字的读者的姓名、性别、年龄(rname, rsex, rage)
时间: 2024-03-05 10:49:07 浏览: 141
查询语句如下:
```
SELECT rname, rsex, YEAR(CURDATE())-rbirth AS rage
FROM readers
WHERE rname LIKE '林__' AND CHAR_LENGTH(rname) = 2;
```
解释:这里使用了LIKE运算符进行模糊匹配,其中'_'表示匹配任意一个字符,因此'林__'表示匹配姓'林'且名字为两个汉字的读者。CHAR_LENGTH函数用于计算字符串长度,这里用于判断读者姓名是否为两个汉字。年龄的计算使用YEAR和CURDATE函数,其中CURDATE函数获取当前日期,YEAR函数获取年份。注意,这里计算的是“虚岁”,即按照生日计算的年龄。
相关问题
"设有一个数据库Library,包括Book、Borrow、Reader 3个关系模式。 Book( Bno, Btitle, Bauthor, Bprice) Borrow( Rno, Bno, BorrowDate, ReturnDate) Reader (Rno, Rname, Rsex, Rage, Reducation) 针对这个数据库写出如下的操作的SQL语句。 说明:1)表名与字段名要严格与题目一致。2)关键字要写正确、完整,例如:sel ect 不正确,因为中间多了空格。 3)除非必须,如书名是'数据库',不要用中文。英文大小写没关系。" 查询所有读者的基本情况和借书情况,列出读者姓名、读者年龄、图书标题。没有借书的也列出读者姓名和读者年龄 查询所有姓'林',且全名为2个汉字的读者的姓名、性别、年龄(rname, rsex, rage) 查询所有年龄(rage)比读者编号为'r03'的读者年龄大的读者信息 查询所有的读者编号、读者姓名和出生年份。 查询书名称中包含'数据库'且图书价格低于50的图书信息
1. 查询所有读者的基本情况和借书情况,列出读者姓名、读者年龄、图书标题。没有借书的也列出读者姓名和读者年龄。
```sql
SELECT Reader.Rname, Reader.Rage, Book.Btitle FROM Reader LEFT JOIN Borrow ON Reader.Rno = Borrow.Rno LEFT JOIN Book ON Borrow.Bno = Book.Bno;
```
2. 查询所有姓'林',且全名为2个汉字的读者的姓名、性别、年龄(rname, rsex, rage)。
```sql
SELECT Rname, Rsex, Rage FROM Reader WHERE Rname LIKE '林__';
```
3. 查询所有年龄(rage)比读者编号为'r03'的读者年龄大的读者信息。
```sql
SELECT * FROM Reader WHERE Rage > (SELECT Rage FROM Reader WHERE Rno = 'r03');
```
4. 查询所有的读者编号、读者姓名和出生年份。
```sql
SELECT Rno, Rname, YEAR(GETDATE()) - Rage AS BirthYear FROM Reader;
```
5. 查询书名称中包含'数据库'且图书价格低于50的图书信息。
```sql
SELECT * FROM Book WHERE Btitle LIKE '%数据库%' AND Bprice < 50;
```
利用SQL代码建立图书借阅数据库 在图书借阅数据库中建立图书、读者和借阅三个表,其结构为: 图书Book(书号Bno,书名Bname,出版社Pub,作者Author,类别Cat,定价Price) 读者Reader(读者编号Rno,姓名Rname,性别Rsex,部门Rdept) 借阅BR(读者编号Rno,书号Bno,借阅日期Bdate,归还日期Rdate) 要求为属性选择合适的数据类型,定义每个表的主码。
以下是建立图书借阅数据库的 SQL 代码:
创建图书表:
```
CREATE TABLE Book (
Bno INT PRIMARY KEY,
Bname VARCHAR(50),
Pub VARCHAR(50),
Author VARCHAR(50),
Cat VARCHAR(50),
Price DECIMAL(10, 2)
);
```
创建读者表:
```
CREATE TABLE Reader (
Rno INT PRIMARY KEY,
Rname VARCHAR(50),
Rsex VARCHAR(10),
Rdept VARCHAR(50)
);
```
创建借阅表:
```
CREATE TABLE BR (
Rno INT,
Bno INT,
Bdate DATE,
Rdate DATE,
PRIMARY KEY (Rno, Bno),
FOREIGN KEY (Rno) REFERENCES Reader(Rno),
FOREIGN KEY (Bno) REFERENCES Book(Bno)
);
```
在图书表中,书号(Bno)是主键,定价(Price)使用 DECIMAL 类型存储。
在读者表中,读者编号(Rno)是主键,性别(Rsex)使用 VARCHAR 类型存储。
在借阅表中,使用 Rno 和 Bno 作为联合主键,同时设置了外键约束,确保借阅记录中的读者编号和书号都存在于对应的表中。借阅日期(Bdate)和归还日期(Rdate)使用 DATE 类型存储。
阅读全文