1. A
2.DBMS (数据库管理系统)2、SQL(结构化查询语言) 3、table(表) 4、index(索引) 5、field(域) 6、Primary Key(主键) 7、database(数据库)
8、transaction (事务)9、Foreign Key(外键) 10、Record(记录)
2.DBMS (数据库管理系统)2、SQL(结构化查询语言) 3、table(表) 4、index(索引) 5、field(域) 6、Primary Key(主键) 7、database(数据库)
8、transaction (事务)9、Foreign Key(外键) 10、Record(记录)
1、统计各班学生人数
select a.班级名,学生人数=isnull(count(b.学号),0)
from 班级表 a left join 学生表 b on a.班级名=b.班级名2、统计各系部教师人数
select a.系部名,教师人数=isnull(count(b.教师号),0)
from 系部表 a left join 教师表 b on a.系部名=b.系部名3、统计各系部学生人数
select a.系部名,学生人数=isnull(count(c.学号),0)
from 班级表 b left join 学生表 c on a.班级名=b.班级名
right join 系部表 a.系部名=b.系部名4、查找在同一个班上名字相同的学生
select * from 学生表 a
where exists(select 1 from 学生表
where 班级名=a.班级名 and 姓名=a.姓名 and 学号<>a.学号)5、查找1月1日出生的学生
select * from 学生表
where month(出生日期)=1 and day(出生日期)=1
select a.班级名,count(*) 学生人数
from 班级表 a left join 学生表 b on a.班级名=b.班级名
group by a.班级名
2、统计各系部教师人数
select a.系部名,count(*) 老师人数
from 系部表 a left join 教师表 b on a.系部名=b.系部名
group by a.系部名
3、统计各系部学生人数
select a.系部名,count(*) 学生人数
from 系部表 a left join 班级表 b a.系部名=b.系部名 left join 学生表 c on b.班级名=c.班级名
group by a.系部名
4.找在同一个班上名字相同的学生
select 班级名,姓名
from 学生表
group by 班级名,姓名
having count(*) > 1
5.查找1月1日出生的学生
select * from 学生表
where month(出生日期) = 1 and day(出生日期) = 1
6.统计“计算机系”每个班开设课程的总数
select a.班级名,count(distinct 科目) from
教学安排表 a join 班级表 b
on a.班级名 = b.班级名 and b.系部名 = '计算机系'
group by a.班级名
7、查询学号为“0123456”的学生各学期的考试成绩
select c.学号,b.姓名,a.学期,a.科目,c.成绩 from
教学安排表 a join 学生表 b
on a.班级名 = b.班级名 and b.学号 = '0123456'
left join 成绩表 c
a.教学安排ID = c.教学安排 ID and c.学号 = '0123456'
8、编写一个触发器模拟参照完整性规则,即在“学生表”中添加记录时,检查“班级名”在“班级表”中是否则存在,若不存在则禁止添加记录
CREATE TRIGER [T1] ON 学生表
FOR INSERT
AS
if not exists(select 1 from 班级表 where where 班级名 = (select 班级名 from inserted))
rollback tran
9、查询学号为“0123456”的学生各学期考试不及格(小于60分)的科目
注:(1)输出学号、姓名、学期、科目、成绩
(2)某一成绩如果没有,作为不及格,在结果中用NULL表示
select c.学号,b.姓名,a.学期,a.科目,c.成绩 from
教学安排表 a join 学生表 b
on a.班级名 = b.班级名 and b.学号 = '0123456'
left join 成绩表 c
a.教学安排ID = c.教学安排 ID and c.学号 = '0123456'
where c.成绩 < 60 or c.成绩 is null
10,编写一个触发器模拟级联更新,即在“班级表”中修改“班级名时,同时修改”学生表”中该班学生的“班级名”
CREATE TRIGER [T1] ON 班级表
FOR UPDATE
AS
update a
set a.班级名 = (select 班级名 from inserted )
from 学生表 a join deleted b
on a.班级名 = b.班级名
二。1.DBMS (数据库管理系统)2、SQL(结构化查询语言) 3、table(表) 4、index(索引) 5、field(域) 6、Primary Key(主键) 7、database(数据库)
8、transaction (事务)9、Foreign Key(外键) 10、Record(记录)三、
1、
select a.班级名,学生人数=isnull(count(b.学号),0)
from 班级表 a left join 学生表 b on a.班级名=b.班级名2、统计各系部教师人数
select a.系部名,教师人数=isnull(count(b.教师号),0)
from 系部表 a left join 教师表 b on a.系部名=b.系部名3、统计各系部学生人数
select a.系部名,学生人数=isnull(count(c.学号),0)
from 班级表 b left join 学生表 c on a.班级名=b.班级名
right join 系部表 a.系部名=b.系部名4、查找在同一个班上名字相同的学生
select * from 学生表 a
where exists(select 1 from 学生表
where 班级名=a.班级名 and 姓名=a.姓名 and 学号<>a.学号)5、查找1月1日出生的学生
select * from 学生表
where month(出生日期)=1 and day(出生日期)=1
2.DBMS (数据库管理系统)2、SQL(结构化查询语言) 3、table(表) 4、index(索引) 5、field(域) 6、Primary Key(主键) 7、database(数据库)
8、transaction (事务)9、Foreign Key(外键) 10、Record(记录)
三、1、统计各班学生人数
select 班级,总数=count(*) from 班级表 a join 学生表 b on a.班级=b.班级 group by 班级
2、统计各系部教师人数
select 系部,教师总数=count(*) from 系部表 a join 教师表 b a.系部=b.系部 group by 系部
3、统计各系部学生人数
select 系部,总数=count(*) from 系部表 a join 班级表 b a.系部=b.系部 join 学生表 c on b.班级名=c.班级名 group by 系部
4、查找在同一个班上名字相同的学生
select 学生,班级 from 学生表 group by 学生,班级
5、查找1月1日出生的学生
select * from 学生表 where convert(char(10),出生日期,'mm-dd')='1-1'