热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sql语句_TSQL语句练习

篇首语:本文由编程笔记#小编为大家整理,主要介绍了T-SQL语句练习相关的知识,希望对你有一定的参考价值。实验报告

篇首语:本文由编程笔记#小编为大家整理,主要介绍了T-SQL语句练习相关的知识,希望对你有一定的参考价值。



实验报告

案例一:表如下图所示(数据库位置:E:\Y2期试验\SQL

技术分享 

实验需求:

1.products表中查询出厂日期晚于20114月的水果信息

语句:select * from products where 出厂日期>‘2011-04-30‘ and 种类=‘水果

技术分享 

结果:

技术分享 

 

2.products表中分组查询所有水果、蔬菜、坚果的总成本

语句:select 种类,SUM(成本) as 总成本from products  group by 种类

技术分享 

结果:

技术分享 

解释:

       select  后面接的是列名,sum(成本):每个组的成本总和

       group by :代表在种类中,相同的部分成为组

3.products表中查询所有水果的信息,并按照成本从高到低的顺序显示结果

语句:select * from products where 种类=‘水果‘  order by 成本 desc

技术分享 

结果:

技术分享 

 

4.products表中查询成本在15元之间的蔬菜信息

方法一:

语句:select * from products  where 种类=‘蔬菜‘  and 成本 between 1  and  5

技术分享 

方法二:

技术分享 

结果:

技术分享 

 

 

5.products表中所有水果的名称、种类和出厂日期信息插入到新表products_new

语句:select 名称,种类,出厂日期 into products_new  from products where 种类=‘水果

技术分享 

结果:

技术分享 

 

 

案例二:表如下图所示

技术分享技术分享 

 

 

 

 

 

 

 

 

 

 

 

 

实验需求:

1、products表和sales表中查询产品的名称、种类、成本、销售地点和销售价格。

方法一:

语句:select products.名称,products.种类,products.成本,sales.销售地点,sales.销售价格

From  products,sales

Where products.名称=sales.名称

技术分享 

结果:

技术分享 

语法注释:

       第一行:查询 哪个表的哪个列名称

       第二行:两个表

       第三行:相同的属性

 

方法二:

语句:select a.名称,a.种类,a.成本,b.销售地点,b.销售价格

From  products as a  inner join sales as b  on  a.名称=b.名称

技术分享 

结果:

技术分享 

语法注释:

      第一行:先定义表为a表的哪个列名称和b表的哪个列名称

      第二行:两个表,并且对应第一行的映射名称(as代表修改后的属性)

             inner join :内链接,表示两个表对比,on:后接属性(相同的部分显示)

      第三行:相同属性

 

2、products表和sales表中查询销往海南的产品名称、种类、成本和销售价格。

方法一:

语句:select products.名称,products.种类,products.成本,sales.销售价格

From products,sales

Where products.名称=sales.名称 and 销售地点=海南

技术分享 

结果:

技术分享 

方法二:

技术分享 

 

 

案例三:表如下图所示

技术分享 

实验需求:

1、查询王明的成绩?结果:王明 90

Select 姓名,成绩  from  student where 姓名=王明

 

2、给王明加2分?

Update student set 成绩=成绩+2  where 姓名=王明

 

3、查询备注不为空的学生?

Select  *  from  student  where 备注  is not null

 

4、查询成绩大于95分以上的学生?

Select  *  from  student  where 成绩>95

 

5、王明转学,把王明删掉?

Delete from student  where 姓名=‘王明’

 

6、来了一位新同学,名字叫于美丽?

Insert into student  values(20,于美丽,110110110,3,100,勤奋好学)

 

7、查询成绩大于95分,并且班级是2班的都有谁?

Select * from student  where 成绩>95 and 所在班级=2

 

8、查询成绩大于95分,并且班级是12班的都有谁?

Select * from student  where 成绩>95 and 所在班级 between 1  and  2

 

9、查询平均成绩?

Select avg(成绩) as 平均成绩  from student

 

 

 

 

10、使用truncate删除所有的数据

Truncate  table  student

 

 

实验案例四:表如下图所示

技术分享 

实验需求:

1、显示表中全部内容

select * from 员工信息表

 

2、显示工资大于5000员工的所有信息  

select * from 员工信息表

where 工资>=5000

 

3、显示所有在1950到1988年之间出生员工的所有信息

select * from 员工信息表

where 出生日期>=‘1950‘ and 出生日期<=‘1988‘

 

4、查询出所有住在昌平的员工

select * from 员工信息表

where 家庭住址 like ‘%昌平%‘

5、所有销售员的工资涨幅1000

update 员工信息表

set 工资=工资+1000

where 职位=‘销售员‘

 

6、删除工资小于3000员工的记录

delete from 员工信息表

where 工资<=3000

 

7、所有经理的工资下调10%

update 员工信息表

set 工资=工资*0.9

where 职位 like ‘%经理‘

 

案例五:表如下图所示

技术分享 

 

1、查询年龄大于35,小于 50,并且职位是员工?

语句:select * from 员工信息表

where 年龄>35 and 年龄<50 and 职位=‘员工

 

2、查询员工的平均年龄?

语句:select AVG(年龄) as 平均年龄  from 员工信息表

 

3、查询各种职位的平均年龄,并且按照每种职位的平均年龄降序排序?

语句:select 职位,AVG(年龄) as 平均年龄  from 员工信息表

group by 职位

order by AVG(年龄) desc

 

4、查询年龄最大和最小的人是谁?

语句:select 员工姓名,年龄 from 员工信息表

where 年龄=(select MAX(年龄)

from 员工信息表)

 

5、查询每种职位有多少人?并且按每种职位的人数升序排序?

语句:select 职位,COUNT(员工id) as 人数

from 员工信息表

group by 职位

 

按降序:

 技术分享

 

6、查询年龄大于等于50岁和小于30岁的都有哪些人?

语句:select * from 员工信息表

where 年龄>=50 or 年龄<30

 

 

 

案例六:表如下图所示

 

 

技术分享 

 

技术分享 

技术分享 

技术分享 

 

技术分享 

技术分享 

 

技术分享 

 

技术分享 

技术分享 

技术分享 

 

技术分享 

 

实验需求:

1、两个表查询(学生表,学生表1

查询学生的姓名,电话,和家庭住址:

语句:

select 学生表.姓名,学生表1.电话,学生表1.家庭住址

from 学生表,学生表1

where 学生表.学生id=学生表1.学生id

结果:

技术分享 

 

2、三个表的查询:(学生表,课程表,成绩表)

查询每个学生选择的课程,和成绩是多少?

语句:

 

select 学生表.姓名,课程表.课程名,成绩表.分数

from 学生表,课程表,成绩表

where 学生表.学生id=成绩表.学生id AND 成绩表.课程ID=课程表.课程ID

结果:

技术分享 

(2)、查询每个学生选择的总课程数,和分数

 

 

 

3、合并两个结果集

SELECT 姓名,学号,班级,国籍

FROM 二班

UNION

select +‘ ‘+,学号,班级,国籍

from 一班

order by 班级 desc,学号 asc

结果:

技术分享 

 

 

4、内联接(查找参加考试的学生的姓名和CNT成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S INNER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

 

结果:

技术分享 

 

5、左外连接(查找本班学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S LEFT OUTER  JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

结果:

技术分享 

 

6、右外连接(查找参加本次考试的学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S RIGHT OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

技术分享 

 

7、完全连接(查找所有学生的考试情况)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S FULL OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

技术分享 

 

 

8、自连接(查找每个员工的上司姓名)

SELECT Y.员工姓名,s.员工姓名 AS 上司姓名

from 员工信息表 as y inner join 员工信息表 as s

on y.上司ID=S.员工ID

结果:

技术分享 

 

9、子查询(查找每个季度的生产数量,百分比)

语句:

技术分享 

结果:

技术分享 

10、在where子句中使用SELECT ,查找课程ID=1并且成绩〉80的学生

select 学生表.姓名

from 学生表

where 80<(select 分数 from 成绩表

where 学生表.学生ID=成绩表.学生ID AND 成绩表.课程ID=1)

结果:

技术分享 

 

11、交叉连接

SELECT T.教师姓名,c.课程名

from 教员基本信息表 AS t cross join 课程表 AS C

技术分享 

 

 

 

 

 


本文出自 “11829099” 博客,请务必保留此出处http://11839099.blog.51cto.com/11829099/1866471


推荐阅读
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 通过利用代码自动生成技术,旨在减轻软件开发的复杂性,缩短项目周期,减少冗余代码的编写,从而显著提升开发效率。该方法不仅能够降低开发人员的工作强度,还能确保代码的一致性和质量。 ... [详细]
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 如何有效防御网站中的SQL注入攻击
    本期文章将深入探讨网站如何有效防御SQL注入攻击。我们将从技术层面详细解析防范措施,并结合实际案例进行阐述,旨在帮助读者全面了解并掌握有效的防护策略。希望本文能为您的网络安全提供有益参考。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • MyISAM和InnoDB是MySQL中最为广泛使用的两种存储引擎,每种引擎都有其独特的优势和适用场景。MyISAM引擎以其简单的结构和高效的读取速度著称,适用于以读操作为主、对事务支持要求不高的应用。而InnoDB引擎则以其强大的事务处理能力和行级锁定机制,在需要高并发写操作和数据完整性的场景下表现出色。选择合适的存储引擎应综合考虑业务需求、性能要求和数据一致性等因素。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 在将Excel数据导入MySQL数据库的过程中,如何确保不会生成重复记录?本文介绍了一种方法,通过PHP脚本检查数据库中是否存在相同的“Code”字段值,从而避免重复记录的产生。该方法不仅提高了数据导入的准确性,还增强了系统的健壮性。 ... [详细]
  • 针对MySQL Undo空间满载及Oracle Undo表空间溢出的问题,本文详细探讨了其原因与解决策略。首先,通过启动SQL*Plus并以SYS用户身份登录数据库,查询当前数据库的UNDO表空间名称,确认当前状态。接着,分析导致Undo空间满载的常见原因,如长时间运行的事务、频繁的更新操作等,并提出相应的解决方案,包括调整Undo表空间大小、优化事务管理、定期清理历史数据等。最后,结合实际案例,提供具体的实施步骤和注意事项,帮助DBA有效应对这些问题。 ... [详细]
  • 在深入掌握Spring框架的事务管理之前,了解其背后的数据库事务基础至关重要。Spring的事务管理功能虽然强大且灵活,但其核心依赖于数据库自身的事务处理机制。因此,熟悉数据库事务的基本概念和特性是必不可少的。这包括事务的ACID属性、隔离级别以及常见的事务管理策略等。通过这些基础知识的学习,可以更好地理解和应用Spring中的事务管理配置。 ... [详细]
author-avatar
判官-包公_529
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有