数据库查询语句

单关系表和多关系表数据查询

where和having子句的根本区别在于,where子句作用于基本表或视图,从中选择满足条件的原组,having子句作用于组(group后的组),必须用在group by子句之后,但group by子句可以没有having子句。

这里的查询语句用到的数据来自:https://blog.csdn.net/dzydzy7/article/details/102632467

--查询各位学生的学号、班级和姓名
select number, class, name from stu
--查询课程的全部信息
select * from course
--查询数据库中有哪些专业班级
select class from stu group by class
--查询学时数大于60的课程信息
select * from course where period > 60
--查询在1986年出生的学生的学号、姓名和出生日期
select number, name, birth from stu where DATENAME(YEAR, birth) = '1986'
--查询三次作业的成绩都在80分以上的学号、课程号
select stu_no, c_No from stu_work where (w_one > 80 and w_two > 80 and w_three > 80)
--查询姓张的学生的学号、姓名和专业班级
select number, name, class from stu where name like '张%'
--查询05级的男生信息
select * from stu where class like '%05'
--查询没有作业成绩的学号和课程号
select stu_No, c_No from stu_work where(w_one is null or w_two is null or w_three is null)
--查询学号为0538的学生的作业1总分
select stu_No, sum(w_one) as 'sum' from stu_work where(stu_No = '0538') group by stu_No
--查询选修了K001课程的学生人数
select c_No, COUNT(stu_No) as 'cnt' from stu_work where c_No = 'K001' group by c_No
--查询数据库中共有多少个班级
select count(distinct class) from stu
--查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分
select stu_No, avg(w_one) as avg1, avg(w_two) as avg1, avg(w_three) as avg1, count(c_No) as cnt
from stu_work inner join stu on stu.number = stu_work.stu_No
group by stu_No
having count(c_No) >= 3
--查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)
--方法一
select stu.number, stu.name, course.c_Name
from course inner join stu_work on course.c_No = stu_work.c_No 
inner join stu on stu_work.stu_No = stu.number
where stu.name = '于兰兰'
--方法二
select R1.number, R1.name, R3.c_Name from
(select stu.number, stu.name from stu where(stu.name = '于兰兰'))as R1 
inner join
(select stu_work.stu_No, stu_work.c_No from stu_work)as R2 
on R2.stu_No = R1.number inner join 
(select course.c_Name, course.c_No from course)as R3
on R2.c_No = R3.c_No
--方法二简化
select R1.number, R1.name, R3.c_Name from
(select stu.number, stu.name from stu where(stu.name = '于兰兰'))as R1 
inner join
(select stu_work.stu_No, stu_work.c_No from stu_work)as R2 
on R2.stu_No = R1.number,
(select course.c_Name, course.c_No from course)as R3
where(R2.c_No = R3.c_No)

 

SQL数据库查询语句可以根据具体的需求使用不同的语句来实现。以下是一些常用的SQL查询语句: 1. SELECT语句:用于从数据库中选取数据。使用SELECT语句时,可以选择列、表和条件来筛选所需数据。例如,使用SELECT语句查询学生表中的所有学生和年龄: SELECT 姓, 年龄 FROM 学生表; 2. WHERE子句:用于在查询中添加条件。使用WHERE子句可以根据指定的条件过滤数据。例如,使用WHERE子句查询学生表中年龄大于18岁的学生: SELECT * FROM 学生表 WHERE 年龄 > 18; 3. INSERT INTO语句:用于向数据库表中插入新的数据。使用INSERT INTO语句需要指定表和要插入的数据。例如,使用INSERT INTO语句将一条新的学生记录插入到学生表中: INSERT INTO 学生表 (姓, 年龄, 成绩) VALUES ('张三', 20, 90); 4. UPDATE语句:用于更新数据库表中的数据。使用UPDATE语句需要指定表、要更新的列和更新后的值,还可以使用WHERE子句来限制更新的范围。例如,使用UPDATE语句将学生表中姓为李的学生年龄更新为21岁: UPDATE 学生表 SET 年龄 = 21 WHERE 姓 = '李'; 5. DELETE语句:用于从数据库表中删除数据。使用DELETE语句需要指定表和要删除的数据的条件。例如,使用DELETE语句删除学生表中年龄小于18岁的学生: DELETE FROM 学生表 WHERE 年龄 < 18; 请根据具体情况选择合适的SQL查询语句,并根据需要使用以上提到的语句的不同部来构建完整的SQL查询语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值