数据库表的查询操作实践演练(实验三)_MsSql

来源:脚本之家  责任编辑:小易  

select 学生学号 from 学生选课表 group by 学生学号 having avg(课程的成绩)<60www.zgxue.com防采集请勿采集本网。

继前两次的实验,本次实验以熟练掌握利用select语句进行各种查询操作:单表查询、多表连接及查询、嵌套查询、集合查询等,巩固数据库查询操作。

sql server 查询一个表的所有信息:查询语法为:select*from 表名 语法中的”*“代表所有。实际操作举例:某数据中有一表叫”user_user“,表中存储了一些用户信息;1、查询”user_user“表中

下面就跟着小编一起练习吧!

MySql:SELECT*FROM 表名 ORDER BY 表_ID DESC LIMIT 1 SQLServer/Oracle:SELECT TOP 1*FROM 表名 ORDER BY 表_ID DESC

在实验一创建并插入数据的表(Student, Course,SC,Teacher,TC)的基础上,完成以下操作。

你要同时使用的话,就用你的odbc 类,再实例化建一个m_pset的指针,用哪个表的记录 就用那个m_pset

(1)将教师‘罗莉'的名字改为‘罗莉莉'。

是php吗?os=array(\"Mac\",\"NT\",\"Irix\",\"Linux\");if(in_array(\"Irix\",$os)){ echo\"Got Irix;}

复制代码 代码如下:update Teacher set tname='罗莉莉' where tname='罗莉'

更新数据库表数据的查询称为(更新)查询。数据更新可以使用“对象资源管理器”和T-SQL语句两种方式实现。SQL语言的数据更新功能保证了DBA或数据库用户可以对已经建好的数据库进行数据维护。数据

(2)将两个同学(数据自己临时设置,用后即删除)的两门课程的成绩以运行sql程序文件的形式插入score表中。该题用以验证、理解和掌握关系模型的完整性规则;

 插入:

复制代码 代码如下:insert into Score(sno,cno,grade) values ('04261006','C003','64')

insert into Score(sno,cno,grade) values('04261007','C004','79')

查询:

复制代码 代码如下:select sno 学号,cno 课程号,grade 分数from Score where sno=04261006 or sno=04261007;

删除:

复制代码 代码如下:delete from Score where sno=04261006 or sno=04261007;

(3)求每门课的平均成绩,并把结果存入average表(自行设计并创建);

复制代码 代码如下:CREATE TABLE average

(

cno CHAR(8),

avscore numeric(5,2),

constraint a1 primary key (cno),

constraint a2 foreign key (cno) references Course(cno),

)

insert into average(cno,avscore)

select distinct cno ,avg(grade) from Score group by cno

(4)将学生“马丽”的年龄改为24;

复制代码 代码如下:Update Student set 2014-year(Sbirth) 年龄 where Sname=' 马丽'

(5)将所有学生的szipcode属性列值填补上;

复制代码 代码如下:update Student set szipcode='221000'

(6)将average表中的所有课程的平均成绩置零;

复制代码 代码如下: update average set avscore='0'

(7)删除average表中的课程号为‘C007'的平均成绩记录;

复制代码 代码如下:delete from average where cno='C007'

(8)删除所有average表中平均成绩记录;

复制代码 代码如下:delete from average;

(9)建立一个临时学生信息表(tstudent),删除该表中的学号含‘101'的所有学生记录。

复制代码 代码如下:create  table  tstudent   ( Sno  char(8)  primary  key,     Sname  varchar(8)  unique ); 

Delete  from  tstudent  where  Sno  like '001011%';

(10)查询全体学生的学号与姓名;

复制代码 代码如下:select sno 学号,sname 姓名from Student

(11)查询全体学生的学号、姓名、所属系;

复制代码 代码如下:select sno 学号,sname 姓名,sdept 系from Student

(12)查询全体学生的详细记录;

复制代码 代码如下:select * from Student

(13)查询全体学生的姓名及其年龄;

复制代码 代码如下:select sname 姓名,2014-year(sbirth) 年龄from Student

(14)查询全体学生的姓名、出生年份;

复制代码 代码如下:select sname 姓名,year(sbirth) 出生年份from Student

(15)查询所有修过课的学生的学号;

复制代码 代码如下:select distinct sno from Score

select distinct student.sno from Student,Score where Student.sno=Score.sno and Score.grade>0 ;

(16)查询“计算机系”班全体学生名单;

复制代码 代码如下:select sno,sname from Student where sdept='计算机系'

(17)查询查询所有年龄在23岁以下的学生姓名及其年龄;

复制代码 代码如下:select sname 姓名,2014-year(sbirth) 年龄from Student where 2014-year(sbirth)<23;

(18)查询考试成绩有不及格的学生的学号;

复制代码 代码如下:select distinct sno from Score where grade<60;

(19)查询年龄在20至22岁之间的学生姓名、系和年龄;

复制代码 代码如下:select sname 姓名,sdept 系,2014-year(sbirth) 年龄from student where 2014-year(sbirth) between 20 and 22;

(20)查询年龄不在20至22岁之间的学生姓名、系和年龄;

 复制代码 代码如下:select sname 姓名,sdept 系,2014-year(sbirth) 年龄from student where 2014-year(sbirth) not between 20 and 22;

(21)查询“计算机系”和“电商系”的学生的姓名;

复制代码 代码如下:select sname from Student where sdept='计算机系' or sclass='电商系'

(22)查询既不是“计11”也不是“计61”班的学生的姓名和班级信息;

复制代码 代码如下:select sname,sclass from Student where sclass not in('计','计');

(23)查询学号为“04262002”的学生的详细情况;

[code]select student.sno,sname,ssex,2014-year(sbirth),sclass,grade from Student,Score where Student.sno=Score.sno and Student.sno='04262002';

(24)查询学号以“04262”打头的学生信息;

复制代码 代码如下:select * from Student where sno like '04262%'

(25)查询所有姓“张”学生的学号、姓名、性别、年龄;

复制代码 代码如下:select sno 学号,sname 姓名,ssex 性别,2011-year(sbirth) 年龄from Student where sname like'王%'

(26)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄;

复制代码 代码如下: select sno 学号,sname 姓名,ssex 性别,2011-year(sbirth) 年龄from Student where sname like '_田%'

(27)查询所有不姓“刘”学生的姓名;

复制代码 代码如下:select sname 姓名from Student where sname not like '刘%'

(28)查询课程号以“C”开头的最后两个字母为“05”的课程号和课程名;

复制代码 代码如下:select cno,cname from Course where cno like 'C%05'

(29)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,试查找缺少考试成绩的学生和相应的课程号;

复制代码 代码如下:select Student.sno,sname,cno from Student,Score where Student.sno=Score.sno and grade is NULL;

(30)查找全部有成绩记录的学生学号、课程号;

复制代码 代码如下:select sno, cno from Score where grade is not NULL;

(31)查找“计算机系”年龄在22岁以下的学生学号、姓名;

复制代码 代码如下:select sno ,sname from Student where sdept='计算机系' and 2014-year(sbirth)<22

(32)查找选修了“C001”号课程的学生学号及其成绩,查询结果按分数降序排序;

复制代码 代码如下:select student.sno,grade from student,Score where Student.sno=Score.sno and cno='C001' order by grade desc;

(33)查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列;

复制代码 代码如下:select * from student order by sdept asc,2014-year(sbirth) desc;

(34)查询学生总人数;

复制代码 代码如下:select count(*) 人数from Student;

(35)查询选修了课程的学生人数;

复制代码 代码如下:select count(distinct sno)人数from Score;

(36)在所有课程中查询最高分的学生学号和成绩;

复制代码 代码如下:select sno,grade from Score where grade =(select max(grade)from Score )

复制代码 代码如下:select distinct a.* from Score a where a.sno IN (select top 1 Score.sno from Score where Score.cno = a.cno order by grade desc)

(37)查询学习“C001”课程的学生最高分数;

 复制代码 代码如下:select max(grade)最高分数from Score where cno='C001'

(38)计算各个课程号与相应的选课人数;

复制代码 代码如下:select count(sno) 选课人数from Score group by cno;

(39)查询“计算机系”选修了两门课程以上的学生学号、姓名;

复制代码 代码如下:select Student.sno,sname from Student where Student.sno in

(select Student.sno from Student,Score where

sdept='计算机系'and Student.sno=Score.sno group by Student.sno having count(cno)>=2);

(40)自然连接student和score表;

复制代码 代码如下:select student.*,Score.grade from student ,Score where student.sno=Score.sno;

(41)使用自身连接查询每一门课程的间接先行课(即先行课的先行课)

复制代码 代码如下: select a.cno,b.cpno from Course a,Course b where a.cpno=b.cno;

(42)使用复合条件连接查询选修“c001”号课程且成绩在90分以上的所有同学;

复制代码 代码如下: select sname,grade from student,Score where Student.sno=Score.sno and cno='C001' and grade>=90;

(43)使用复合条件连接查询每个学生选修的课程名及其成绩;

 复制代码 代码如下: select Student.sno,sname,cname,grade from Course,Score,Student where Course.cno=Score.cno and student.sno=Score.sno;

(44)查询选修了全部课程的学生;

复制代码 代码如下:select Sname from Student where not exists (select *  from Course where not exists(select *  from Score where Sno=Student.Sno and Cno=Course.Cno))

(45)查询所有选修了C001号课程的学生学号、姓名;

复制代码 代码如下:select student.sno,sname from student,Score where student.sno=Score.sno and cno='C001';

(46)查询选修了课程C001或C007的学生学号、姓名;

[code]select student.sno,sname,cno from student,Score where student.sno=Score.sno and cno in ('C001','C007');[/code]

(47)查询“计算机系”的学生及年龄不大于23岁的学生;

复制代码 代码如下:select sno ,sname,2014-year(sbirth) age ,sclass from student where sdept='计算机系' or 2014-year(sbirth)<=23;

(48)查询既选修了课程C001又选修了课程C007的所有学生学号、姓名;

复制代码 代码如下:select student.sno,sname from student,Score where student.sno=Score.sno and cno='C001' and student.sno in (select student.sno from student,Score where student.sno=Score.sno and cno='C007')

(49)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;

复制代码 代码如下:select student.sno ,sname,ssex,cname,2011-year(sbirth) age from student,Score,Course where student.sno=Score.sno and Score.cno=Course.cno and cname='数据库原理';

(50)查询其他班中比“计算机系”所有学生年龄都小的学生名单;

复制代码 代码如下:select sno,sname ,2014-year(sbirth) age from student where 2014-year(sbirth)<(select min(2014-year(sbirth)) from student where sclass='计61')and sclass !='计61';

(51)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;

复制代码 代码如下:select sno,sname,ssex,2014-year(sbirth) age from student where sdept=(select sdept from student where sname='夏天') and sname!='夏天'

(52)建立“计算机系”学生的视图1;

复制代码 代码如下:create view view_student

as select sno,sname,ssex,sbirth,sclass from student where sclass='13z网络'

(53)建立“计算机系”学生的视图2,并要求进行修改与插入时,仍须保证该视图只有“计算机系”班学生;

复制代码 代码如下:create view view_student2

as select sno,sname,ssex,sbirth,sclass from student where sclass='13z网络' with check option;

(54)建立“计算机系”选修了“C001”课程的学生的视图,定义视图名为“v_cs_C001_student1”;

复制代码 代码如下:create view v_cs_C001_student1

as select student.sno,sname,ssex,sbirth,sclass from Student ,Score where

student.sno=Score.sno and sclass='13z网络' and cno='C001';

(55)建立“计算机系”班选修了“C001”课程且成绩在90分以上的学生的视图,定义视图名为“cs_c001_student2”;

复制代码 代码如下:create view cs_c001_student2

as

select student.sno,sname ,ssex,sbirth,sclass,cno from student,Score where

student.sno=Score.sno and cno='C001' and sclass='13z网络'and student.sno in (select student.sno from student,Score where student.sno=Score.sno and grade>90)

(56)定义一个反映学生年龄的视图,定义视图名为“v_birth_student”;

复制代码 代码如下:create view v_birth_student

as

select sno,sname,2014-year(sbirth) age from student

(57)将学生表中所有女生记录定义为一个视图,视图名为“v_female_student”;

复制代码 代码如下:create view v_female_student

as

select * from student where ssex='女';

(58)将学生的学号及其平均成绩定义为一个视图,视图名为“v_average_student”;

复制代码 代码如下:create view v_average_student

as

select sno,avg(grade) avscore from Score group by sno;

(59)在“计算机系”学生视图中找出年龄小于22岁的学生;

复制代码 代码如下:select * from view_student where 2014-year(sbirth)<=22;

(60)利用视图查询“计算机系”选修了“C001”课程的学生;

复制代码 代码如下:select * from v_cs_C001_student1;

(61)通过(52)中的“计算机系”视图修改某个学生的名字;

复制代码 代码如下:update view_student set sname='王某某'where sno=04261001;

(62)通过(53)中的“计算机系”视图,插入一个新学生记录。

复制代码 代码如下:insert into view_student2(sno,sname,ssex,sbirth,sclass) values ('04262004','张某某','男','1987/11/09','计');

(63)通过(53)中的“计算机系”视图,删除一个学生记录。

复制代码 代码如下:delete from view_student2 where sno='04262004'and sname='张某某';

实验课结束了,相信通过本节课的实践操作,小伙伴们都对数据库表的操作有了更进一步的了解。

以上就是查询数据库表的基本操作,几乎涵盖了各种查询操作所遇到的情况,值得大家亲自操作一下,相信对大家的学习有所帮助。

1)数据定义语言:负责数据的模式定义与数据的物理存取构建;(2)数据操纵语言:负责数据的操纵,如查询与增、删、改等;(3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • mysql学习笔记3:表的基本操作介绍
  • 单个select语句实现mysql查询统计次数
  • sql查询出各科成绩最好的学生信息
  • mysql查询昨天 一周前 一月前 一年前的数据
  • mysql查询今天、昨天、近7天、近30天、本月、上一月的sql语句
  • mysql查询时间段的方法
  • mysql查询和修改auto_increment的方法
  • 一个优化mysql查询操作的具体案例分析
  • mysql查询倒数第二条记录实现方法
  • 50条sql查询技巧、查询语句示例
  • sql查询出表、存储过程、触发器的创建时间和最后修改时间示例
  • 大幅优化mysql查询性能的奇技淫巧
  • sql大量数据查询的优化及非用like不可时的处理方案
  • 如何使用mysql查询某个列中相同值的数量统计
  • sql如何实现mysql的递归查询
  • 数据库表的创建、管理和数据操作(实验一)
  • 数据库表的查询操作(实验二)
  • sql数据库优化大总结之百万级数据库优化方案
  • 删除sqlserver数据库日志和没有日志的数据库恢复办法
  • 优化 sql server 索引的小技巧
  • sqlserver获取各种形式的时间
  • sql-order by 多字段排序(升序、降序)
  • sql中 order by 和 group by的区别
  • sqlserver中char,nchar,varchar与nvarchar的区别分析
  • sql字符串处理函数大全
  • sql server高级应用 收藏版
  • oracle 删除用户和表空间详细介绍
  • 负责数据库中查询操作的数据库语言是?
  • 求:数据库表的一个查询操作!
  • 如何查询数据库里某一张表的全部数据
  • 数据库管理系统能对数据库中的数据进行查询、插入、修改和删除等操作,这种功能称为
  • 如何根据sql数据库表中数据进行查询
  • 数据库中如何查询表的最后一条记录?
  • mfc数据库查询操作的时候,怎么规定只在一张表中查找
  • 数据库查询操作
  • 更新数据库表数据的查询称为( )查询
  • 做一个网页对一个数据库进行访问,网页上输入表的名字 点击查询 就能调出数据库里面表的信息.
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mssqlmysql学习笔记3:表的基本操作介绍单个select语句实现mysql查询统计次数sql查询出各科成绩最好的学生信息mysql查询昨天 一周前 一月前 一年前的数据mysql查询今天、昨天、近7天、近30天、本月、上一月的sql语句mysql查询时间段的方法mysql查询和修改auto_increment的方法一个优化mysql查询操作的具体案例分析mysql查询倒数第二条记录实现方法50条sql查询技巧、查询语句示例sql查询出表、存储过程、触发器的创建时间和最后修改时间示例大幅优化mysql查询性能的奇技淫巧sql大量数据查询的优化及非用like不可时的处理方案如何使用mysql查询某个列中相同值的数量统计sql如何实现mysql的递归查询数据库表的创建、管理和数据操作(实验一)数据库表的查询操作(实验二)sql数据库优化大总结之百万级数据库优化方案删除sqlserver数据库日志和没有日志的数据库恢复办法优化 sql server 索引的小技巧sqlserver获取各种形式的时间sql-order by 多字段排序(升序、降序)sql中 order by 和 group by的区别sqlserver中char,nchar,varchar与nvarchar的区别分析sql字符串处理函数大全sql server高级应用 收藏版oracle 删除用户和表空间详细介绍sql server 2012 安装图解教程(附sql server数据库入门学习总结microsoft sql server 2012 数据sql重复记录查询的几种方法win7系统安装sqlserver2000的详细sqlserver中distinct的用法(不重sql server错误代码大全及解释(sql-order by 多字段排序(升序、sql将一个表中的数据插入到另一个用sql语句添加删除修改字段、一些sql server 表结构修改方法sql server中数据行批量插入脚本的存储实sql语句中不同的连接join及join的用法sql根据指定分隔符分解字符串实现步骤丢失的数据忘记备份的处理方法[图文]在sql server中迁移数据的几种方法数据库性能优化三:程序操作优化提升性能简单介绍sql server中的自旋锁sql多表行转列、级联行转列示例代码sqlserver 数据库故障修复顶级技巧之一
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved