-
必须会的SQL语句(六)数据查询
1.基础的查询 1)重命名列 selectnameas'姓名'from表名 2)定义常量列 select是否='是'from表名 3)top用法percent --这种写法可以获取前20%条字段。 selecttop20percent*from表名 4)去除重复列 selectdistinct列名from表名 5)聚合函数 max avg count min &nbs...
数据库操作教程 2022-09-23 16:45:47 -
SQLServer中将查询结果转换为Json格式脚本分享
脚本源码:复制代码代码如下:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDURE[dbo].[SerializeJSON](@ParameterSQLASVARCHAR(MAX))ASBEGIN DECLARE@SQLNVARCHAR(MAX)DECLARE@XMLStringVARCHAR(MAX)DECLARE@XMLXMLDECLARE@ParamlistNVARCHAR(1000)SET@Paramlist=N'@XMLXMLOUTPUT'SET@SQL='WITHPrepareTable(XMLString)'SET@SQL=@SQL+'AS('SET@SQL=@SQL+@ParameterSQL+'FORXMLRAW,TYPE,ELEMENTS'SET@SQL=@SQL+')'SET@SQL=@SQL+'SELECT@XML=[XMLString]FROM[PrepareTable]'EXECsp_executesql@SQL,@Paramlist,@XML=@XMLOUTPUTSET@XML...
数据库操作教程 2022-09-23 16:45:25 -
MyBatis实践之动态SQL及关联查询
序言MyBatis,大家都知道,半自动的ORM框架,原来叫ibatis,后来好像是10年apache软件基金组织把它托管给了goolecode,就重新命名了MyBatis,功能相对以前更强大了。它相对全自动的持久层框架Hibernate,更加灵活,更轻量级,这点我还是深有体会的...
数据库操作教程 2022-09-23 16:45:07 -
SqlServer表单查询问题及解决方法
Q1:表StudentScores如下,用一条SQL语句查询出每门课都大于80分的学生姓名Q2:表DEMO_DELTE如下,删除除了自动编号不同,其他都相同的学生冗余信息Q3:Team表如下,甲乙丙丁为四个球队,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合Q4:请考虑如下SQL语句在MicrosoftSQLServer引擎中的逻辑处理顺序USETSQLFundamentals2008SELECTempid,YEAR(orderdate)ASorderyear,COUNT(*)numordersFROMSales.OrdersWHEREcustid=71GROUPBYempid,YEAR(orderdate)HAVINGCOUNT(*)>1ORDERBYempid,orderyear本篇文章将剖析一般查询过程中,涉及到的处理逻辑子句,主要包括FROM,WHERE,GROUPBY,HAVING,SELECT,ORDERBY,TOP,OVER等子句。2SELECT语句的元素2.1常规查询子句和逻辑处理顺序对数据表进行检索查询时,查询语句一般包括FROM,WHERE,GR...
数据库操作教程 2022-09-23 16:44:31 -
mybatiscollection多条件查询的实现方法
mybatiscollection多条件查询的实现方法前言:业务需要通过mybatis查询返回嵌套集合,嫌多次查询太麻烦,用自带的高级查询解决问题,下边是代码,已测试通过。说下自己的理解,就是一个主查询结果集里面嵌套了子查询的结果集,可以是多个子查询,每个子查询的条件从主查询结果集中获取,返回值各自定义...
数据库操作教程 2022-09-23 16:43:37 -
sqlserver:查询锁住sql以及解锁方法
查看被锁表语句--查看被锁表:SELECTrequest_session_idspid,OBJECT_NAME(resource_associated_entity_id)tableNameFROMsys.dm_tran_locksWHEREresource_type='OBJECT'ORDERBYrequest_session_idASC--spid锁表进程--tableName被锁表名--根据锁表进程查询相应进程互锁的SQL语句DBCCINPUTBUFFER(249)解锁语句--解锁:DECLARE@spidINTSET@spid=52--锁表进程DECLARE@SQLVARCHAR(1000)SET@SQL='kill'+CAST(@spidASVARCHAR)EXEC(@SQL)生成解锁SQL语句--生成解锁SQLSELECTDISTINCT'DECLARE@spidINTSET@spid=',request_session_id,'DECLARE@SQLVARCHAR(1000)SET@SQL=''kill''+CAST(@spidASVARCHAR)EXEC(@SQL);'...
数据库操作教程 2022-09-23 16:43:35 -
详解SQL中的DQL查询语言
DQLDQL:dataQuerylanguage数据查询语言格式:select[distinct]字段1,字段2from表名where控制条件(distinct:显示结果时,是否去除重复列给哪一列去重就在哪一列字段前加入distinct)学生表(1)查询表中的所有信息SELECT*FROMstudent(2)查询表中的所有学生姓名和对应的英语成绩SELECTname,englishFROMstudent注:可显示部分字段,如果显示哪列数据,就直接写字段名称即可(3)过滤表中重复的math成绩SELECTDISTINCTmathFROMstudent;(4)创建一个student类添加属性id,name,sex,chinese,English,math并随机增加5条属性select*fromstudent;–查询英语在70到75之间的学生的信息--select*fromstudentwhereenglishBETWEEN70AND75;–查询语文是80或者82或者90分的学生信息--select*fromstudentwherechineseIN(80,82,90);–查询所有首字母为l...
数据库操作教程 2022-09-23 16:43:08 -
SQLServer通过withas方法查询树型结构
一、withas公用表表达式 类似VIEW,但是不并没有创建对象,WITHAS公用表表达式不创建对象,只能被后随的SELECT语句,其作用: 1.实现递归查询(树形结构) 2.可以在一个语句中多次引用公用表表达式,使其更加简洁二、非递归的公共表达式 可以是定义列或自动列和selectinto效果差不多--指定列withwithTmp1(code,cName)as(selectid,NamefromClassUnis)select*fromwithTmp1--自动列withwithTmp2as(select*fromClassUniswhereAuthor='system')select*fromwithTmp2三、递归的方式 通过UNIONALL连接部分。通过连接自身whitas创建的表达式,它的连接条件就是递归的条件...
数据库操作教程 2022-09-23 16:43:03 -
SQLServer中查询结果超出了查询时间范围解决方法
废话少说,直接上SQL代码(有兴趣的测试验证一下),下面这个查询语句为什么将2008-11-27的记录查询出来了呢?这个是同事遇到的一个问题,个人设计了一个例子。USEAdventureWorks2014;GOSELECT*FROM[Person].[Person]WHEREModifiedDate>='2008-11-2600:00:00:000'ANDModifiedDate<='2008-11-2623:59:59.999' 其实如果细看过文档的话,应该知道是什么原因,因为数据类型Datetiem的时间范围:00:00:00到23:59:59.997,最后部分的范围为0~997,官方文档提示,datetime的秒的小数部分精度的有舍入,具体请见下面datetime秒的小数部分精度的舍入如下表所示,将datetime值舍入到.000、.003、或.007秒的增量...
数据库操作教程 2022-09-23 16:42:20 -
SQLServer使用joinall优化or查询速度
比如:,master,test,表示该用户为test的下级代码,test登录后可以看到test名下的业务和所有下级代理的业务。相关表的结构如下:user表大约10万条记录|-uid-|-user-|----site------||1|test|,master,||2|user|,master,test,|product表大约30万条记录|-pid-|-product-|-puser-||1|order01|test||2|order02|user||3|order03|user|优化前的SQL语句如下:select*fromproductaspleftjoinuserasuonp.puser=u.userwhereuser='test'orsitelike'%,test,%'不使用or单独查询时,都不超过100毫秒,排除索引的问题...
数据库操作教程 2022-09-23 16:42:03 -
查询数据排名情况SQL
1/准备测试数据---------------------------------------------------------------------------------createtablet1(c1integer,c2integer,c3integer);insertintot1values(1,2,3)insertintot1values(1,8,4)insertintot1values(1,4,4)insertintot1values(1,4,5)insertintot1values(1,5,5)insertintot1values(2,2,3)insertintot1values(2,8,4)insertintot1values(2,4,4)insertintot1values(2,4,5)insertintot1values(2,5,5)2/查看排名---------------------------------------------------------------------------------A/单记录排名selectc1,c3,(selectcou...
数据库操作教程 2022-09-23 16:41:42 -
模糊查询的通用存储过程
复制代码代码如下:IFExists(Select1FromsysobjectsWhereName='sp_search'AndxType='P')DropProceduresp_searchgo/*模糊查询的通用存储过程createbysxm,date2009-7-14参数:@table_name表名@condition条件*/createprocsp_search(@table_namevarchar(200),@conditionvarchar(100))withencryptionasbegindeclare@strsqlvarchar(8000)declare@col_namevarchar(100)declare@str_colsvarchar(8000)set@str_cols=''--查询表中的列名declarecur_1cursorforselectcolumn_namefrominformation_schema.columnswheretable_name=@table_nameopencur_1fetchcur_1into@col_namewhile@@fetch...
数据库操作教程 2022-09-23 16:41:40