首页 > 精品范文库 > 13号文库
浅谈关于SQL数据库中Group By的用法
编辑:蓝色心情 识别码:22-1068551 13号文库 发布时间: 2024-07-17 14:34:53 来源:网络

第一篇:浅谈关于SQL数据库中Group By的用法

浅谈关于SQL数据库中Group By的用法

指定用来放置输出行的组,并且如果 SELECT 子句 中包含聚合函数,则计算每组的汇总值。指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。

?

SELECT U_ID,House_Addrinfo, COUNT(U_ID)AS CX FROM YX_ChuShou GROUP BY U_ID ORDER BY CX DESC

这条语句出现“选择列表中的列 'YX_ChuShou.House_Addrinfo' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。”的错误提示。

正确的写法是

?

4SELECT U_ID,min(House_Addrinfo),COUNT(U_ID)AS CXFROM YX_ChuShouGROUP BY U_IDORDER BY CX DESC

?

SELECT U_ID,House_Addrinfo,COUNT(U_ID)AS CXFROM YX_ChuShouGROUP BY U_ID ,House_Addrinfo ORDER BY CX DESC

第二篇:SQL数据库心得

黄淮学院 202_---202_学年第 一 学期 《C#数据库应用程序开发技术与案例教程》课程

题目:

学习报告

系:数学科学系 专

业:数学与应用数学 年

级:1301B 姓

名:曹占营 学

号:1331110101 任课教师:杨锋英

202_年 12 月 30日

C#数据库学习报告

在日常生活中,我们和朋友、亲戚联系,会广泛用到通讯录,因此这门课程以通讯录开发为案例,教我们学习软件开发。

软件开发是一项非常注重实践工作,不可能只凭看书、看视频就学会软件开发,必须扎扎实实、一行一行的编写代码,不断积累项目经验,才能真正掌握编程技术,所以我们要亲自上级编写程序,才能真正掌握软件开发技术。

本书分为基础篇、进阶篇、高级篇,由浅入深地介绍了基于C#的数据库编程技术,所用的开发工具为Visual Studio 202_、SQL Server 202_以及Access 202_。

学习数据库的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从课程中让我更明白一些知识,查询可以通过SQL语言进行完成,这样加深了查询语句的基本结构,让我们能更好的掌握其中语句,方便于我们后面的学习和应用。表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。在编程方面是需要我们对于编程有逻辑思维能力及一定的编程技巧。在数据库中插入表、表中的信息等都需要注意,不然很容易出错。

在基础篇中,详细讲解了通讯录系统的设计、开发和安装部署这样一个完整过程,对各个任务进行详细讲解。基础篇学习分为9个任务,分别为系统分析与设计、用户登录、主窗体设计、联系人分组管理、联系人管理、用户密码修改、数据库备份与恢复、设计“关于”窗体、系统安装与部署。学完基础篇,即可开发出一个功能较为完备的通讯录系统。在联系人管理任务学习中,由于在Contact表中保存的是分组编号,而窗体上要显示的是分组名称,所以在查询语句中需要级联查询,即SQL语句为”select Contact.Id, Name, Phone, Email, QQ, GroupName from Contact, ContactGroup where Contact.GroupId = ContactGroup.Id”。为了实现代码复用,可以提供查询功能,根据用户选择的擦寻天剑,拼接产生SQL语句。同时为了支持模糊查询,还在SQL语句中用了like语句。通过SqlDataAdapter的Fill方法填充数据集,获取数据。数据集中有了数据以后,我们只需设置DataGridView控件的DataSource属性,就可以显示数据了。

在进阶篇中,介绍了企业项目开发中广发用到的参数化SQL语句、存储过程使用及定义数据库操作类,分为3个任务学习,分别为使用参数化SQL语句、使用存储过程、使用自定义数据库操作类,进一步提高我们的数据库编程能力。在使用存储过程任务学习中,了解到存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在性能方面,存储过程有如下的优点。(1)与编译,存储过程预先编译好放在数据库内,减少编译语句所花的时间。(2)缓存,编译好的存储过程会进入缓存,所以对于经常执行的存储过程,除了第一次执行外,其他次执行的书都会有明显提高。(3)减少网络传输,特别对于处理一些数据的存储过程,不必像直接用SQL语句实现那样多次传送数据到客户端。通过前面的学习,细细体会对数据库的操作,可以发现,这么多操作其实可以分为4种。(1)对数据库进行非连接式查询操作,返回多条记录。这种操作可以通过SqlDataAdapter对象的Fill方法来完成,即把查询得到的结果填充到DataTable(或DataSet)对象中。(2)对数据库进行连接式查询操作,返回多条查询记录。这种操作可以通过SqlCommand对象的ExecuteReader方法来完成,返回SqlDataReader对象。(3)从数据库中检索单值。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成。ExecuteScalar方法返回的是Object类型,需要根据实际情况进行类型转换。(4)对数据库执行增、删、改操作。这种操作可以通过SqlCommand对象的ExecuteNonQuery方法来完成,返回增、删、改操作后数据库中受影响的行数。

在高级篇中,分为4个任务学习,分别为开发基于三层构架的通讯录程序、开发基于Access的通讯录程序、实现基于抽象工厂模式的三层架构、使用MD5加密用户密码。首先详细讲解了基于三层构架的通讯录程序开发过程以及如何开发一个基于Access的通讯录系统。最后,介绍了如何采用MD5加密技术对用户密码加密。MD5加密技术也是实际项目开发中广泛用到的,通过MD5加密用户密码,可以提高程序的安全性。“三层架构”一词中的“三层”是指:“表示层”、“业务逻辑层”、“数据访问层”。表示层:位于最外层,离用户最近。用于显示和接收用户输入的数据,为用户提供一种交互式操作界面。表示层的常见形式为WinFrom和WebForm。业务逻辑层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。业务逻辑层也可以包括一些对“商业逻辑”描述代码在里面。数据访问层:仅实现对数据的保存和读取操作。可以访问数据库系统、二进制文件、文本文档或是XML文档。

在这一学期有限的几次实验课后,我虽然没有学会很多,但也学会了一些简单的操作,我学会了一些简单的数据运算,会建立一些简单的表。有时候在做实验时,对于实验中的一些东西我不怎么了解,但我还会去做,因为我想只有多练习才能熟练,也才能理解掌握知识。我不知道这一门课对其他同学来说怎么样,但对我来说却有些难,但我会努力。因为我认为它对我以后考计算机二级有很大的帮助。

很快这一学期马上就要结束了,数据库这一门课也很快就要结束了,但这一学期的学习让我知道了很多,也告诉了我在以后的人生中如何去做事,如何去做人。尤其是老师的耐心,老师的敬业精神感动了我,再做任何事时都应该认真负责,任何一个人都应该被尊重。

第三篇:SQL中forXML语句用法总结

-------raw模式:raw模式将查询结果集中的每一行转换为带有通用标识符row或可能提供元素名称的xml元素。(将查询结果集中的每一行转换为row元素的属性或row元素的子无素)-------------行集中非Null的每列值都将映射为row元素的一个属性--------------------------

select top 10 *

from mixtureMeasureMonitor

for xml raw

---将elements指令添加到for xml子句,则行集中非null的每列值都将映射为row元素的一个子元素

-----------

select top 10 *

from mixtureMeasureMonitor

for xml raw,elements

----在指定elements指令的同时指定xsinil选项,则将行集中为null的每例值映射为具有属性xsi:nil=“true”的一个元素

---------------------------

select top 10 *

from mixtureMeasureMonitor

for xml raw,elements XSINIL

-Auto模式根据查询确定返回的xml的形式--------------

select pmm.id,pmm.ppId,pp.MixPropNo,pmm.criterion

from mixtureMeasureMonitor as pmm inner join

produceProportion as pp on pp.id=pmm.ppid and pp.cOrgID=pmm.cOrgID tOption as tp on tp.cValue=pmm.Criterion inner join

where tp.ckey='Criterion '

for xml auto

select

pmm.id,pp.MixPropNo,pmm.ppId,pmm.criterion,pmm.temperatureMark,pmm.remark

from mixtureMeasureMonitor as pmm inner join

produceProportion as pp on pp.id=pmm.ppid and pp.cOrgID=pmm.cOrgID tOption as tp on tp.cValue=pmm.Criterion inner join

where tp.ckey='Criterion '

for xml auto,elements xsinil

-----------------explicit模式:使用RAW和AUTO模式不能很好地控制从查询结果生成的XML的形状。但是,对于要从查询结果生成的XML,EXPLICIT模式会提供非常好的灵活性-----------------------

select

pp.MixPropNo,pmm.id,pmm.ppId,pmm.criterion,pmm.temperatureMark,pmm.remark

from mixtureMeasureMonitor as pmm inner join

produceProportion as pp on pp.id=pmm.ppid and pp.cOrgID=pmm.cOrgID tOption as tp on tp.cValue=pmm.Criterion inner join

where tp.ckey='Criterion '

for xml explicit

-------------------------OPENXML语句,对XML文件进行查询,然后返回指定的XML中的结果集数据---------------------------

/*openxml(idoc int [in],rowpattern nvarchar[in],[flags byte [in]])

[WITH(SchemaDeclaration|TableName)]

Idoc:XML文档的内部表示形式的文档句柄

RowPattern:XPath模式,用来标识要作为行处理的节点

Flags:指示应在XML数据和关系行集间使用映射,以及应如何填充溢出列

SchemaDeclaration:窗体的架构定义

TableName:如果具有所需架构的表已经存在且不要求列模式,则为给定的表名*/ DECLARE @idoc int

declare @doc varchar(202_)

set @doc='

OrderDate=“202_-07-04T00:00:00”>

OrderDate=“202_-08-16T00:00:00”>

'

EXEC sp_xml_preparedocument @idoc output,@doc

select *

from openxml(@idoc,'/ROOT/Customer',1)

with(CustomerID varchar(10),ContactName varchar(20))/*path()括号内的参数是控制节点名称的,不指定括号时控制节点默认是row。rooot选项来添加单个顶级元素*/

------------------path选项不带()时,默认控制节点是row,其他字段元素都是row元素的子元素----------

select ID ,name

from MtrlBaseName

for xml path

--------------------------ID,name是product标签的子标签---------------select ID ,name

from MtrlBaseName

for xml path('Product'),root('ProductExport')

------------------ID是Product标签的属性,name是Product标签的内容-----------------------------

select ID [@ID],name as [*]

from MtrlBaseName

for xml path('Product'),root('ProductExport')

------------------ID,name是Product标签的属性

----

select ID [@ID],name as [@name]

from MtrlBaseName

for xml path('Product'),root('ProductExport')

第四篇:数据库sql语言总结

插入句型:

insertinto<表名> [各属性名]values(<常量1>,<常量2>……)

删除元组或者二维表:

delete from<表名>[ where <条件> ]

删除属性:

altertable<表名>dropcolumn<列名>

增加某表的属性:

altertable<表名>add<列名> 类型

修改句型:

update<表名>set<列名> =<表达式>[where<条件>]

修改某表当中的属性类型:

altertable<表名>altercolumn<列名><转换的类型>;

显示表的一些基本情况

EXEC sp_help'<表名>'

更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称 sp_rename ‘<旧的表名>’, ‘<新的表名>’

修改表的列名 sp_rename'<表名>.', 'newname ', 'COLUMN '

小注:上面的语句最后不需要加分号

判断表中是否存在某列的语句

if exists(select * from syscolumns where id = object_id('stu')and name='Sno')

print 'stu exists'

else print 'stu not exists'

将表中的某列设置为主码:

alter table stu addSno char primary key;

判断表是否存在if exists(select count(*)from sysobjects where type='U' and name='stu')

查询某个表中字段的列名和数据类型

select column_name,data_type from information_schema.columns where table_name = '表名';

第五篇:SQL数据库选择题及答案

1、在数据库技术中,独立于计算机系统的模型是_C__。A、面向对象的模型B、关系模型C、E-R模型D、层次模型

2、数据库系统的控制中枢是__B_。A、数据库、b、数据库管理系统C、数据库管理员D、数据库应用系统

3、使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是__C_。

A、UPDATE SET AGE WITH AGE+1

B、REPLACE AGE WITH AGE+1

C、UPDATE STUDENT SET AGE=AGE+1

D、UPDATE STUDENT AGE WITH AGE+1

4、在关系数据库中,建立数据库表时,将年龄字段值限制在12~40岁之间的这种约束属于__B__。

A、视图完整性约束B、域完整性约束C、参照完整性约束D、实体完整性约束

5、在 SQL 语句中,与 X BETWEEN 20 AND 30 等价的表达式是__D_。A、X>=20 AND X<30

B、X>20 AND X<30

C、X>20 AND X<=30

D、X>=20 AND X<=30

6、在数据库中,概念模型是_D__。A、用于现实的建模,与具体的DBMS有关B、用于信息世界的建模,与具体的DBMS有关

C、用于现实的建模,与具体的DBMS无关D、用于信息世界的建模,与具体的DBMS无关

7、数据库的并发操作可能带来的问题包括__B_。A非法用户的使用B丢失更新C数据独立性会提高D增加数据冗余度

8、在关系数据库中,模式对应的是__A___。A、视图和所有基本表

B、视图和部分基本表

C、基本表

D、索引

9、能实现绝对的与平台无关性的Web数据库访问技术是_D_。A、ADO

B、ActiveX

C、WebbaseAPI

D、JDBC

10、在下列描述中,正确的描述是__B___。

A、SQL 是一种过程化语言B、SQL 采用集合操作方式

C、SQL 不能嵌入到高级语言程序中

D、SQL 是一种 DBMS

11、数据库系统是由__A__组成的。A、数据库、数据库管理系统和用户

B、数据文件、命令文件和报表

C、数据库文件结构和数据

D、常量、变量和函数

12、在SQL查询时,使用WHERE子句指出的是__B__。A、查询目标B、查询条件C、查询视图D、查询结果

13、在下列 RDMBS 产品中,属于小型数据库系统的是_A_。A、Access B、Oracle C、Sybase D、Informix

14、数据库类型是按照_A_来划分的。

A、数据模型B、记录形式C、数据存取方法D、文件形式

15、作为Microsoft Office家族成员之一的_A_数据库,能够与其他Office组件进行数据交换共享数据资源,易于生成集文字处理、图表生成和数据管理于一体的办公自动化系统。A、Access

B、Oracle

C、Sybase

D、Informix

16、数据库管理系统更适合于_D_方面的应用。A、CAD

B、过程控制C、科学计算D、数据处理

17、下列四组SQL命令,全部属于数据定义语句的命令是_C__。A、CREATE,DROP,ALTER

B、CREATE,DROP,UPDATE

C、CREATE,DROP,GRANT

D、CREATE,DROP,SELECT

18、通过Internet及浏览器处理的数据库,应该是_C__处理。A、集中式

B、分布式

C、主从结构式D、以上3种模式

19、数据的逻辑独立性是指__D_。A、数据与存储结构的逻辑独立性 B、数据元素之间的逻辑独立性

C、存储结构与物理结构的逻辑独立性

D、数据与程序的逻辑独立性

20、在数据库技术中,独立于计算机系统的模型是_C__。A面向对象的模型

B关系模型

C、E-R模型

D、层次模型

21、关系代数的3个基本运算是–D--、投影、连接。A、关系与B、蕴含C、关系或D、选择

22、下面命题不正确的是:A、若冗余数据可以控制,则数据更新的一致性得以保证

B、数据库减少了不必要的数据冗余C、数据库的数据可以共享D、数据库中不存在数据冗余

23、在基本SQL中不可以实现: A、定义视图B、并发控制C、定义基表D、查询视图和基表

24、用二维表来表示实体及实体之间联系的数据模型称为_C___。

A、实体-联系模型B、层次模型C、关系模型D、网状模型

25、查找工资在600元以上并且职称为工程师的纪录,逻辑表达式为_D___。

A、“工资”>600.OR.职称=“工程师”

B、工资>600.AND.职称=工程师

C、“工资”>600.AND.“职称”=“工程师”

D、工资>600.AND.职称=“工程师”

26、数据库镜像可以用于__C_。(1分)

A、实现数据库的安全性

B、实现数据共享C、进行数据库恢复或并发操作D、保证数据库的完整性

27、在下列类型的数据库系统中,应用最广泛的是__C___。(1分)

A、分布型数据库系统B、逻辑型数据库系统C、关系型数据库系统D、层次型数据库系统

28、在下列描述中,正确的描述是__B__。(1分)A、SQL 是一种过程化语言B、SQL 采用集合操作方式

C、SQL 不能嵌入到高级语言程序中

D、SQL 是一种 DBMS

浅谈关于SQL数据库中Group By的用法
TOP