老白请教大牛:根据前端用户需要创建查询,说法对吗?

liumu5190 2017-11-04 05:11:11
根据前端用户需要创建查询,如果前段用户需要不同的输出结果,就必须写一个包含各种查询输出的sql文件,不同的查询语句在sql分段写出来就行,最后形成一个包含前段用户需要的sql查询文件,是不是这样啊?
...全文
265 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liumu5190 2017-11-05
  • 打赏
  • 举报
回复
明白了:sql脚本文件可以包含多个批处理,用分隔符go来结束一个批处理
吉普赛的歌 版主 2017-11-05
  • 打赏
  • 举报
回复
你到底是纯在学习SQl Server 还是同时在学习其它开发语言(java, c#)? 按你的描述, 纯学习SQL Server的可能性比较大一些。 前端根据客户的请求, 组织相关的脚本, 再请求数据库返回相关的数据到前端。 1. 前端 => 后台程序 => 数据库 2. 前端 <= 后台程序 <= 数据库 其中产生的脚本一般是不带GO的SQL脚本, 大部分是单个的查询语句, 有时是两个查询语句,比如分页, 就需要一次同时返回两个查询(总数和当前页数据)。 如果还有需要则再发一个请求就是了。 不需要考虑太多, 等你学到相当课程时, 自然就明白这个了, 船到桥头自然直。 现在你问得再多, 没有实践也很空泛, 意义不大。
liumu5190 2017-11-05
  • 打赏
  • 举报
回复
引用 14 楼 xiaoxiangqing 的回复:
最好提前设计好输入以及输出
引用 13 楼 yenange 的回复:
你到底是纯在学习SQl Server 还是同时在学习其它开发语言(java, c#)? 按你的描述, 纯学习SQL Server的可能性比较大一些。 前端根据客户的请求, 组织相关的脚本, 再请求数据库返回相关的数据到前端。 1. 前端 => 后台程序 => 数据库 2. 前端 <= 后台程序 <= 数据库 其中产生的脚本一般是不带GO的SQL脚本, 大部分是单个的查询语句, 有时是两个查询语句,比如分页, 就需要一次同时返回两个查询(总数和当前页数据)。 如果还有需要则再发一个请求就是了。 不需要考虑太多, 等你学到相当课程时, 自然就明白这个了, 船到桥头自然直。 现在你问得再多, 没有实践也很空泛, 意义不大。
谢谢,我下载了个sql server2017,我觉得学好t-sql就差不多了,依网络自学,刚起步,希望得到大牛的不断支持和帮助,
xiaoxiangqing 2017-11-05
  • 打赏
  • 举报
回复
最好提前设计好输入以及输出
liumu5190 2017-11-04
  • 打赏
  • 举报
回复
1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 我的意思是这两段代码接着写下来就行吗?两段代码之间需要分割吗
吉普赛的歌 版主 2017-11-04
  • 打赏
  • 举报
回复
太抽象了不便于分析问题,弄得不好都在摸风。 楼主可以列一个具体的场景出来,把前端页面截一个图,然后再来根据实际案例进行描述需求。
二月十六 版主 2017-11-04
  • 打赏
  • 举报
回复
引用 8 楼 liumu5190 的回复:
引用 7 楼 sinat_28984567 的回复:
[quote=引用 5 楼 liumu5190 的回复:] [quote=引用 3 楼 sinat_28984567 的回复:] 查询一般是拼接语句,不管是什么形式。根据不同的条件,拼接成不同的select语句,不是文件,就是一个sql语句字符串;比如前端要查询名字,那就是select * from 表 where name = '查询名字' 如果是查询年龄where条件就换成年龄,是通过程序处理的。
谢谢,我就是想知道不同的查询语句怎么拼接,有格式要求吗?
这个要看程序框架是什么样的,形式很多种,比如最直接的就判断,前台可能会传过来name或者age中的一个或者两个,然后用程序判断传过来了哪个,传过来哪个就加哪个where条件,大概这个意思:
string sql = "select * from 表 where 1=1 ";
if(!string.empty(name))
{
sql = sql + " and name=" + name;
}
if(!string.empty(age))
{
sql = sql + " and age=" + age;
}
[/quote]是不是这样认为:我在sql脚本里准备了馒头、包子、花卷等,你前端应用需要什么就拿什么?[/quote] 额,好像不太对,这个意思应该是你想要馒头,我给你做馒头,你想要包子我给你做zi包子,你要是什么也不要,我就什么都不给。 你说的那种形式,可以在sql中用参数实现,我不知道你学习学到这了没有,我大概写一下,写一个存储过程,比如
CREATE PROC dbo.testpro
  @str NVARCHAR(100),  --包子
  @str1 NVARCHAR(100)  --馒头
as
SELECT  *
FROM    表
WHERE   ( @str IS NULL        --如果传过来包子就查询,如果没传过来包子就不查询
          OR 查询列 = @str
        )
        AND ( @str1 IS NULL     --如果传过来馒头就查询,如果没传过来馒头就不查询
              OR 查询列 = @str1
            );
GO
liumu5190 2017-11-04
  • 打赏
  • 举报
回复
引用 7 楼 sinat_28984567 的回复:
引用 5 楼 liumu5190 的回复:
[quote=引用 3 楼 sinat_28984567 的回复:] 查询一般是拼接语句,不管是什么形式。根据不同的条件,拼接成不同的select语句,不是文件,就是一个sql语句字符串;比如前端要查询名字,那就是select * from 表 where name = '查询名字' 如果是查询年龄where条件就换成年龄,是通过程序处理的。
谢谢,我就是想知道不同的查询语句怎么拼接,有格式要求吗?
这个要看程序框架是什么样的,形式很多种,比如最直接的就判断,前台可能会传过来name或者age中的一个或者两个,然后用程序判断传过来了哪个,传过来哪个就加哪个where条件,大概这个意思:
string sql = "select * from 表 where 1=1 ";
if(!string.empty(name))
{
sql = sql + " and name=" + name;
}
if(!string.empty(age))
{
sql = sql + " and age=" + age;
}
[/quote]是不是这样认为:我在sql脚本里准备了馒头、包子、花卷等,你前端应用需要什么就拿什么?
二月十六 版主 2017-11-04
  • 打赏
  • 举报
回复
引用 5 楼 liumu5190 的回复:
引用 3 楼 sinat_28984567 的回复:
查询一般是拼接语句,不管是什么形式。根据不同的条件,拼接成不同的select语句,不是文件,就是一个sql语句字符串;比如前端要查询名字,那就是select * from 表 where name = '查询名字' 如果是查询年龄where条件就换成年龄,是通过程序处理的。
谢谢,我就是想知道不同的查询语句怎么拼接,有格式要求吗?
这个要看程序框架是什么样的,形式很多种,比如最直接的就判断,前台可能会传过来name或者age中的一个或者两个,然后用程序判断传过来了哪个,传过来哪个就加哪个where条件,大概这个意思:
string sql = "select * from 表 where 1=1 ";
if(!string.empty(name))
{
sql = sql + " and name=" + name;
}
if(!string.empty(age))
{
sql = sql + " and age=" + age;
}
日月路明 2017-11-04
  • 打赏
  • 举报
回复
引用 5 楼 liumu5190 的回复:
引用 3 楼 sinat_28984567 的回复:
查询一般是拼接语句,不管是什么形式。根据不同的条件,拼接成不同的select语句,不是文件,就是一个sql语句字符串;比如前端要查询名字,那就是select * from 表 where name = '查询名字' 如果是查询年龄where条件就换成年龄,是通过程序处理的。
谢谢,我就是想知道不同的查询语句怎么拼接,有格式要求吗?
你在查询分析器中怎么写的语句,程序中拼成那样即可
liumu5190 2017-11-04
  • 打赏
  • 举报
回复
引用 3 楼 sinat_28984567 的回复:
查询一般是拼接语句,不管是什么形式。根据不同的条件,拼接成不同的select语句,不是文件,就是一个sql语句字符串;比如前端要查询名字,那就是select * from 表 where name = '查询名字' 如果是查询年龄where条件就换成年龄,是通过程序处理的。
谢谢,我就是想知道不同的查询语句怎么拼接,有格式要求吗?
liumu5190 2017-11-04
  • 打赏
  • 举报
回复
引用 2 楼 yenange 的回复:
根据前端用户需要创建查询,如果前段用户需要不同的输出结果,就必须写一个包含各种查询输出的sql文件,不同的查询语句在sql分段写出来就行,最后形成一个包含前段用户需要的sql查询文件,是不是这样啊? --在实际的应用(如网站)中, 没有sql查询文件这个东西, 只有sql脚本。 sql 脚本可能由应用来拼接而成, 也可以由存储过程来完成。 sql语句也可以创建库、表、列等框架,但在sql server中已经用交互式完成,所形成的脚本是不是体现在我创建的sql文件中? --这个问题你问得不太清楚。创建库、表、列一般是预先用脚本或图形界面完成, 在应用(如网站)中一般很少创建这些数据库对象。 --这些东西创建了就创建了, 也不需要过多关心。
谢谢女大牛!是我表述不清楚,我是说前段应用可能用到简单查询或复杂查询等多种输出方式,这就要求数据库提供简单或复杂等多种查询功能的sql脚本文件,如果是这样,我在写sql脚本里面必须有简单或复杂等查询语句,这些语句是分段写出来,还是写完一个查询接着写另一个查询?,
二月十六 版主 2017-11-04
  • 打赏
  • 举报
回复
查询一般是拼接语句,不管是什么形式。根据不同的条件,拼接成不同的select语句,不是文件,就是一个sql语句字符串;比如前端要查询名字,那就是select * from 表 where name = '查询名字' 如果是查询年龄where条件就换成年龄,是通过程序处理的。
吉普赛的歌 版主 2017-11-04
  • 打赏
  • 举报
回复
根据前端用户需要创建查询,如果前段用户需要不同的输出结果,就必须写一个包含各种查询输出的sql文件,不同的查询语句在sql分段写出来就行,最后形成一个包含前段用户需要的sql查询文件,是不是这样啊? --在实际的应用(如网站)中, 没有sql查询文件这个东西, 只有sql脚本。 sql 脚本可能由应用来拼接而成, 也可以由存储过程来完成。 sql语句也可以创建库、表、列等框架,但在sql server中已经用交互式完成,所形成的脚本是不是体现在我创建的sql文件中? --这个问题你问得不太清楚。创建库、表、列一般是预先用脚本或图形界面完成, 在应用(如网站)中一般很少创建这些数据库对象。 --这些东西创建了就创建了, 也不需要过多关心。
liumu5190 2017-11-04
  • 打赏
  • 举报
回复
sql语句也可以创建库、表、列等框架,但在sql server中已经用交互式完成,所形成的脚本是不是体现在我创建的sql文件中?

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧