初学者,简单的数据库sql语句,看看对不对

作者&投稿:直乐 (若有异议请与网页底部的电邮联系)
5、统计每个班数据库课程的平均成绩select 班级,avg(成绩)as 平均成绩 from 学生,选课 where 选课.课号in (select 课程.课号 from 课程 where 课程名='数据库') and学生.学号=选课.学号 group by 班级
假如本题数据库的课号只有一个,则不加上如上加粗的部分也可以得到正确结果,但是这个运算过程是有问题的,会导致运算的效率降低。本题应该将学生表与选课表关联,若数据库的课号多于一个,那么也会返回正确的结果
7、求每个同学目前获得的总学分select 姓名,sum(学分) as 总学分 from 学生,课程 where 学生.学号in (select 选课.学号from 选课where 课程.课号=选课,课号)group by 姓名
本题应该将三个表关联起来之后,直接group by即可,而且这道题的毛病与第5题一样,你可以实际运算一下,你的写法得出的结果,要比我下面给出的结果,每个人的总学分要多很多。
select 姓名, sum(学分) as 总学分 from 学生,课程 where 学生.学号 = 选课.学号 and 选课.课号 = 课程.课号 group by 学生.姓名
若是考虑到重名的情况,
select 学号,姓名, sum(学分) as 总学分 from 学生,课程 where 学生.学号 = 选课.学号 and 选课.课号 = 课程.课号 group by 学生.姓名,学生.学号
8、查询每个同学的平均分select 姓名,avg(成绩) as 平均分 from 学生,选课 where 学生.学号=选课.学号 group by 姓名
这道题也是,要是考虑到重名的话,最好将学号和姓名一起作为group by的条件,同第7题,你的逻辑是对的。
9、查询学生学号、姓名、课程名、成绩
这道题不需要使用子查询【即在where条件中,增加XXX in(select。。from。。。)】,通常情况下,子查询会降低查询效率。直接进行表关联即可。
select 学生.学号,学生.姓名,课程.课程名,选课.成绩 from 学生,课程,选课 where 学生.学号 = 选课.学号 and 选课.课号 = 课程.课号

3
delete 选课where 选课.学号 in(select 学生.学号from 学生where 姓名='李四')

7、求每个同学目前获得的总学分
select 姓名,sum(学分) as 总学分 from 学生,选课,课程 where
学生.学号 = 选课.学号 and 选课.课号 = 课程.课号
group by 姓名
--------
8、查询每个同学的平均分
select 学生.学号,max(姓名),avg(成绩) as 平均分 from 学生,选课 where 学生.学号=选课.学号 group by
学生.学号

9、查询学生学号、姓名、课程名、成绩
select 学生.学号,姓名,课程名,成绩from 学生,课程,选课 where 学生.学号 = 选课.学号
and 选课.课号 = 课程.课号

其他:
2、修改张三的名字为张三丰
update 学生 set 姓名=张三丰 where 姓名='张三'
最好根据学号修改名称,不然重名人员都会被修改。
如果上机实验,标点符号必须用英文的。

第五题:错误了
select 班级,avg(成绩)as 平均成绩 from 学生,选课 where 学生.学号=选课.学号 and 选课.课号in (select

课程.课号 from 课程 where 课程名='数据库') group by 班级
第六题:不需要关联选课表
select 课程名,avg(成绩) as 平均成绩 from 课程 group by 课程名
第七题:我也不知道你这个写得对不对不过你可以这样写比较容易看懂
select (select 姓名 from 学生 where 学生.学号=选课.学号) as 姓名,sum(学分) as 总学分 from 课程,选课 where 课程.课号=选课.课号 group by 学号

第九题:你写得太高深完全没看懂;
select 学号,姓名,课程名,成绩 from 学生,课程,选课 where 学生.学号=选课.学号 and 课程.课号=选课.课号
其他的目测没错!!

初学者SQL语句创建数据库~

create database BookManage
go
use BookManage
go

create table book
(
图书ID int identity primary key, --图书编号,identity是自动编号,可取消
书名 varchar(50),
作者 varchar(20)
)

create table reader
(
读书ID int identity primary key,
姓名 varchar(20),
联系方法 nchar(100)
)

create table lend
(
图书ID int foreign key references book(图书ID),
读书ID int foreign key references reader(读书ID),
借书时间 datetime,
还书时间 datetime
)
这是你要建的表。。。。

max仅能对某个字段做函数使用,而不可以对一个子查询做函数来用
所以你出问题的地方在
MAX(SELECT COUNT(*)
FROM PS
GROUP BY SNO;);

而且你的子查询中最后不需要用分号的

所以综上所述
SELECT SNO,COUNT(PNO)
FROM PS
GROUP BY SNO
HAVING COUNT(*)=
(SELECT TOP 1 COUNT(*)
FROM PS
GROUP BY SNO ORDER BY COUNT(*) DESC);
这个是sqlserver写法

其他数据库的话,欢迎追问

SQL数据库语句大全
答:SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename; Conn....

数据库常用sql语句有哪些
答:,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分 ,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# =...

常用的sql语句有哪些
答:数据库中常用的sql语句有哪些使用mydb这个数据库,或者进入mydb这个数据库。删除数据库删除Testdb这个数据库。查看有哪些数据表进入某个数据库之后,想查看有哪些数据表,SQL语句为:mydb是一个新建的数据库,所以自然是没有...

SQL server数据库查询语句使用方法详细讲解
答:一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 &#...

初学者,简单的数据库sql语句,看看对不对
答:5、统计每个班数据库课程的平均成绩select 班级,avg(成绩)as 平均成绩 from 学生,选课 where 选课.课号in (select 课程.课号 from 课程 where 课程名='数据库') and学生.学号=选课.学号 group by 班级 假如本题...

SQL数据库 基本的操作语句(增、删、改、查)
答:useId int identity(1,1) priamry key not null, --用户Id,设为主键,标识列,不为空。useName varchar(10) not null ,--用户名称,不为空 useSex char(2) not null --用户性别,不为空 )go --批处理 inser...

如何用SQL语句创建数据库
答:在SQL语句中,CREATE DATABASE 语句用于创建数据库。具体用法如下:示例:下面的 SQL 语句创建一个名为 “my_db” 的数据库:-from 树懒学堂 数据库表可以通过 CREATE TABLE 语句来添加。

在数据库中添加一行的SQL语句怎么写?
答:1、插入数据:insertinto表名values(值列表)[,(值列表)];可以一次性插入多条数据。2、给部分字段插入数据:insertinto表名(字段列表)values(值列表)[,(值列表)];使用T-SQL脚本插入数据 语法 insertinto...

sql简单查询语句
答:1、首先打开数据库,建立好表。2、然后查询全体教师的教师号、姓名、职称,并分别为三列指定别名:教师号、姓名、职称,如下图所示。3、查询结果如下图所示。4、接着查询所有姓张的学生的学号和姓名,如下图所示。5、最后...

SQL数据库常用语法都有哪些?
答:DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。 SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和...