select a.学院名称,b.班级名称,b.班级代码,a.学院代码 from(select * from 学院表 where 学院类型='化学系') a
left join
班级表 b on a.学院id=b.学院id
2:
select b.学院名称,a.年级,a.班级数量 from
( select 学院id,count(班级id) 班级数量,'2009' 年级 from 班级表 where 年级 = '2009' group by 学院id) a
left join 学院表 b on a.学院id=b.学院id
3:
select 校区,count(id) 班级数量 from 班级表 group by 校区
4:
select d.学年,d.学期,c.选课课号,c.课程代码,c.课程名称,e.专业名称,a.姓名 from
(select * from 学生表 where 学号='096607601025') a
left join
公选课表 b on a.学生id=b.学生id
left jion
课程表 c on b.课程id=c.课程id
left jion
班级表 d on a.班级id=d.班级id
left jion
学院表 e on d.学院id=e.学院id
--如果我没有猜错的话应该就这样
数据库查询语句需要根据不同的需求进行编写。(以MySQL数据库查询为例)
1、如果需要查询某个数据表的所有字段,则使用 * 代表所有字段进行查询即可。该种方式是最简单的一种查询。
2、若需要查询某表的某些字段,则在select后加上字段名,多个字段名使用 , 进行分隔。
3、若需要根据指定条件查询某些数据记录,则可以使用 where关键字来进行条件查询。
4、若需要对查询结果进行分组,则可以使用 Group By 关键字来进行分组查询。
#include <stdio.h>#include <string.h>
void func(const char *Filename, const char *KeyWord)
{
FILE *fp = fopen(Filename, "rt")
if (NULL != fp)
{
unsigned int KeyWordLen = strlen(KeyWord)
unsigned int LineNr = 0, TargetLine = 0, Position = 0
while (0 == TargetLine &&!feof(fp))
{
#define MAXLINELEN 1024 /* Assume no line is longer than 1024, if not, a larger buffer is needed */
char LineBuf[MAXLINELEN]
if (fgets(LineBuf, MAXLINELEN, fp) != NULL)
{
unsigned int LineLen = strlen(LineBuf)
int i
LineNr++
for (i = 0LineLen - i >= KeyWordLen &&0 == TargetLinei++)
{
if (!strncmp(LineBuf + i, KeyWord, KeyWordLen))
{
TargetLine = LineNr
Position = i + 1
}
}
}
}
if (0 != TargetLine)
{
printf("The first occurance of %s starts at char-%u of line-%u\n", KeyWord, Position, TargetLine)
}
else
{
printf("%s cannot be found in %s\n", KeyWord, Filename)
}
fclose(fp)
}
return
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)