sql --5.将当前日期赋值给一个日期时间型的变量,并分别输出当前的年、月、日。 --6.定义一个字符串变量,并赋值为“数据库技术与实践”。请将其中的“技术”替换为“原理应用”。 --7.在商品信息表中根据商品价格设置每种商品的等级,并在商品信息表中增加“等级”属性列,最后所有的商品都根据价格划分成了相应的等级,用游标实现。等级标识如下所示: --价格<100 等级:价格便宜 --价格在100-1000之间 等级:价格中等 --价格在1000以上 等级:价格昂贵
时间: 2024-02-15 12:04:17 浏览: 75
5. SQL语句实现如下:
```sql
DECLARE @currentDate DATETIME
SET @currentDate = GETDATE()
SELECT
YEAR(@currentDate) AS 年,
MONTH(@currentDate) AS 月,
DAY(@currentDate) AS 日
```
输出结果为:
```
年 月 日
------------------
2021 8 16
```
这里使用了 `GETDATE()` 函数获取当前日期时间,并将其赋值给变量 `@currentDate`。然后使用 `YEAR`、`MONTH` 和 `DAY` 函数分别获取当前日期的年、月、日。
6. SQL语句实现如下:
```sql
DECLARE @str VARCHAR(50)
SET @str = '数据库技术与实践'
SET @str = REPLACE(@str, '技术', '原理应用')
SELECT @str AS 替换后的字符串
```
输出结果为:
```
替换后的字符串
----------------
数据库原理应用与实践
```
这里使用了 `REPLACE` 函数将字符串变量 `@str` 中的 “技术” 替换为 “原理应用”。
7. SQL语句实现如下:
```sql
DECLARE @price FLOAT
DECLARE @level VARCHAR(10)
DECLARE product_cursor CURSOR FOR
SELECT 商品编号, 价格 FROM 商品信息表
OPEN product_cursor
FETCH NEXT FROM product_cursor INTO @product_id, @price
WHILE @@FETCH_STATUS = 0
BEGIN
IF @price < 100
SET @level = '价格便宜'
ELSE IF @price >= 100 AND @price <= 1000
SET @level = '价格中等'
ELSE
SET @level = '价格昂贵'
UPDATE 商品信息表 SET 等级 = @level WHERE 商品编号 = @product_id
FETCH NEXT FROM product_cursor INTO @product_id, @price
END
CLOSE product_cursor
DEALLOCATE product_cursor
```
这里使用了游标 `product_cursor` 遍历商品信息表中的每个商品,根据商品的价格设置相应的等级,并使用 `UPDATE` 语句将等级信息更新到商品信息表中。最后,关闭游标并释放资源。