sql语句妙用,各种sql语句的详细用法与讲解(编辑修改稿)内容摘要:

择出来,再去进行分页处理,那么就会多多的浪费掉许多的系统处理时间。 为了能够把效率提高,所以现在我们就只选择我们需要的数据,减少数据库的处理时间,以下就是常用 SQL 分页处理: SQL Server、 Access数据库 这都微软的数据库,都是一家人,基本的操作都是差不多,常采用如下分页语句: PAGESIZE:每页显示的记录数 CURRENTPAGE:当前页号 数据表的名字是: ponents 索引主键字是: id select top PAGESIZE * from ponents where id not in (select top (PAGESIZE*(CURRENTPAGE1)) id from ponents order by id)order by id 如下列: select top 10 * from ponents where id not in (select top 10*10 id from ponents order by id) order by id 从 101 条记录开始选择,只选择前面的 10 条记录 Oracle 数据库 因为 Oracle 数据库没有 Top 关键字,所以这里就不能够像微软的数据据 那样操作,这里有两种方法: (1)、一种是利用相反的。 PAGESIZE:每页显示的记录数 CURRENTPAGE:当前页号 数据表的名字是: ponents 索引主键字是: id select * from ponents where id not in(select id from ponents where rownum=(PAGESIZE*(CURRENTPAGE1))) and rownum=PAGESIZE order by id。 如下例: select * from ponents where id not in (select id from ponents where rownum=100) and rownum=10 order by id。 从 101 到记录开始选择,选择前面 10 条。 (2)、使用 minus,即中文的意思就是减去。 select * from ponents where rownum =(PAGESIZE*(CURRENTPAGE1)) minus select * from ponents where rownum =(PAGESIZE*(CURRENTPAGE2))。 如例: select * from ponents where rownum=10 minus select * from ponents where rownum=5。 . (3)、一种是利用 Oracle 的 rownum,这个是 Oracle 查询自动返回的序号,一般不显示,但是可以通过 select rownum from [表名 ]看到,注意,它是从 1 到当前的记录总数。 select * from (select rownum tid,ponents. * from ponents where rownum=100) where tid=10。 深入讲解 SQL Server 数据库的嵌套子查询 发布时间: 05:05 来源:赛迪网 作者: Liulian 很多人对子查询 (subqueries)的使用都感到很迷惑,尤其对于嵌套子查询 (即子查询中包含一个子查询 )。 现在,就让我们追本溯源地探究这个问题。 有两种子 查询类型:标准和相关。 标准子查询执行一次,结果反馈给父查询。 相关子查询每行执行一次,由父查询找回。 在本文中,我将重点讨论嵌套子查询 (nested subqueries)(我将在以后介绍相关子查询 )。 试想这个问题 :你想生成一个卖平垫圈的销售人员列表。 你需要的数据分散在四个表格中 :人员 .联系方式 (),人力资源 .员工 (),销售 .销售订单标题 (),销售 .销售订单详情 ()。 在 SQL Server中,你从内压式 (outsidein)写程序,但从外压式 (insideout)开始考虑非常有帮助,即可以一次解决需要的一个语句。 如果从内到外写起,可以检查 ,在 LIKE 语句中匹配产品数(ProductNumber)值。 你将这些行与 表格连接,从中可以获得销售人员IDs(SalesPersonIDs)。 然后使用 SalesPersonID连接 SalesPersonID 表格。 最后 ,使用 ContactID连接 表格。 USE AdventureWorks。 GO SELECT DISTINCT , FROM c JOIN e ON = WHERE EmployeeID IN (SELECT SalesPersonID FROM WHERE SalesOrderID IN (SELECT SalesOrderID FROM WHERE ProductID IN (SELECT ProductID FROM p WHERE ProductNumber LIKE39。 FW%39。 )))。 GO 这个例子揭示了有关 SQL Server 的几个绝妙事情。 你可以发现,可以用 IN()参数替代SELECT 语句。 在本例中,有两次应用,因此创建了一个嵌套子查询。 我是标准化 (normalization)的发烧友,尽管我不接受其荒谬的长度。 由于标准化具有各种查询而增加了复杂性。 在这些情况下子查询就显得非常有用,嵌套子查询甚至更加有用。 当你需要的问题分散于很多表格中时,你必须再次将它们拼在一起,这时你可能发现嵌套子程序就很有用。 使用 SQL 视图查出所有的数据库字典 发布时间: 09:15 来源:赛迪网 作者: 20936 本文中的 SQL 代码可以在企业管理器、查询分析器中简单执行,直接了当的查出 SQL Server 2020 及 SQL Server 2020 的所有数据字典。 (注释:数据库字典包括表结构 (分 SQL Server 2020 和 SQL Server 2020)、索引和主键 .外键 .约束 .视图 .函数 .存储过程 .触发器。 ) SQL Server 2020 数据库字典 —表结构 .sql SELECT TOP 100 PERCENT , CASE WHEN = 1 THEN ELSE 39。 39。 END AS 表名 , CASE WHEN = 1 THEN isnull(, 39。 39。 ) ELSE 39。 39。 END AS 表说明 , AS 字段序号 , AS 字段名 , CASE WHEN COLUMNPROPERTY(, , 39。 IsIdentity39。 ) = 1 THEN 39。 √39。 ELSE 39。 39。 END AS 标识 , CASE WHEN EXISTS (SELECT 1 FROM si INNER JOIN sik ON = AND = INNER JOIN sc ON = AND = INNER JOIN so ON = AND = 39。 PK39。 WHERE = AND = ) THEN 39。 √39。 ELSE 39。 39。 END AS 主键 , AS 类型 , AS 长度 , COLUMNPROPERTY(, , 39。 PRECISION39。 ) AS 精度 , ISNULL(COLUMNPROPERTY(, , 39。 Scale39。 ), 0) AS 小数位数 , CASE WHEN = 1 THEN 39。 √39。 ELSE 39。 39。 END AS 允许空 , ISNULL(, 39。 39。 ) AS 默认值 , ISNULL(g.[value], 39。 39。 ) AS 字段说明 , AS 创建时间 , CASE WHEN = 1 THEN ELSE NULL END AS 更改时间 FROM a LEFT OUTER JOIN b ON = INNER JOIN d ON = AND = 39。 U39。 AND = 0 LEFT OUTER JOIN e ON = LEFT OUTER JOIN g ON = AND = AND = 39。 MS_Description39。 LEFT OUTER JOIN f ON = AND = 0 AND = 39。 MS_Description39。 ORDER BY , SQL Server 2020 数据库字典 表结构 .sql SELECT TOP 100 PERCENT , CASE WHEN = 1 THEN ELSE 39。 39。 END AS 表名 , CASE WHEN = 1 THEN isnull(, 39。 39。 ) ELSE 39。 39。 END AS 表说明 , AS 字段序号 , AS 字段名 , CASE WHEN COLUMNPROPERTY(, , 39。 IsIdentity39。 ) = 1 THEN 39。 √39。 ELSE 39。 39。 END AS 标识 , CASE WHEN EXISTS (SELECT 1 FROM si INNER JOIN sik ON = AND = INNER JOIN sc ON = AND = INNER JOIN so ON = AND = 39。 PK39。 WHERE = AND = ) THEN 39。 √39。 ELSE 39。 39。 END AS 主键 , AS 类型 , AS 长度 , COLUMNPROPERTY(, , 39。 PRECISION39。 ) AS 精度 , ISNULL(COLUMNPROPERTY(, , 39。 Scale39。 ), 0) AS 小数位数 , CASE WHEN = 1 THEN 39。 √39。 ELSE 39。 39。 END AS 允许空 , ISNULL(, 39。 39。 ) AS 默认值 , ISNULL(g.[value], 39。 39。 ) AS 字段说明 , AS 创建时间 , CASE WHEN = 1 THEN ELSE NULL END AS 更改时间 FROM a LEFT OUTER JOIN b ON = INNER JOIN d ON = AND = 39。 U39。 AND = 0 LEFT OUTER JOIN e ON = LEFT OUTER JOIN g ON = AND = AND = 39。 MS_Description39。 LEFT OUTER JOIN f ON = AND = 0 AND = 39。 MS_Description39。 ORDER BY , SQL Server数据库字典 索引 .sql SELECT TOP 100 PERCENT , CASE WHEN = 1 THEN ELSE 39。 39。 END AS 表名 , CASE WHEN = 1 THEN ELSE 39。 39。 END AS 索引名称 , AS 列名 , AS 索引顺序 , CASE indexkey_property(, , , 39。 isdescending39。 ) WHEN 1 THEN 39。 降序 39。 WHEN 0 THEN 39。 升序 39。 END AS 排序 , CASE WHEN IS NULL THEN 39。 39。 ELSE 39。 √39。 END AS 主键 , CASE INDEXPROPERTY(, , 39。 IsClustered39。 ) WHEN 1 THEN 39。 √39。 WHEN 0 THEN 39。 39。 END AS 聚集 , CASE INDEXPROPERTY(, , 39。 IsUnique39。 ) WHEN 1 THEN 39。 √39。 WHEN 0 THEN 39。 39。 END AS 唯一 , CASE WHEN IS NULL THEN 39。 39。 ELSE 39。 √39。 END AS 唯一约束 , AS 填充因子 , AS 创建时间 , AS 更改时间 FROM a。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。