数据库实验--北工大
北工大数据结构上机实验报告3教材

上机题三报告姓名:学号:完成日期:2015年5月5日题目:表达式可以用表达式二义树来表示。
对于简单的四则运算表达式,请实现以下功能;(1)对于任意给出的前缀表达式(不带括号)、中缀表达式(可以带括号)或后缀表达式(不带括号),能够在计算机内部构造出一棵表达式二义树,并且以图示显示出来(字符图或图形的形式)。
(2)对于构造好的内部表达式二叉树,按照用户要求,输出相应的前缀表达式(不带括号)、中缀表达式(可以带括号)或后缀表达式(不带括号).一、需求分析1.输入形式、输入值的范围;输入前缀表达式(不带括号)、中缀表达式(可以带括号)或后缀表达式(不带括号)2.输出形式^表达式二叉树,前缀表达式、中缀表达式和后缀表达式。
3・程序功能;用表达式二叉树表示表达式,并转换为前缀表达式、中缀表达式或后缀表达式。
4.测试数据正确的输入输出:错误的输入输出:二、概要设计1. ADT定义class TNode//W 点类3.各程序模块间的调用关系2.主程序流程Main ()求二叉树表达式模块求前、中、后缀表达式模块打印树删除树三、详细设计1.实现ADT定义的数据类型class TNode//节点类{ public:char oper;//数据域,为简便起见,操作数用单个字符代替TNode *left;TNode *right;int s;int t;〃计算树的层数使用TNode()//缺省构造函数{ left 二right二NULL;opei-O;}TNode(char op)//赋值构造函数{ left 二right 二NULL;opei-op;}1;2.算法描述表达式转化为二叉树void pre2tree(TNode *&p, string str)//#缀表达式生成二叉树{ 碰到操作数则把英值赋给相应的新申请的二叉树结点,地址压栈:碰到操作符则把其值赋给相应的新申请的二叉树,并从栈中弹出两个地址,分别作为英左指针和右指针,然后再把其地址压栈,最后一个地址即为二叉树的根结点地址。
北京工业大学 数据库原理 实验报告

计算机学院实验报告课程名称:数据库原理实验人学号:******xx 姓名:xxx 实验完成日期:2014年5月20日报告完成日期:2014年5月20日目录目录 (2)实验准备 (3)系统描述: (3)ER图: (3)关系模式: (3)字段类型设置: (4)业务需求: (5)实验一数据库实施:创建数据库及其对象 (5)一、实验目的 (5)二、实验内容 (5)三、实验要求 (6)四、实验装置 (6)五、实验步骤 (6)六、个人实验过程: (6)七、思考题 (11)实验二: 数据的增删改 (12)一、实验目的 (12)二、实验内容 (12)三、实验要求 (12)四、实验装置 (12)五、实验步骤 (12)六、思考题 (17)实验三: 数据库查询 (18)一、实验目的 (18)二、实验内容 (18)三、实验要求 (18)四、实验装置 (18)五、实验步骤 (19)六、思考题 (20)实验四: 创建和删除视图 (21)一、实验目的 (21)二、实验内容 (21)三、实验要求 (21)四、实验装置 (21)五、实验步骤 (21)六、思考题 (23)个人总结 (24)实验准备系统描述:在医院服务管理系统中,需要对医生、病人、科室和病房进行管理。
其中,一个科室有多个病房、管理多个医生;一个病房只能隶属一个科室;一个医生只能属于一个科室;一个医生可负责多个病人的诊治;一个病人的诊断也可以由多个医生共同完成;一个病房可以住多个病人,但一个病人只能住在一个病房。
ER 图:医生病房科室病人工作证号姓名性别职称年龄性别病历号年龄姓名科室名科室地址电话主任姓名病房号诊断管理住院隶属挂号单号诊断日期看病花费药品花费关系模式:医生(工作证号,科室名,姓名,性别,年龄,职称)病人(病历号,病房号,姓名,性别,年龄 看病花费,药品花费)科室(科室名,科室地址,电话,主任姓名)病房(病房号,科室名)诊断(工作证号,病历号,挂号单号,诊断日期)字段类型设置:科室业务需求:查询:医生基本信息,病人基本信息,病房基本信息,科室基本信息;查询:病房的分配信息,科室对医生的管理信息,医生收入信息,科室收入信息,病人住院信息打印:病人的住院信息及诊断结果。
北京理工大学计算机学院数据库开发实验报告2

数据库系统开发实验报告1.2 实验二:触发器的创建与测试1.2.1内容检查订单明细表Sales.SalesOrderDetail中的信息,如果修改记录中的产品单价UnitPrice大于产品公开报价(Production.Product.ListPrice),则不能进行修改并抛出错误信息,否则,进行修改并将修改的有关信息写到Production.ProuctUpdateLog表中。
1.2.2要求1.使用RAISEERROR抛出错误信息。
2.修改信息记录表Production.ProductUpdateLog的内容:记录编号、订单编号、订单明细编号、产品编号、产品的公开报价、修改前产品的单价、修改后产品的单价、修改者的登录名。
使用存储过程完成该功能,并在存储过程中调用该存储过程。
3.给出触发器和存储过程的源代码和简要的说明(可以在代码中使用注释进行说明)。
4.设计触发器测试方案并给出测试的命令和结果,必要时可对测试结果进行分析。
实验内容:首先,用Windows系统下的登录,附加数据库AdventureWorks按照实验内容,我们先来查询一下AdventureWorks中的订单明细表Sales.SalesOrderDetail。
语句:USE AdventureWorksGOSELECT*FROM Sales.SalesOrderDetailGO查询结果如下:根据实验内容,创建名为Production.ProuctUpdateLog(产品更新日志)的表。
其属性分别为记录编号,订单编号,订单明细编号,产品编号,产品公开报价,修改前产品的单价,修改后产品单价,修改者登录名。
语句:/*记录编号,订单编号,订单明细编号,产品编号,产品公开报价,修改前产品的单价,修改后产品单价,修改者登录名*/USE AdventureWorksGOCREATE TABLE Production.ProductUpdateLog(记录编号int IDENTITY primary key,订单编号int not null,订单明细编号int not null,产品编号int not null,产品公开报价money,修改前产品单价money,修改后产品单价money,修改者登录名nvarchar(50) not null)GO运行结果如下:将修改者登录名设为不准为空,同时用IDENTITY关键字设主键“记录编号”为自动增长。
北京理工大学-数据库-实验_4-存储过程、触发器

北京理工大学数据库实验4主讲老师:赵晓林学生:李经2012/11/21实验 4:存储过程、触发器 (1)4.1 作业声明 (1)4.2 实验目的 (1)4.2.1 建立“学籍与成绩管理系统”表格 (1)4.3 实验过程 (1)4.3.1 在“学籍与成绩管理系统”表格中输入不符合系统要求的数据 (1)4.3.2 建立存储过程,计算学生的总学分、总成绩,并保存在另一张表中 (2)4.3.3 查询总成绩表,并进行排序 (3)4.3.4 在相关的表上建立触发器,实现主外键的功能 (3)4.3.5 讨论触发器与主外键的异同 (4)4.3.6 在表上建立触发器实现对数据录入、修改的限制 (4)4.3.7 讨论视图、存储过程、触发器、用户自定义函数的使用范围及优缺点 (4)4.4 实验结论 (5)4.5 实验体会 (5)实验 4:存储过程、触发器4.1 作业声明本次作业全部由本人完成,若存在抄袭或雷同现象,本人愿意接受老师相应的处理4.2 实验目的4.2.1建立“学籍与成绩管理系统”表格•不建立表之间的参照关系•输入数据,以便在表上进行各种操作4.3 实验过程建立“学籍与成绩管理系统”表格操作,输入数据操作同实验三4.3.1在“学籍与成绩管理系统”表格中输入不符合系统要求的数据(如学生学籍表中学号重复),建立适当的存储过程,分别查找和删除这些不合法的数据4.3.1.1 sql代码insert into xs values('孙悟空','2120100030','05','08111005','1990-5-1','男'); --插入一行非法数据,假设学号合法范围为~1120100099create proc check_xh@start char(10),@end char(10)asbegindelete from xswhere xs.xh<@startor xs.xh>@endendselect*from xswhere xs.xh<'1120100001'or xs.xh>'1120100099'exec check_xh'1120100001','1120100099' --调用存储过程select*from xswhere xs.xh<'1120100001'or xs.xh>'1120100099'4.3.1.2 结果调用前后对比,非法数据已经被删除4.3.2建立存储过程,计算学生的总学分、总成绩,并保存在另一张表中4.3.2.1 sql代码create table cjd(xm varchar(8)not null,xf decimal(5,1),cj decimal(5,1),)create proc cjd_show@start char(10),@end char(10)asbegininsert into cjdselect xs.xm,sum(kc.xf),sum(xk.cj)from xs,kc,xkwhere xs.xh>=@start and xs.xh<=@endand xs.xh=xk.xhand xk.kcbh=kc.kcbhgroup by xs.xmEndexec cjd_show'1120100001','1120100099'select*from cjd4.3.2.2 结果4.3.3查询总成绩表,并进行排序4.3.3.1 sql代码select*from cjd order by cj4.3.3.2 结果成绩表按照总成绩升序排列4.3.4在相关的表上建立触发器,实现主外键的功能4.3.4.1 Sql代码create trigger xdh_pk on xb--模拟主键after insertasif (select COUNT(*)from xb,inserted where xb.xdh=inserted.xdh)>1beginprint'插入数据重复'rollback transactionendcreate trigger xdh_fk on js--模拟外键after insertasif (select COUNT(*)from xb,inserted where xb.xdh=inserted.xdh)=0beginprint'插入数据不合法'rollback transactionEndinsert into xb values('05','德语'); --插入重复数据insert into js values('姜子牙','9920100005','一级','09'); --非法数据,xdh09不存在于系表中4.3.4.2 结果插入以上两行数据时,结果分别为,系统显示:“插入数据重复消息3609,级别16,状态1,第1 行事务在触发器中结束。
2022年北工大数据结构第二次上机中缀转后缀实验报告

北京工业大学- 第学期信息学部计算机学院3月31日报告题目:输入中缀体现式,输出后缀体现式,并对体现式求值A.分析中缀体现式旳运算顺序受运算符优先级和括号旳影响。
因此,将中缀体现式转换成等价旳后缀体现式旳核心在于如何恰当旳去掉中缀体现式中旳括号,然后在必要时按照先乘除后加减旳优先规则调换运算符旳先后顺序。
在去括号旳过程中用栈来储存有关旳元素。
基本思路:从左至右顺序扫描中缀体现式,用栈来寄存体现式中旳操作数,开括号,以及在这个开括号背面旳其她临时不能拟定计算顺序旳内容。
(1)当输入旳是操作数时,直接输出到后缀体现式(2)当遇到开括号时,将其入栈(3)当输入遇到闭括号时,先判断栈与否为空,若为空,则表达括号不匹配,应作为错误异常解决,清栈退出。
若非空,则把栈中元素依次弹出,直到遇到第一种开括号为止,将弹出旳元素输出到后缀体现式序列中。
由于后缀体现式不需要括号,因此弹出旳括号不放到输出序列中,若没有遇到开括号,阐明括号不匹配,做异常解决,清栈退出。
(4)当输入为运算符时(四则运算+ - * / 之一)时:a.循环,当(栈非空&&栈顶不是开括号&&栈顶运算符旳优先级不低于输入旳运算符旳优先级)时,反复操作将栈顶元素弹出,放到后缀体现式中。
b.将输入旳运算符压入栈中。
(5)最后,当中缀体现式旳符号所有扫描完毕时,若栈内仍有元素,则将其所有依次弹出,放在后缀体现式序列旳尾部。
若在弹出旳元素中遇到开括号,则阐明括号不匹配,做异常解决,清栈退出。
B.实现#include<stdio.h>#include<string.h>#include<stdlib.h>#include<stack>using namespace std;#define N 1000char infix[N]; //中缀体现式(未分离,都在一种字符串里)char expression[N][10]; //保存预解决过旳体现式,也就是每个元素都分离过旳体现式char suffix[N][10]; //保存后缀体现式旳操作数int count;//体现式中元素旳个数(一种完整到数字(也许不止一位数)或者符号)int suffixLength;//后缀体现式旳长度int level(char a){switch(a){case '#':return 0;case '+':case '-':return 1;case '*':case '/':return 2;case '^':return 3;default:break;}return -1;}int isDigital(char x){if( (x>='0'&&x<='9') || (x>='A'&&x<='Z') || (x>='a'&&x<='z') || (x=='.') )return 1;return 0;}int isNumber(char *str){int i;for(i=0;str[i];i++){if(isDigital(str[i])==0)return 0;}return 1;}/*************************************预解决中缀体现式,把持续旳字符分离成不同旳元素,用字符串数组(expression[][])保存,以便背面旳计算,由于这里考虑了运算数也许不全是个位数例如:(12+3)在解决成后缀体现式时,是123+,容易产生歧义(1+23 ? 12+3)*************************************/void pretreatment(char *str){int i,j,numberFlag;char temp[3];char number[10];count=0;numberFlag=0;for(j=0,i=0;str[i];i++){if(isDigital(str[i])==0){if(numberFlag==1){number[j]=0;strcpy(expression[count++],number); j=0;numberFlag=0;}if(str[i]!=' '){temp[0]=str[i];temp[1]=0;strcpy(expression[count++],temp); }}else {numberFlag=1;number[j++]=str[i];}}puts("分离后旳体现式为");for(i=0;i<count;i++){printf("%s ",expression[i]);}puts("");puts("");}/*****************************************中缀体现式转后缀体现式遍历字符串,对于str[i]str[i]是运算数(或者是字母替代旳运算变量)输出;str[i]是符号,有两种状况(1),是右括号,栈顶元素输出,直到与str[i]匹配旳左括号出栈(左括号不用输出打印)(2),是运算符,判断str[i]与栈顶元素旳优先级,str[i]优先级不高于栈顶符号,则栈顶元素输出,直到栈空或者栈顶符号优先级低于str[i]*****************************************/void infix_to_suffix(char str[N][10]){memset(suffix,0,sizeof(suffix));suffixLength=0;stack <char*> st;int i=0;char Mark[2]="#";st.push(Mark);do{if(isNumber(str[i])==1)//运算数直接保存到后缀体现式中strcpy(suffix[suffixLength++],str[i]);else if(str[i][0]=='(') //是左括号,直接入栈st.push(str[i]);else if(str[i][0]==')'){ //是右括号,栈顶出栈,直到与其匹配旳左括号出栈while( strcmp(st.top(),"(")!=0 ){char temp[10];strcpy(temp,st.top());strcpy(suffix[suffixLength++],temp);st.pop();}st.pop();}else if( strcmp(st.top(),"(")==0 )//是运算符,且栈顶是左括号,则该运算符直接入栈st.push(str[i]);else { //是运算符,且栈顶元素优先级不不不小于运算符,则栈顶元素始终//出栈,直到栈空或者遇到一种优先级低于该运算符旳元素while( !st.empty() ){char temp[10];strcpy(temp,st.top());if( level(str[i][0]) > level(temp[0]) )break;strcpy(suffix[suffixLength++],temp);st.pop();}st.push(str[i]);}i++;}while(str[i][0]!=0);while( strcmp(st.top(),"#")!=0 ){ //将栈取空结束char temp[10];strcpy(temp,st.top());strcpy(suffix[suffixLength++],temp);st.pop();}puts("后缀体现式为:");for(i=0;i<suffixLength;i++){printf("%s",suffix[i]);}puts("");puts("");}/**************************************计算后缀体现式旳值**************************************/char kt[N][10];int stackTop;void getResult(char str[N][10]){stackTop=0;/*这里要注意,内存旳分派方案导致 i 旳位置就在temp[9]旁边,然后strcpy()函数直接拷贝内存旳话,在temp越界状况下会覆盖 i 旳值*/int i;char temp[10];for(i=0;i<suffixLength;i++){if(isNumber(str[i])==1){strcpy(kt[stackTop++],str[i]);}else {char a[10],b[10];double na,nb,nc;strcpy(a,kt[stackTop-1]);na = atof(a);stackTop--;strcpy(b,kt[stackTop-1]);nb = atof(b);stackTop--;if(str[i][0]=='+')nc=nb+na;else if(str[i][0]=='-')nc=nb-na;else if(str[i][0]=='*')nc=nb*na;else if(str[i][0]=='/')nc=nb/na;sprintf(temp,"%lf",nc);strcpy(kt[stackTop++],temp);}}puts("\nThe result is : %f\n");printf("%s\n",kt[stackTop-1]);}int main(){printf("Please input calculate Expression :\n"); char temp[N];while(gets(infix)){strcpy(temp,infix);pretreatment( strcat(temp," ") );infix_to_suffix(expression);getResult(suffix);}return 0;}C.总结实验需要细心细心再细心。
西北工业大学数据库实验报告3

1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。
(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。
(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。
(3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。
(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。
2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)(2)alter table Sadd constraint pk_sno primary key(sno)(3)alter table Sadd constraint uk_sname unique(sname)(4)alter table Sadd constraint uk_sex default('男') for ssex(5)alter table SCadd constraint ck_grade check(grade between 0 and 100)(6)alter table SCadd constraint fk_sno foreign key(sno) references S(sno)alter table SCadd constraint fk_cno foreign key(cno) references C(cno)3.利用图形用户界面根据上述SC表中的外键定义画出由S,C,SC表构成的数据库关系图。
西北工业大学数据库实验报告2

《数据库原理》实验报告题目:实验二基本表的数据操作学号姓名班级日期2014302692 孟玉军16.10.13一. 实验内容、步骤以及结果1.在图形用户界面中对表中的数据进行更新。
(6分,每小题2分)(1)按照实验一图2.1-图2.4中所示数据,输入SPJ数据库所含四张表中的数据。
S表:P表:J表:SPJ表:(2)修改S表的任意一条数据把S表中S1的status数据进行了修改(3)删除S表的任意一条数据。
删除了S3的数据2.针对SPJ数据库,用SQL语句完成下面的数据更新。
(12分,每小题3分)(1)第五版教材第三章第5题的8-11小题。
红色零件颜色修改为蓝色:⑧UPDATE PSET COLOR=’蓝’WHERE SNO=’红’⑨由S5供给J4的零件P6改为由S3提供:Update SPJSet sno=’S3’Where sno=’S5’and pno=’P6’and jno=’J4’⑩从供应商关系中删除S2的记录,从供应关系表中删除相应的记录:DeleteFrom SWhere sno=’S2’DeleteFrom SPJWhere sno=’S2’11.请将(S2,J6,P4,200)插入供应情况关系:Insert into SPJValues (‘S2’,’ P4’,’J6’,200)3.针对SPJ数据库,用SQL语句完成下面的数据查询。
(52分,每小题4分) (1)第五版教材第三章第4题。
(5道小题)①:select distinct snofrom SPJwhere jno=’J1’②:select distinct snofrom SPJwhere jno='J1'and pno='P1'③:select snofrom SPJ,Pwhere jno='J1'and SPJ.pno=P.pno and color='红'④:select distinct jnofrom SPJwhere jno not in(select jnofrom SPJ,P,Swhere SPJ.sno=S.sno and city='天津'and SPJ.pno=P.pno and color ='红')⑤:select jnofrom SPJwhere pno in(select pno from SPJ where sno='S1' )group by jnohaving count(pno)=(select count(pno) from SPJ where sno ='J1')(2)第五版教材第三章第5题的1-7小题。
北京工业大学 数据库原理上机报告

数据库原理上机报告学号:姓名:教师评语:成绩:指导教师签字评阅日期:年月日一.基本需求网上选课已经步入了每个校园内部,学生每一年都要经历一次慎重的决定自己的选课。
在选课系统中,包含着丰富多彩的各类课程可供学生选择。
设计一个网上选课系统,学生可以在网上进行选课。
学生实体包括学生的学号、姓名、性别、密码、生日。
教师实体包括教师的工号、姓名、性别、密码、生日、职称。
专业实体包括专业号、专业名、系号、辅导员、联系方式。
系实体包括系号、系名、系主任、联系方式。
必修课作为课程的子类实体,有着属性专业号,因为每个专业所有的必修课可能并不一样。
学生可以选择课程,可以查看课程的相关信息,如课程号、课程名、学时、学分、以及该课程获得的成绩。
一个学生可以选多门课程,一门课程也可以有多名学生来选择。
多名教师讲授一门课程。
多名学生属于同一专业,多个专业构成同一个系。
系统的用户有两类,学生和教师。
学生可以登录,查询课程信息,查询选课成绩,选课和退课。
教师可以查看学生信息,录入成绩。
二.ER图三.关系模式上述ER图的关系模式如下:学生(学号,专业号,姓名,性别,生日,密码)教师(工号,系号,姓名,性别,生日,密码,职称,课程号)专业(专业号,系号,专业名,辅导员,联系方式)系(系号,系名,系主任,联系方式)课程(课程号,课程名,学时,学分)必修课(课程号,专业号)选课(学号,课程号,成绩)四.数据库表结构1.学生信息表:字段类型域PKorFK学号Char(10)键码专业号int0~100外码姓名Char(10)性别Char(2)“男”or”女”生日date密码Char(20)表中数据如下:2.教师信息表:字段类型域PKorFK工号Char(10)键码系号Int0~20外码姓名Char(10)性别Char(2)“男”or”女”生日Date密码Char(20)职称Char(20)课程号Int0~100外码表中数据如下:3.专业:字段类型域PKorFK专业号Int0~100主码专业名Char(20)系号Int0~20外码辅导员Char(10)联系方式Char(20)表中数据如下:4.系:字段类型域PKorFK系号Int0~20主码系名Char(20)系主任Char(10)联系方式Char(20)表中数据如下:5.课程:字段类型域PKorFK课程号Int0~100主码课程名Char(20)候选码学分Int1~5学时Int30~40表中数据如下:6.选课:字段类型域PKorFK学号Char(10)主码、外码课程号Int0~100主码、外码成绩Int0~100表中数据如下:7.必修课:字段类型域PKorFK课程号Int0~100主码、外码专业号Int0~100外码表中数据如下:五.实验过程1.创建和删除数据库使用CREATE DATABASE[database name]命令创建数据库,如果已有同名数据库存在,则不能成功创建。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
比赛信息查询系统
学号:姓名:
一、题目描述
1,比赛信息查询系统:参照历届比赛为模版,包含组委会,比赛,学校,学生;
2,数据库将要存储的数据:组委会的名称、电话;比赛的名称、日期、种类、地点;学校的名称、地址、电话;学生的姓名、学号、性别、成绩;
3,数据间存在的联系:组委会组织比赛,学校参加比赛,学生注册学校;
4,可能经常进行的操作:各种与比赛相关信息的查询、删除、合并等等;
二、数据库建模(ER图)
三、数据基本表
组委会(名称,电话,比赛名称);
比赛(名称,日期,种类,地点,参赛学校);
学校(名称,地址,电话,所参加比赛,参赛学生数);
学生(学号,姓名,性别,成绩,所在学校,比赛名称)四、各个表的结构
五、样例数据
六、创建和删除数据库
七、创建和删除基本表1,创建表:组委会
插入数据:
2,创建表:比赛
插入数据:
3,创建表:学校
插入数据:
4,创建表:学生
同学依据自己的数据库,自行拟定题目,设计并完成如下查询操作:
①简单查询:
查找参加A1类型比赛的名称以及参赛学校;
提炼BJUT学校参赛学生的数目以及参赛种类:
②选择表中的若干元组(记录);
在学生表中筛选出所有的女同学并且成绩在73以上的、所在学校、参加的比赛以及成绩:
③对查询结果进行排序;
按照成绩,从小到大排序,包括学生的姓名,学号,学校,比赛,成绩:
④使用计算函数汇总数据;
汇总所有参赛的总人数:
⑤对查询结果进行分组计算;
计算a,b比赛的各自的平均分:
⑥多表连接查询。
查询74分以上学生以及其所在学校的电话号码:
九、数据增删改
1.向某表中添加一条新数据记录:
后来经过反复确认,在参加比赛的学校的表格中缺少BJHT比赛的信息,需要插入:
2.修改某表中的某些记录的值:
学生表中,更改来自BJUT的学生的学号为后三位:
3,删除某表中的某些记录:
在学校表格输入中,BJUT的信息输入失误,没有参加A比赛的,需要删除:
在比赛表中删除BJQH的参赛信息:。