使用SQL语句,授予stu2对sc表具有select权限,授予stu2对s表具有select权限, 授予stu2对c表具有select权限;授予stu2对c表具有更新属性credit的权限。
时间: 2024-02-23 17:02:20 浏览: 114
可以使用以下 SQL 语句来实现:
```sql
GRANT SELECT ON sc TO stu2;
GRANT SELECT ON s TO stu2;
GRANT SELECT ON c TO stu2;
GRANT UPDATE (credit) ON c TO stu2;
```
这些语句分别授予 stu2 用户对 sc 表、s 表和 c 表的 select 权限,以及对 c 表的 credit 属性的更新权限。
相关问题
使用sql语句在SQL Server 环境中授予stu1对sc表具有select和insert权限,授予stu1对s表具有select,update, insert和delete权限, 授予stu1对c表具有select,update,insert和delete权限。
授予stu1对sc表具有select和insert权限:
```
GRANT SELECT, INSERT ON sc TO stu1;
```
授予stu1对s表具有select,update, insert和delete权限:
```
GRANT SELECT, UPDATE, INSERT, DELETE ON s TO stu1;
```
授予stu1对c表具有select,update,insert和delete权限:
```
GRANT SELECT, UPDATE, INSERT, DELETE ON c TO stu1;
```
以上是SQL Server中授予权限的语法,其中GRANT关键字表示授权,后面跟着具体的权限和被授权的用户或角色。
本题目要求编写SQL语句, 在stu表 和 sc表 中查询所有学生的平均成绩,如果某学生尚未选修课程或成绩为空时,平均分计为0。
可以使用左连接和聚合函数来实现该查询:
```
SELECT stu.id, COALESCE(AVG(sc.score), 0) AS avg_score
FROM stu
LEFT JOIN sc ON stu.id = sc.id
GROUP BY stu.id;
```
上述 SQL 语句中,使用了 LEFT JOIN 将 stu 表与 sc 表连接起来,保证了即使学生尚未选修课程或成绩为空时,该学生也会出现在结果集中。然后使用 AVG 函数计算每个学生的平均成绩,并使用 COALESCE 函数将 NULL 值转换为 0。最后,使用 GROUP BY 子句对每个学生进行分组,得到每个学生的平均成绩。
阅读全文