数据库上机实验总结(含代码)
数据库上机实验报告
数据库上机实验报告数据库上机实验网络1002 3100610055一、实验目的1.通过上机操作,加深对数据库理论知识的理解。
2.通过使用具体的微机DBMS(SQL Server),了解一种实际的数据库管理系统,并掌握其操作技术。
3.通过实际题目的上机实验,提高动手能力,提高分析问题和解决问题的能力。
二﹑实验题目某供应商(S)供应(SPJ)某种零件(P)给某个工程项目(J),其中一个供应商可以供给多个项目零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,S﹑P﹑J﹑SPJ的数据见附表1。
三、实验报告实验报告按照各实验的实验报告内容来整理。
实验报告提交地址:ftp://202.195.168.13/(在“up”文件夹里的“《数据库系统原理A》上机实验”文件夹中找到班级文件夹)用户名:nianyi密码:123456实验报告命名规则:班级+学号+姓名,如“软件080101王鹏晓”。
四、考核上机实验采用书面分析、平时实验和最后抽查考核相结合的方法评定成绩。
实验一数据库的定义和建立一、实验目的要求学生熟练掌握和使用T-SQL﹑SQL Server对象资源管理器创建数据库﹑基本表和修改表结构,及向数据库输入数据的操作,学会创建和使用表的主码、外码和约束。
二、实验内容1﹑利用SQL Server对象资源管理器创建数据库和查看数据库属性;2﹑利用T-SQL创建基本表﹑确定表的主码、外码和相应的约束;3﹑利用SQL Server对象资源管理器创建表之间的关系图;4﹑利用T-SQL向数据库输入数据。
三、注意事项1﹑输入数据时要注意数据类型、主码和数据约束的限制。
2﹑注意数据库的主码﹑外码和数据约束的定义。
3、注意参照表和被参照表之间的关系,主码和外码间的关系。
四、实验报告内容1﹑创建基本表(包括表的主码、外码和相应的约束)的SQL语句;3﹑输入数据的SQL语句。
create table s(sno char(8) primary key,sname char(20) unique,statuss smallint,city char(20));create table p(pno char(8) primary key,pname char(20),color char(8),weightt smallint);create table j(jno char(8) primary key,jname char(20),city char(20));create table spj(sno char(8),pno char(8),jno char(8),qty smallint,primary key(sno,pno,jno),foreign key(sno) references s(sno),foreign key(pno) references p(pno), foreign key(jno) references j(jno));insertinto svalues('s1','精益','20','天津');insertinto svalues('s2','盛锡','10','北京');insertinto svalues('s3','东方红','30','北京'); insertinto svalues('s4','丰泰盛','20','天津'); insertinto svalues('s5','为民','30','上海');select*from s;insertinto pvalues('p1','螺母','红','12');insertinto pvalues('p2','螺栓','绿','17');into pvalues('p3','螺丝刀','蓝','14'); insert into pvalues('p4','螺丝刀','红','14'); insert into pvalues('p5','凸轮','蓝','40'); insert into pvalues('p6','齿轮','红','30'); select* from p;into jvalues('j1','三建','北京'); insert into jvalues('j2','一汽','长春'); insert into jvalues('j3','弹簧厂','天津'); insert into jvalues('j4','造船厂','天津'); insert into jvalues('j5','机车厂','唐山'); insert into jvalues('j6','无线电厂','常州');into jvalues('j7','半导体厂','南京'); select* from j;insertinto spjvalues('s1','p1','j1','200'); insertvalues('s1','p1','j3','100'); insert into spjvalues('s1','p1','j4','700'); insert into spjvalues('s1','p2','j2','100'); insert into spjvalues('s2','p3','j1','400'); insert into spjvalues('s2','p3','j2','200'); insert into spjvalues('s2','p3','j4','500'); insert into spjvalues('s2','p3','j5','400'); insert into spjvalues('s2','p5','j1','400'); insert into spjvalues('s2','p5','j2','100'); insert into spjvalues('s3','p1','j1','200'); insert into spjvalues('s3','p3','j1','200'); insert into spjvalues('s4','p5','j1','100'); insert into spjvalues('s4','p6','j3','300'); insert into spjvalues('s4','p6','j4','200'); insert into spjvalues('s5','p2','j4','100'); insertvalues('s5','p3','j1','200'); insert into spjvalues('s5','p6','j2','200'); insert into spjvalues('s5','p6','j4','500'); select* from spj;2﹑表之间的关系图;4、总结实验过程中遇到的问题及解决。
数据库实训总结7篇
数据库实训总结7篇第1篇示例:数据库实训是数据库课程中非常重要的一环,通过实践操作,能够更好地理解数据库的基本原理和操作技巧。
本次数据库实训总结将从实训内容、实训过程和实训收获三个方面进行回顾。
一、实训内容在数据库实训中,我们主要学习了数据库的设计、建表、插入数据、查询数据、更新数据、删除数据等基本操作。
通过实际操作,我们了解了数据库设计的重要性,设计合理的数据库结构可以提高数据的存储效率和检索效率。
我们还学习了SQL语句的编写,掌握了SELECT、INSERT、UPDATE、DELETE等关键字的用法,能够灵活查询和操作数据库中的数据。
我们还学习了索引、视图、触发器等高级技术,进一步提升了数据库操作的水平。
二、实训过程在实训过程中,我们首先完成了数据库设计和建表的工作,根据需求分析确定了数据库的表结构,并创建了相应的表。
接着,我们通过SQL语句插入了大量的测试数据,以便后续的查询和操作。
然后,我们对数据库中的数据进行了各种操作,包括查询特定条件下的数据、更新数据、删除数据等。
在操作过程中,我们遇到了一些问题,如SQL语句的书写错误、查询条件设置不当等,但通过思考和实践,最终都得到了解决。
三、实训收获通过数据库实训,我们积累了丰富的数据库操作经验,掌握了SQL语句的基本用法和高级技术。
我们学会了如何设计合理的数据库结构,如何提高查询效率,如何保证数据的完整性和一致性。
我们还培养了团队合作能力和解决问题的能力,通过与同学一起讨论和思考,共同解决实训中遇到的难题。
通过实践操作,我们真正理解了数据库理论知识的应用,提升了自己的实际操作能力。
数据库实训是一次非常有意义的实践活动,通过实践操作,我们不仅巩固了数据库课程中学到的知识,还培养了实际操作能力和团队合作精神。
希望今后能够继续学习和探索数据库领域的知识,不断提升自己的专业水平。
【内容结束】第2篇示例:数据库实训总结数据库实训是大学生学习数据库课程的重要环节,通过实践操作,学生可以更深入地了解数据库的基本概念和操作技能。
数据结构上机实验源代码
数据结构上机实验源代码栈的应用十进制数转换为八进制数,逆序输出所输入的数实验代码://stack.h,头文件class stack{public:stack();bool empty()const;bool full()const;error_code gettop(elementtype &x)const;error_code push(const elementtype x);error_code pop();private:int count;elementtype data[maxlen];};stack::stack(){count=0;}bool stack::empty()const{return count==0;}bool stack::full()const{return count==maxlen;}error_code stack::gettop(elementtype &x)const{if(empty())return underflow;else{x=data[count-1];return success;}}error_code stack::push(const elementtype x){if(full())return overflow;data[count]=x;count++;return success;}error_code stack::pop(){if(empty())return underflow;count--;return success;}//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"stack.h"void read_write() //逆序输出所输入的数{stack s;int i;int n,x;cout<<"please input num int n:";cin>>n;for(i=1;i<=n;i++){cout<<"please input a num:";cin>>x;s.push(x);}while(!s.empty()){s.gettop(x);cout<<x<<" ";s.pop();}cout<<endl;}void Dec_to_Ocx(int n) //十进制转换为八进制{stack s1;int mod,x;while(n!=0){mod=n%8;s1.push(mod);n=n/8;}cout<<"the ocx of the dec is:";while(!s1.empty()){s1.gettop(x);cout<<x;s1.pop();}cout<<endl;}void main(){int n;// read_write();cout<<"please input a dec:";cin>>n;Dec_to_Ocx(n);}队列的应用打印n行杨辉三角实验代码://queue.hclass queue{public:queue(){count=0;front=rear=0;}bool empty(){return count==0;}bool full(){return count==maxlen-1;}error_code get_front(elementtype &x){if(empty())return underflow;x=data[(front+1)%maxlen];return success;}error_code append(const elementtype x){if(full())return overflow;rear=(rear+1)%maxlen;data[rear]=x;count++;return success;}error_code serve(){if(empty())return underflow;front=(front+1)%maxlen;count--;return success;}private:int count;int front;int rear;int data[maxlen];};//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"queue.h"void out_number(int n) //打印前n行的杨辉三角{int s1,s2;int i;int j;int k;queue q;for(i=1;i<=(n-1)*2;i++)cout<<" ";cout<<"1 "<<endl;q.append(1);for(i=2;i<=n;i++){s1=0;for(k=1;k<=(n-i)*2;k++)cout<<" ";for(j=1;j<=i-1;j++){q.get_front(s2);q.serve();cout<<s1+s2<<" ";q.append(s1+s2);s1=s2;}cout<<"1 "<<endl;q.append(1);}}void main(){int n;cout<<"please input n:";cin>>n;out_number(n);}单链表实验实验目的:实验目的(1)理解线性表的链式存储结构。
数据库实训总结7篇
数据库实训总结7篇篇1在本次数据库实训中,我们通过系统的学习和实践,深入了解了数据库的基本原理、基本操作和优化方法。
本次实训旨在提高我们的动手能力和实践能力,为未来的学习和工作打下坚实的基础。
一、实训内容与收获在本次实训中,我们首先学习了数据库的基本概念和原理,包括数据库的定义、作用、类型以及数据库系统的基本结构。
这些知识为我们后续的学习和实践提供了理论基础。
接着,我们学习了数据库的基本操作,如数据的增删改查等,这些操作是数据库的核心内容之一。
通过反复练习和巩固,我们逐渐掌握了这些基本操作,并能够熟练地应用它们解决实际问题。
此外,我们还学习了数据库的性能优化方法。
通过学习,我们了解到数据库性能优化的重要性,以及优化数据库性能的方法和技巧。
这些知识对于提高数据库的运行效率和响应速度具有重要意义。
在本次实训中,我们还锻炼了我们的团队协作能力和沟通能力。
通过与小组成员的共同学习和实践,我们学会了如何分工合作、如何共同解决问题以及如何进行有效的沟通。
这些能力对于我们未来的学习和工作都具有重要的意义。
二、存在的问题与改进措施在本次实训中,我们也存在一些问题。
首先,我们在学习过程中有时会出现理解不够深入、掌握不够牢固的情况。
这主要是因为我们在学习过程中没有充分理解知识的本质和内涵,只是机械地记忆了一些表面的概念和操作。
为了解决这个问题,我们应该在学习过程中注重理解知识的本质和内涵,多思考、多总结,形成自己的知识体系和思维框架。
其次,我们在实践过程中有时会出现操作不规范、不严谨的情况。
这主要是因为我们在实践过程中没有严格按照规定的操作流程和标准进行操作,存在一些随意性和盲目性。
为了解决这个问题,我们应该在实践过程中严格按照规定的操作流程和标准进行操作,注重操作的规范性和严谨性,避免出现不必要的错误和损失。
最后,我们在团队协作过程中有时会出现沟通不畅、协作不默契的情况。
这主要是因为我们在团队协作过程中没有充分了解每个成员的特点和优势,没有形成有效的团队协作机制。
数据库上机实验报告
数据库实验(第三次)题目1 实验内容:1. 检索上海产的零件的工程名称;2. 检索供应工程J1零件P1的供应商号SNO;3. 检索供应工程J1零件为红色的供应商号SNO;4. 检索没有使用天津生产的红色零件的工程号JNO;5. 检索至少用了供应商S1所供应的全部零件的工程号JNO;6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。
1select jnamefrom jwhere jno in(select jnofrom spjwhere sno in(select snofrom swhere city ='上海'));2select snofrom spjwhere jno ='j1'and pno ='p1'3selectdistinct snofrom spjwhere pno in(select pnofrom pwhere color='红'and pno in (select pnofrom spjwhere jno ='j1'));4selectdistinct jnofrom spjwhere pno notin(select pnofrom pwhere color ='红'and pno in (select pnofrom spjwhere sno in(select snofrom swhere city ='天津')))5select jnofrom spjwhere sno ='s1'6select jno,qtyfrom spjwhere pno ='p1'orderby qty desc四﹑思考题1. 如何提高数据查询和连接速度。
建立视图2. 试比较连接查询和嵌套查询有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比嵌套查询高出很多当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。
数据库上机实习心得体会8篇.doc
数据库上机实习心得体会8篇数据库上机实习心得体会(篇1)在学习这门课的过程中,在对数据库的了解过程中,慢慢对数据库有了感观。
数据库这一词并不是很难想象,并不是像外人看来很神奇。
作为计算机专业的学生,这样的专业术语或者专业知识是最基本的。
学习的时候没有想象中的那么难,只要上课能听懂就基本还可以。
但是问题还是出在书本有点厚,有的时候上课的内容都要找很久才能找到,甚至有的时候老师讲的知识书本上是找不到的,是另外补充而且是相当重要的内容。
有的时候开小差,没有听到老师讲的知识点,这就导致了以后的学习无法顺利进行,使得学习起来十分困难。
所以在数据库这门课的学习中,上课一定要听牢,就像老师说的那样,这样的专业课如果想凭考试前几天突击是行不通的,必须是日积月累的知识才能取得好成绩。
通过对数据库的学习,我也明白了各行各业都离不开数据库,就算是一个小型的超市也离不开它。
可见数据库这门课的广泛性,如果能够认真学好它将来必有成就。
我就是抱着这种信念去学习数据库的。
第一次接触数据库,第一次接触SQL语言,虽然陌生,但是可以让我从头开始学,就算没有基础的人也可以学得很好。
刚开始练习SQL语言的时候,并不是很难,基本上都是按照老师的步骤来做,还很有成就感。
后来学了单表查询和连接查询后,就慢慢发现越学越困难了,每个题目都要思考很久,并且每个题目基本上不止一个答案,所以必须找出最优的答案。
后面的删除、插入、修改这些题目都变化蛮大的,书本上的例题根本无法满足我们,好在老师给我们提供了大量的.课件,通过这些PPT,我们可以巩固课内的知识,还可以学习内容相关的知识,更好地完成老师布置的作业。
除了老师布置的一些基本作业外,还有一份大作业。
就像我们小组的是杂货店的销售管理系统,在完成这一作业的过程中,我们可以通过网络实现一家杂货店。
过程是很复杂的,杂货店需要员工,还有百来种商品,不仅需要大量的数据,还要完成需求说明,数据词典,还有E-R图等,虽然想象起来并不是很难,但是要转化成文字,转化成人们能够读懂的文字就显得十分困难。
数据库上机实验报告
数据库上机报告(一)上机实验项目名称:库以及表的基本操作学号:项目学时:姓名:班级:目录一、实验目的二、实验内容三、设计步骤以及实验结果四、实验总结一、实验目的(1)熟悉SQL Sever数据库组成(2)了解如何创建、导入以及删除数据库(3)熟悉表的创建与管理二、实验内容:(1)数据库由包含数据的基本表和其他对象(视图、索引、存储过程和触发器)组成。
系统数据库包括master数据库(记录所有其他的数据库以及相关信息)tempdb数据库(保存所有的临时表和临时存储过程)msdb数据库。
(2)建立所需要的数据库(3)建立学生表课程表以及选课表三、设计步骤以及实验结果(3.2.1)新建数据库操作:打开SQL Sever软件点开资源管理器下数据库标志左侧的加号,在下拉菜单中右键点击,(见右上图)之后点击新建数据库之后在弹出的对话框中数据库名称一栏输入你所要的数据库名称;单击确定,建立数据库完成。
(3.2.2)导入数据库一种方法是将数据库的两个源文件放在数据库存放源文件的文件夹里,之后在数据库上右击点击附加,在弹出的窗口选择添加,会弹出另一个窗口选择你要附加的数据库的源文件将其导入进来。
第二种方法是新建一个数据库,名字最好与你即将要导入进来的数据库名称一致,在所建立好的数据库上单击右键选择任务--还原--数据库,选择设备选项,接着将要导入的源文件都添加进来点击确定(3.2.3)删除数据库首先需要在你所要删除的数据库上单击右键选择任务--分离,之后要在存放数据库源文件的根目录下将有关其数据库的内容删除掉(根目录具体位置见上图)。
(3.3)创建学生表,课程表以及选课表并且对其进行适当的约束(3.3.1)创建学生表展开已经创建好的数据库student,在【表】上单击右键,选择【新建表】在前5列设计写入列名为Sno,Sname,Ssex,Sage,Sdept数据类型分别为nchar(10) ,varchar(50) ,nchar(2),int,nchar(10),其中后四项可以为null值,且将学生号Sno设为主键。
数据库上机实验报告+总结
Access数据库上机实验报告陶瓷公司管理信息系统项目1 实验目的1.了解信息系统开发的主要过程,体会在系统开发中系统实施的主要步骤。
2.掌握使用Access的表、查询、窗体、报表等工具开发一个小型信息系统的主要方法。
3.通过此系统开发实践,理解数据库的基础知识,软件开发工具的知识以及管理信息系统得知识,了解如何将它们融会贯通。
同时通过实践培养学生综合运用知识和开发应用系统的能力。
2 实验内容1、以“陶瓷公司管理信息系统”的名称创建数据库。
2、根据给定的字段信息,创建散件表、套件表、陶瓷组成表、制造商表。
3、录入数据根据给定的excel文件,利用导入功能将数据导入到相应的表中。
4、建立查询先建立散件表与制造商表的中相同字段“制造商编号”对应关系。
通过向导完成制造商散件库存量查询。
5、开发报表使用报表向导设计报表,通过添加散件成本、散件出售价格、散件编号、散件名称、库存、制造商名称完成字段分组。
6、窗体设计通过窗体设计向导,绘制界面,并定义功能键的操作功能。
添加文本框,并定义数据源,完成表的数据关联,定义好查询、添加等按钮的功能。
3 实验结果实验总结在短暂的学习中设计视图,Aceess简单查询向导,交叉表查询向导,引入数据等操作。
学习数据库的过程中感觉跟学习其他课程一样,也有丰富的知识。
查询的创建共有五种创建查询的方法,习惯采用的是设计查询和向导的查询。
设置查询方面的知识:添加表/查询,更改表或查询间的关系,删除表/查询。
设置查询结果的排序,设置字段的显示属性等等。
感谢这次教学实验,使我对数据库有了更深的了解,希望在以后的学习中,数据库的运用可以对我有更大的帮助。
数据库上机报告
数据库上机报告一、实验目的本次实验旨在让学生熟悉基本的SQL语句,了解数据库的基本概念,掌握数据库设计的基本思路和方法。
二、实验环境1.软件环境:操作系统:Windows 10数据库:MySQL编辑器:Navicat2.硬件环境:CPU:Intel Core i5内存:8GB三、实验步骤1.创建数据库和数据表使用Navicat连接MySQL数据库,在Query Editor中输入以下SQL语句创建数据库和数据表:CREATE DATABASE experiment;USE experiment;CREATE TABLE student(id INT PRIMARY KEY,name VARCHAR(20),age INT,gender VARCHAR(2),);2.插入数据在Query Editor中输入以下SQL语句插入数据:INSERT INTO student(id,name,age,gender) VALUES(1,'Tom',22,'男'),(2,'Lucy',20,'女'),(3,'Mike',25,'男'),(4,'Susan',23,'女');3.查询数据在Query Editor中输入以下SQL语句查询数据:SELECT * FROM student;4.更新数据在Query Editor中输入以下SQL语句更新数据:UPDATE student SET age=26 WHERE name='Mike';5.删除数据在Query Editor中输入以下SQL语句删除数据:DELETE FROM student WHERE name='Susan';四、实验总结通过本次实验,我掌握了SQL语句的基本使用方法,了解了数据库的基本概念,学会了使用Navicat进行数据库操作。
数据库上机实验8实验报告
数据库上机实验8实验报告第一篇:数据库上机实验8实验报告上机实验八——完整性约束的实现一、实习目的:掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。
二、实习准备:1.复习“完整性约束SQL定义”2.完成习题四第10题中的各项操作的SQL语句。
3.了解SQL Server 中实体完整性、参照完整性和用户自定义完整性的实现手段三、实习内容:1.验证习题四第10题四个表结构的SQL语句。
表一:Sstudent CREATE TABLE Sstudent(Sno char(7)NOT NULL PRIMARY KEY, Sname VarChar(20)NOT NULL, Ssex Char(2)NOT NULL DEFAULT('男')check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5)NOT NULL REFERENCES Cclass(Clno)ON UPDATE CASCADE);表二:Ccourse CREATE TABLE Ccourse(Cno Char(1)NOT NULL PRIMARY KEY, Cname VarChar(20)NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));表三:Cclass CREATE TABLE Cclass(Clno Char(5)NOT NULL PRIMARY KEY, Speciality VarChar(20)NOT NULL, Inyear Char(4)NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7)REFERENCES Student(Sno));表四:Ggrade CREATE TABLE Ggrade(Sno Char(7)NOT NULL REFERENCES Student(Sno)ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1)NOT NULL REFERENCES Course(Cno)ON DELETE CASCADE ON UPDATE CASCADE, GmarkNumeric(4,1)CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno));2.SQL Server中提供了那些方法实现实体完整性、参照完整体和用户自定义完整性答:实体完整性:是通过主码的定义(PRIMARY KEY)来实现的;参照完整性:是利用外部码(REFERENCES)的说明,以限制相关表中某些属性的取值,当用户违反规则时,提供三种:RESTRICT (限制策略),CASCADE(级联策略),SET NULL(置空策略);用户自定义完整性:check约束,对元组的CHECK约束第二篇:数据库上机实验报告兰州理工大学学生上机报告学院计算机与通信学院课程名称数据库原理学生姓名侯予南学号05550204专业班级基地班05级1班上机日期2008年4月17日指导教师李明上机实验报告(一)实验内容:1、熟悉SQL Server 2000应用环境;熟悉查询分析器的使用方法;2、运行课堂示例:建立表T eacher , Course ;进行数据插入、查询、更新、建立视图、创建触发器等操作;3、完成作业(P108 第5题,P145第5题);4、完成实验报告。
数据库上机实验报告 总结
数据库上机实验报告总结
本次数据库上机实验主要是学习和练习 SQL 语句的应用,以及实现数据的增删改查等操作。
通过实验,我深刻理解到数据库在现代信息系统中的重要性,同时也加深了对SQL 语言的认识和理解。
实验一:建立数据库和数据表
在此实验中,我们学会了如何使用 SQL 创建数据库和数据表,并加深了对 SQL 语言的理解。
此外还学会了如何定义主键、外键、约束和索引等。
实验二:数据查询操作
在此实验中,我们学会了如何使用基本的 SELECT 语句实现数据查询的功能,如使用WHERE 子句和 ORDER BY 子句来筛选和排序数据。
综上所述,通过本次上机实验,我深刻认识到数据库在现代信息系统中的重要性,并加深了对 SQL 语言的理解和应用。
此外,还学会了如何使用事务来保障数据的完整性和一致性,这对我今后的工作和学习都是非常有帮助的。
同时,通过实践,我也掌握了实际应用中的操作技巧和实现方法,这对我今后的实际工作也会有所帮助。
数据库实训报告含代码
一、实训目的本次数据库实训的主要目的是通过实际操作,使学生深入了解数据库的基本概念、原理和操作方法,掌握SQL语言的使用,提高数据库设计和实施的能力。
同时,通过本次实训,培养学生严谨的工作态度和团队协作精神。
二、实训环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实训内容1. 数据库设计2. 数据库创建与操作3. SQL语言基础4. 数据库查询5. 数据库安全与权限管理6. 数据库备份与恢复四、实训过程1. 数据库设计(1)需求分析:以学生信息管理系统为例,分析系统需求,确定数据库表结构。
(2)概念结构设计:使用E-R图描述实体关系,确定实体、属性和关系。
(3)逻辑结构设计:根据概念结构设计,将E-R图转换为关系模型,确定表结构。
(4)物理结构设计:选择合适的存储引擎,设计表空间、索引等。
2. 数据库创建与操作(1)创建数据库```sqlCREATE DATABASE student_info;```(2)创建表```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT NOT NULL,gender ENUM('male', 'female') NOT NULL,class_id INT NOT NULL,FOREIGN KEY (class_id) REFERENCES class(id));CREATE TABLE class (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL);```(3)插入数据```sqlINSERT INTO student (name, age, gender, class_id) VALUES ('张三', 20, 'male', 1);INSERT INTO class (name) VALUES ('计算机科学与技术');```3. SQL语言基础(1)查询语句```sqlSELECT FROM student WHERE age > 20;```(2)更新语句```sqlUPDATE student SET age = 21 WHERE name = '张三';```(3)删除语句```sqlDELETE FROM student WHERE name = '李四';```4. 数据库查询(1)多表查询```sqlSELECT , FROM student JOIN class ONstudent.class_id = class.id;```(2)子查询```sqlSELECT FROM student WHERE class_id IN (SELECT id FROM class WHERE name = '计算机科学与技术');```5. 数据库安全与权限管理(1)创建用户```sqlCREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';```(2)授权```sqlGRANT SELECT, INSERT, UPDATE, DELETE ON student_info. TO'user1'@'localhost';```(3)撤销权限```sqlREVOKE ALL PRIVILEGES ON student_info. FROM 'user1'@'localhost'; ```6. 数据库备份与恢复(1)备份```sqlmysqldump -u root -p student_info > student_info_backup.sql```(2)恢复```sqlmysql -u root -p student_info < student_info_backup.sql```五、实训总结通过本次数据库实训,我掌握了以下知识和技能:1. 数据库的基本概念、原理和操作方法;2. SQL语言的使用;3. 数据库设计、创建与操作;4. 数据库查询、安全与权限管理;5. 数据库备份与恢复。
数据库实训总结7篇
数据库实训总结7篇第1篇示例:数据库实训是数据库课程中非常重要的一环,通过实际操作来进行数据库设计、优化和管理等方面的训练。
在本次数据库实训中,我收获颇丰,对数据库的理论知识有了更深入的理解,同时也提升了实际操作的能力和技巧。
在数据库实训中,我们学习了数据库的基本概念和原理,如关系型数据库、SQL语言等。
通过实际操作,我们深入了解了数据库的结构和组成,掌握了SQL语言的基本语法和常用命令,能够灵活运用SQL语句进行数据查询、更新、删除等操作。
通过实际设计数据库表结构和建立索引等操作,加深了对数据库设计的理解和掌握。
在数据库实训中,我们学习了数据库的优化和性能调优的相关知识。
通过实际操作,我们了解了数据库的索引优化、查询优化、缓存优化、日志管理等方面的技术,提升了数据库的性能和效率。
我们也学习了数据库故障处理和备份恢复等技术,保证数据库的安全性和可靠性。
数据库实训对于我们的数据库学习和实践起到了非常重要的作用。
通过实际操作,我们不仅深入了解了数据库的理论知识和技术,还提升了数据库设计、优化和管理等方面的能力和技巧。
希望在今后的学习和工作中,能够继续努力学习和实践,提升自己的数据库技能,为将来的数据库应用和管理工作打下坚实的基础。
【文章结束】。
第2篇示例:数据库实训总结数据库实训是数据库课程中非常重要的一部分,通过实训能够让我们更加深入地了解数据库的知识,并且掌握数据库操作的技能。
在实训过程中,我收获颇丰,总结如下:在数据库实训中,我们学习了数据库的基本概念和原理,包括数据库的定义、特点、分类等内容。
通过理论学习,我对数据库的概念有了更加清晰的了解,为后续的实际操作奠定了基础。
在实训的过程中,我们学习了SQL语句的基本语法和操作,包括创建数据库、数据表,插入、查询、更新、删除数据等操作。
通过实际操作,我掌握了SQL语句的基本用法,能够独立完成简单的数据库操作。
数据库实训还包括了数据库设计与规范化的内容。
数据库上机实验报告
、实验目的实验一:建立数据库及基本表1、 了解SQL Server 数据库的逻辑结构和物理结构;2、 了解SQL Server 的基本数据类型;3、 学会在企业管理器中创建数据库和表;4、 使用SQL 查询分析器用 CREATE 、DROP 、ALTER 语句创建和删除数据库,创建、删除、更新基本表。
二、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器工具的使用方法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1) 使用企业管理器建立图书管理数据库,数据库名为BM ,初始大小为10MB ,最大为50MB ,数据库自动增长,增长方式是按 5%比例增长;日志文件初始为 2MB ,最大可增长到5MB ,按1MB 增长。
数据库的逻辑 文件名和物理文件名均采用默认值。
详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。
(3) 通过企业管理器,在建好了图书管理数据库 其结构为:图书(书号,类别,出版社,作者,书名,定价) 借阅(书号,读者编号,借阅日期)。
三个表各个字段的数据类型:(4)利用企业管理器向表中输入数据。
2、在查询分析器中创建数据库和数据表(1)创建数据库S-C 的sql 语句: create database s_c(2)在数据库 S-C 下,创建基本表 学生表student(sno,sname,ssex,sage,sdept)的sql 语句: create table student( sno c(8), sname c(10), ssex c(2), sage(4), sdept c(8))仓U 建基本表 课程表 course(cno,cname, ccredit) 的 sql 语句:create table course( eno c(4), cname c(10), ccredit c(2))创建基本表 成绩表sc(sno,cno,grade)的sql 语句:create table sc( sno c(8), eno c(4), grade n(4))BM 中建立图书(book)、读者(reader)和借阅(borrow) 3个表, ;读者(编号,姓名,单位,性别,电话)⑶ 在窗口下分别键入DROP TABLE Student及DROP TABLE SC 命令,运行后观察结果。
数据库系统和应用上机实验报告
filename='e:\DB\data\test3dat6.ndf')
log on
(name=test3_log,
filename='f:\DB\data\test3log.ldf')
--4
alter database test1
add file
(name=test1new_dat,
--13
select * from客户where客户名称not like '%商场'
--14
select * from产品order by单价
--15
select *
from产品
order by产品名称,单价
--16
select COUNT(产品号)
from产品
--17
select SUM(数量)
from订单名细
[[from<表名>] where<逻辑表达式>]
删除:DELETE FROM <表名>
[[FROM <表名>]WHERE <逻辑表达式>]
完整性约束影响插入、更新和删除等操作
实验4
一、实验目的:熟练掌握SQL SELECT语句,能够运用该语句完成各种查询。
二、实验内容:用SQL SELECT语句完成各种数据查询。
insert into客户values('C002','B公司','小李','上海','234567','146389045634')
insert into客户(客户号,客户名称) values('C009','J商场')
数据库上机实验报告 总结
重庆邮电大学移通学院数据库集中上机报告学生:马志鹏学号: 022*******班级: 02210901专业:计算机应用技术重庆邮电大学移通学院2011年6月第一天:Access数据库基本操作1 实验目的1、熟悉的掌握Access数据库结构与创建2、了解创建、修改、删除、查询、保存等操作3、输入数据创建、设计器创建、向导创建。
2 实验内容3 实验结果1.2.2重庆邮电大学移通学院32 Access 数据表的编辑第二天 数据表基本操作1 表关系与编辑数据1 实验目的:1、实现一对一,一对多,多对多的实体关系2、对“学生基本信息”表中的记录进行排序,按出生日期降序排列3、从“学生基本信息”表中筛选出所有计算机系男生的记录4、从“学生基本信息”表中筛选出回族和蒙古族的所有学生记录2 实验内容1. SELECT 学生基本信息表.学生姓名, 成绩档案表.*FROM 成绩档案表INNER JOIN 学生基本信息表ON 成绩档案表.学生学号= 学生基本信息表.学生学号WHERE (((学生基本信息表.学生姓名)="张冰冰"));2 SELECT 学生基本信息表.*FROM 学生基本信息表WHERE (((学生基本信息表.性别)="男") AND ((学生基本信息表.班级名称)="计算机系"));3 SELECT 成绩档案表.C语言, 课程表.* FROM 成绩档案表, 课程表;4 SELECT 学生基本信息表.*, 学生基本信息表.性别, 学生基本信息表.班级名称FROM学生基本信息表WHERE (((学生基本信息表.性别)<>"男") AND ((学生基本信息表.班级名称)<>"计算机系"));5 SELECT 学生基本信息表.*, 学生基本信息表.出生日期FROM 学生基本信息表WHERE (((Month([出生日期]))=9) AND ((Day([出生日期]))=1));6 SELECT 学生基本信息表.* FROM 学生基本信息表WHERE (((学生基本信息表.学生姓名) Like "李*"));3 实验结果4重庆邮电大学移通学院5第3天 SQL 查询设计 1 SQL 语言查询1 实验目的:熟悉了解SQL 语句2.实验类容:1. SELECT 学生基本信息表.学生学号, 学生基本信息表.学生姓名, 学生基本信息表.性别,学生基本信息表.出生日期FROM 学生基本信息表WHERE (((学生基本信息表.学生姓名) Like "孙*"));2. SELECT 学生基本信息表.学生学号, 学生基本信息表.学生姓名, 学生基本信息表.性别,学生基本信息表.出生日期FROM 学生基本信息表WHERE (((学生基本信息表.民族)="回族"));3. SELECT 学生基本信息表.学生学号, 学生基本信息表.学生姓名, 成绩档案表.C语言,成绩档案表.CAD制图, 成绩档案表.Access数据库, 成绩档案表.大学英语, 成绩档案表.大学数学, 成绩档案表.计算机基础FROM 成绩档案表INNER JOIN 学生基本信息表ON 成绩档案表.学生学号= 学生基本信息表.学生学号ORDER BY 成绩档案表.C语言DESC , 成绩档案表.CAD制图DESC , 成绩档案表.Access数据库DESC , 成绩档案表.大学英语DESC , 成绩档案表.大学数学DESC , 成绩档案表.计算机基础DESC;3 实验结果2 创建窗体1 实验目的:熟悉了解窗体的查询与创建。
数据库上机实验报告
数据库上机实验报告实验名称:数据库上机实验报告实验目的:通过在数据库环境下进行上机实验,掌握数据库的基本操作和SQL语言的使用。
实验内容:1. 创建数据库首先创建一个数据库,可以使用MySQL、Oracle或其他数据库管理系统的命令行或可视化工具创建。
命名为“example”。
2. 创建表在“example”数据库中创建一个新表,表名为“students”。
定义表结构,包括学生的学号、姓名、性别、年龄、班级等字段。
3. 插入数据向“students”表中插入若干条学生数据,包括学号、姓名、性别、年龄、班级等信息。
4. 查询数据使用SQL语句查询“students”表中的数据,例如查询年龄小于20岁的学生、查询班级为一班的学生等。
5. 更新数据使用SQL语句更新“students”表中的数据,例如将年龄小于18岁的学生的班级改为2班。
6. 删除数据使用SQL语句删除“students”表中的数据,例如删除性别为女的学生、删除班级为三班的学生等。
7. 关闭数据库使用命令或可视化工具关闭数据库连接。
实验步骤:1. 打开MySQL命令行或可视化工具,创建名为“example”的数据库。
2. 通过CREATE TABLE语句在“example”数据库中创建名为“students”的表,并定义表结构。
3. 使用INSERT INTO语句向“students”表中插入学生数据。
4. 使用SELECT语句查询“students”表中的数据。
5. 使用UPDATE语句更新“students”表中的数据。
6. 使用DELETE语句删除“students”表中的数据。
7. 关闭MySQL连接。
实验结果:1. 创建“example”数据库成功。
2. 创建“students”表成功,包括学生的学号、姓名、性别、年龄、班级等字段。
3. 成功插入若干条学生数据。
4. 成功查询“students”表中的数据,符合查询条件的学生数据被正确显示。
数据库技术上机总结
1、求取给定范围的多个素数void num(int m, int k, int xx[]){int i,j,n=0;j=m+1;while(1){for(i=2;i<j;i++)if(j%i==0)break;if(i==j)xx[n++]=i;if(n==k)break;j++;}}2、数位筛选后按数筛选并统计排序void countValue(){int i,j,thou,hun,ten,data;for(i=1000;i<5000;i++){thou=i/1000;hun=i%1000/100;ten=i%100/10;data=i%10;if(thou+hun==ten+data&&thou+hun==10*(data-thou)){cnt++;sum=sum+i;}}}3、数位分解后按特定数位进行多关键字排序void jsSort(){int i,j,data;for(i=0;i<200-1;i++){for(j=i+1;j<200;j++){if(aa[i]%1000>aa[j]%1000){data=aa[j];aa[j]=aa[i];aa[i]=data;}else if(aa[i]%1000==aa[j]%1000)if(aa[i]<aa[j]){data=aa[j];aa[j]=aa[i];aa[i]=data;}}}for(i=0;i<10;i++)bb[i]=aa[i];}04、按结构体成员进行多关键字排序void SortDat(){int i,j;PRO data;结构体名称PROfor(i=0;i<99;i++){for(j=i+1;j<100;j++){if(sell[i].je>sell[j].je){data=sell[j];sell[j]=sell[i];sell[i]=data;}else if(strcmp(sell[i].dm,sell[j].dm)==1&&sell[i].je==sell[j].je){data=sell[i];sell[i]=sell[j];sell[j]=data;}}}}5、按条件筛选并替换字符void encryptChar(){int i,j,f;for(i=0;i<maxline;i++){for(j=0;j<strlen(xx[i]);j++){f=xx[i][j]*13%256;if(f<=32||f%2==0);elsexx[i][j]=f;}}}6、字符串排序void SortCharD(void){int i,j,k;char p;for(i=0;i<maxline;i++){for(j=0;j<strlen(xx[i])-1;j++)for(k=j+1;k<strlen(xx[i]);k++){if(xx[i][j]<xx[i][k]){p=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=p;}}}}7、根据相邻数筛选统计并排序void jsVal(){int i,j,p;for(i=0;i<200;i++){p=i;if(a[i]%2!=0){for(j=i+1;j<=5+i;j++){if(a[i]<=a[j])break;}if(j==i+6)b[cnt++]=a[p];}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++){if(b[i]>b[j]){p=b[i];b[i]=b[j];b[j]=p;}}}8、字符替换void CharConvA(void){int i,j,t,p;for(i=0;i<maxline;i++){t=xx[i][strlen(xx[i])-1];for(j=strlen(xx[i])-1;j>=1;j--){p=xx[i][j]>>4;xx[i][j]=xx[i][j-1]+p;}xx[i][0]=t+xx[i][0];}}09、字符搜索第一种方法:int n=0;char *p,*r;while(*str){p=str;r=substr;while(*r){if(*r==*p){r++;p++;}elsebreak;if(*r=='\0')n++;}str++;}return n;第二种方法:int findStr(char *str, char *substr){int n=0;int i,,j;;for(i=0;i<strlen(str);i++){if(str[i]==substr[0]&&str[i+1]==substr[1])n++;}return n;}10、以递推关系求数的值int jsValue(int t){int f1=0,f2=1;int fn=0;while(fn<t){fn=f1+f2;f1=f2;f2=fn;}}T=1000, fn=1597void jsValue(){int a1=1,a2=1;int an,n=2;int sn=0,M;sn=a1+a2;while(1){an=a1+2*a2;sn+=an;n++;a1=a2;a2=an;if(sn<100&&sn+a1+2*a2>=100)b[0]=n;if(sn<1000&&sn+a1+2*a2>=1000)b[1]=n;if(sn<10000&&sn+a1+2*a2>=10000)b[2]=n;if(sn>10000)break;}11、用迭代法求方程的根float countValue(){float x0;float x1=0.0;while(1){x0=x1;x1=cos(x0);if(fabs(x1-x0)<1e-6)break;}return x1;}12、对给定范围的数进行筛选并统计jsValue(int bb[]){int i,hun,ten,data,j=0;for(i=10;i*i<=999;i++)重点{hun=i*i/100;ten=i*i%100/10;data=i*i%10;if(hun==ten||hun==data||ten==data)bb[j++]=i*i;}return j;}13、判断回文数int jsValue(long n){char a[20];int t,i;ltoa(n,a,10)重点;t=strlen(a);for(i=0;i<t/2;i++){if(a[i]!=a[--t])return 0;}if(i>=t/2)return 1;}14、数值筛选与统计(不是独立函数穿插在主函数中)for (i=0; i<20; i++){for (j=0; j<10; j++){fscanf(fp, "%d,", &xx[i*10+j]);重点printf("%d ", xx[i*10+j]);}printf("\n");}cnt1=cnt2=0;pj=0.0;for(i=0;i<N;i++)if(xx[i]%2==0)cnt2++;elsecnt1++;for(i=0;i<N;i++)if(i%2==0)pj+=xx[i];pj/=100;15、数位分解并重组后再筛选统计并排序void jsVal(){int i,j,thou,hun,ten,data;int ab,cd;int temp;for(i=0;i<MAX;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;ab=thou*10+ten;cd=data*10+hun;if(thou!=0&&data!=0)if(ab-cd>=10&&ab-cd<=20&&ab%2==0&&cd%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++){if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}}16、计算方差for (i=0; i<100; i++)重点{for (j=0; j<10; j++)fscanf(fp, "%d,", &xx[i*10+j]);fscanf(fp, "\n");if (feof(fp))break;}void Compute(void){int i, yy[MAX];for (i=0; i<1000; i++)if (xx[i]%2){odd++;ave1 += xx[i];}else{even++;ave2 += xx[i];yy[even-1] = xx[i];}ave1 /= odd;ave2 /= even;for (i=0; i<even; i++)totfc += (yy[i]-ave2)*(yy[i]-ave2)/even; }17、选票问题void CountRs(void){int i,j,cnt;for(i=0;i<100;i++){cnt=0;for(j=0;j<10;j++){if(xx[i][j]=='1')cnt++;}if(cnt>5){for(j=0;j<10;j++){if(xx[i][j]=='1')yy[j]+=1;}}}}18、six与sine的问题void countValue(){int S, I, X, N, E;int SIX, NINE;for (S=1; S<10; S++)for (I=0; I<10; I++)for (X=0; X<10; X++)for (N=1; N<10; N++)for (E=0; E<10; E++){SIX = S*100+I*10+X;NINE = N*1000+I*100+N*10+E;if (SIX*3 == NINE*2){cnt++;sum += SIX+NINE;}}}19、英文文章排序void jsSort(){int i, j, k, strl;char ch;for (i=0; i<20; i++){strl = strlen(xx[i]);for (j=1; j<strl-2; j=j+2)for (k=j+2; k<strl; k=k+2)if (xx[i][j] > xx[i][k]){ch = xx[i][j];xx[i][j] = xx[i][k];xx[i][k] = ch;}}}20、出圈问题void Josegh(void){int i,j,w;int s1=s;for(i=1;i<=n;i++)p[i-1]=i;for(i=n;i>=2;i--){s1=(s1+m-1)%i;if(s1==0)s1=i;w=p[s1-1];for(j=s1;j<=i-1;j++)p[j-1]=p[j];p[i-1]=w;}}21、结构体筛选并排序int jsSort(){int i,j,cnt=0;data temp;for(i=0;i<200;i++){if(aa[i].x2>aa[i].x1+aa[i].x3)bb[cnt++]=aa[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++){if(bb[i].x2+bb[i].x3<bb[j].x2+bb[j].x3){temp=bb[i];bb[i]=bb[j];bb[j]=temp;}}return cnt;}22、字符串循环移位指针void chg(char*s){int i,str;char ch;str=strlen(s);ch=*s;for(i=0;i<str-1;i++)*(s+i)=*(s+i+1);*(s+str-1)=ch;}23、以特定字符分割字符串并重组void StrOR(void){int i, j, k;char buf[80];for (i=0; i<maxline; i++){j = strlen(xx[i])-1;while (xx[i][j]!='o' && j>=0)j--;if (j < 0)continue;xx[i][j] = 0;strcpy(buf, &xx[i][j+1]);k = j = 0;while (xx[i][j]){while (xx[i][j]!='o' && xx[i][j])j++;if (!xx[i][j]){strcat(buf, &xx[i][k]);break;}xx[i][j] = 0;strcat(buf, &xx[i][k]);j++;k = j;}strcpy(xx[i], buf);}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一(1)无条件单表查询select sname NAME,'year of birth:' BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT FROM student;(2)有条件单表查询SELECT sname,sdept,sage FROM student WHERE sage NOT BETWEEN 20 AND 23;(3)单表嵌套(一层)查询SELECT sno,sname,sdept FROM student WHERE sdept IN(SELECT sdept FROM student WHERE sname='刘晨');(4)复合条件多表查询SELECT student.sno,sname,cname,grade FROM student ,sc,course WHERE student.sno=sc.sno AND o=o;(5)使用COUNT()的单表查询SELECT COUNT(*) FROM student;(6)使用AVG()的单表查询SELECT AVG(grade) '平均成绩' from SC where CNO='1';(7)查询结果分组SELECT cno,COUNT(sno) '人数' FROM sc GROUP BY cno;(8)查询结果排序SELECT * FROM student ORDER BY sdept,sage DESC;(9)使用通配符的查询SELECT sname,sno,ssex FROM student WHERE sname NOT LIKE'刘%';(10)使用换码字符的单表查询SELECT cno,ccredit FROM course WHERE cname LIKE 'DB\_Design'ESCAPE'\';(11)插入单个元组插入一个新学生元组Insert into student (sno,sname,ssex,sdept,sage) values ('200215128','陈冬','男','IS',18)(12)插入子查询结果对每一个系,求学生平均年龄,并把结果存入数据库Create table dept_age(sdept char(15),avg_age int)Insert into dept_age(sdept,avg_age) select sdept,avg(sage) from student group by sdept(13)修改某个元组的值将学生200215121的年龄改为22岁Update student set sage=’22’ where sno=’200215121’(14)修改多个元组的值将所有学生的年龄增加一岁Update student set sage=sage+1(15)删除一个元组的值删除学号为200215128的学生记录delete from student where sno='200215128'(16)建立视图建立信息系学生的视图create view is_student as select sno,sname,sage from student where sdept='IS'×(17)查询视图查询选修了1号课程的信息系学生信息Select is_student.sno,sname from is_student,sc where is_student.sno=sc.sno and o=’1’×(18)更新视图将信息系学生视图is_student中学号为95001的学生姓名改为李楠update is_student set sname='李楠' where sno='95002'将下列问题用SQL命令表示:1.查询‘IS’系学生的学号、姓名、性别。
SELECT sno,sname,ssex FROM student WHERE sdept='IS';2.查询‘IS’系年龄在20岁以下的学生。
SELECT * FROM student WHERE sdept='IS'AND sage<20;3.查询所有不姓‘刘’的学生的学号、姓名、性别。
SELECT sname,sno,ssex FROM student WHERE sname NOT LIKE'刘%';4. 查询student表中学生的总人数。
SELECT COUNT(*) '总人数' FROM student;5. 查询和‘李勇’同性别的所有同学的姓名。
SELECT sname from student where ssex in(select ssex from student where sname='李勇');6. 查询和‘李勇’同性别并同系的所有同学的姓名。
Select sname from student where ssex in (select ssex from student where sname='李勇') and sdept in (select sdept from student where sname='李勇')7. 查询选修2号课程的学生的学号。
Select sno from sc where cno='2'8. 求3号课程的平均成绩。
Select avg(grade) from sc where cno=’3’9.查询选修2号课程的学生的最高分。
Select max(grade) from sc where cno=’2’10.按成绩降序排列,输出‘IS’系学生选修了2号课程的学生的姓名和成绩。
Select sname,grade from student,sc where sdept='IS' and cno='2' and student.sno=sc.sno order by gradeSQL查询分析器下建数据库的命令代码:create database 霍双双200826352on(name='霍双双200826352_data',filename='E:\霍双双20082635\霍双双200826352_data.mdf',size=10mb,maxsize=50mb,filegrowth=10%)log on(name='霍双双200826352_log',filename='E:\霍双双20082635\霍双双200826352_log.ldf',size=10mb,maxsize=50mb,filegrowth=10%)在查询分析器重建立各表的命令代码:建立student表:create table student(sno char(5) primary key,sname char(20),ssex char(2),sage int,sdept char(15))建立course表:create table course(cno char(2)primary key,cname char(15),cpno char(2),ccredit int)建立cs表:use 霍双双200826352create table sc(sno char(5),cno char(2),grade smallint,primary key(sno,cno),foreign key(sno)references student(sno),foreign key(cno)references course(cno))实验二T-SQL查询、存储过程、触发器、完整性上机作业题第一部分:T-SQL程序设计(1).如果3号课程的平均成绩在80分以上,则输出“3号课程成绩良好”,否则输出“3号成绩一般”declare @avg float set @avg=(select avg(grade)from sc where cno='3')if @avg>80print'3号课程成绩良好'else print'3号成绩一般'(2)计算并输出95003号学生的平均成绩,若无该生信息,则显示“该生未选课”,提示信息.declare @avg float if(select count(*)from sc where sno='95003')=0 print '该生未选课' else begin select @avg=avg(grade)from sc where sno='95003' print'95003号学生平均成绩' print @avg end(3).如果有成绩在90分以上的学生,则显示他的学号,课程和成绩,否则显示“没有学生的课程成绩在90分以上”提示信息declare @text char(10) if exists(select grade from SC where grade>90)select Sno,Cno,Grade from SC where Grade>90 else begin set @text='没有学生的课程成绩在90分以上' print @text end×(4).利用游标逐行显示student表中的记录。
declare stu cursor for select *from student open stu fetch next from stu while @@fetch_status=0 fetch next from stu close stu deallocate stu(5).用自定义函数计算全体男生的平均年龄create function avg_age(@sex char(2)) returns intas begin declare @aver int select @aver=(select avg(Sage) from Student where Ssex=@sex )return @aver enddeclare @aver1 int,@sex char(2) set @sex='男' select @aver1=dbo.avg_age(@sex)select @aver1 as '全体男生的平均年龄'go(6).显示course表中课程名的前2个字符。