打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
二、SQL Server 分页

一、SQL Server 分页

 --top not in方式select top 条数 *  from tablenamewhere Id not in (select top 条数*页数  Id from tablename)   --ROW_NUMBER() OVER()方式  select * from (     select *, ROW_NUMBER() OVER(Order by Id ) AS RowNumber from tablename  ) as b  where RowNumber BETWEEN 当前页数-1*条数 and 页数*条数      --offset fetch next方式--SQL2012以上的版本才支持select * from tablename order by Id offset 页数 row fetch next 条数 row only 分析:在数据量较大时top not in方式:查询靠前的数据速度较快ROW_NUMBER() OVER()方式:查询靠后的数据速度比上一种较快offset fetch next方式:速度稳定,优于前2种,但sql版本限制2012及以上才可使用

模拟测试

 

--1、首先创建了一张TestAdmin表,主键为ID字段int类型且自增create table TestAdmin (    Id int identity(1,1) primary Key,    Name varchar(Max),    Age int)--2、接着批量导入1000条模拟数据declare @count int--这里定义模拟数据条数set @count=1000while(@count>0)begininsert into TestAdmin (Name,Age) values ('zhuyuan' convert(varchar,@count),@count)set @count=@count-1end--3查询数据集select * from TestAdmin

  

 

 

二、SQLServer、Oracle获取数据库、表、表里字段、类型、注释

--获取所有非系统数据库select name from master..sysdatabases where name not in('master', 'model', 'msdb', 'tempdb', 'northwind', 'pubs', 'ReportServer', 'ReportServerTempDB') --获取某个表的详细字段信息select c.name,t.name,c.prec,p.value from syscolumns cinner join systypes t on c.xtype= t.xtypeinner join sysobjects o on c.id= o.idinner join sys.extended_properties p  on c.id = p.major_id and c.colid = p.minor_idwhere  o.xtype='u'and t.status=0 and o.name='表名'  --获取所有表信息select * from sysobjects where XType='U' --字段信息,关联表id=syscolumns.idselect * from syscolumns  --注释信息,关联字段信息major_id=syscolumns.idselect * from sys.extended_properties --主键自增信息,关联id =syscolumns.idselect * from sysindexkeys select * from sysindexes   --表详细信息(字段名,类型,长度,是否是主键,是否是标识,允许空,注释)select a.name N'字段名', b.name N'类型', COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度', (case when (select count(*) from sysobjects where (name in  (select name from sysindexes where (id = a.id) AND (indid in  (select indid  from sysindexkeys  where (id = a.id) AND (colid in (select colid  from syscolumns where (id = a.id) AND (name = a.name))))))) AND  (xtype = 'PK'))>0 then 'PK' else '' end) N'主键', (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then 'identity'else '' end) N'标识', (case when a.isnullable=1 then 'true'else 'false' end) N'允许空', isnull(g.[value],'') AS N'注释' from syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' left join syscomments e on a.cdefault=e.id left join sys.extended_properties g on a.id=g.major_id AND a.colid = g.minor_id where d.name='表名'order by a.colorder

  

三、Oracle:

--获取当前用户所有的表SELECT *  FROM  user_tables --获取所有列,列信息SELECT * FROM user_tab_columns    --2个视图中分别存储了当前用户的表信息--user_tab_columns:表中列的详情,但是没有是否是主键的标识--user_cons_columns:约束视图。SELECT utc.COLUMN_NAME as 列名,ucc.COLUMN_NAME AS 主键, utc.DATA_TYPE as 列类型,utc.DATA_LENGTH as 类型长度,utc.NULLABLE as 是否可为空 FROM user_tab_columns utc left join user_cons_columns ucc on utc.TABLE_NAME = ucc.TABLE_NAME  where POSITION=1 AND ucc.TABLE_NAME ='你的表名' ORDER by utc.COLUMN_ID --user_col_comments:注释

  

 

来源:http://www.icode9.com/content-2-179251.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
YzmCMS标签
面向程序员的数据库访问性能优化法则
怎么取得表中字段的说明,select * from syscolumns where id = object
sql server2005 存储数据库表名、字段名、描述的数据库表和sql语句
找SQL表的主键
SQL语句精典收藏 - 大维 - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服