问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问下 SQL最基本代码有那些`??

发布网友 发布时间:2022-04-07 23:13

我来回答

3个回答

懂视网 时间:2022-04-08 03:34

 

--显示最后5条记录,但是显示的顺序必须为5,6,7,8,9,10,而不是10,9,8,7,6,5 如下解决方法: select top 5 from test where id in(select top 5 from test order by id desc) order by id asc
--通过这个问题也能总结出4-10条,5-100条这种限定一定范围内的sql语句的写法: select top <末端ID-顶端ID+1> * from <表名> where ID not in(select top <顶端ID-1>) ID from <表名>)
--例如:4-10条就应该写成 select top 10-4+1 * from test where id not in(select top 4-1 id from test)

 

 上一篇: select top 1 * from [news_table] where [新闻标识列]<当前id号 where ......  下一篇: select top 1 * from [news_table] where [新闻标识列]>当前id号 where ...... order by [新闻标识列] desc --两条记录完全相同,如何删除其中一条 set rowcount=1  delete from thetablename where id=@duplicate_id--@duplicate_id为重复值的id 
--模糊查询 select *  from product where detail like ‘%123.jpg%‘ --替换字段里面部分内容 update product set detail=replace(cast(detail as varchar(8000)),‘abc.jpg‘,‘efg.jpg‘) 
 
--日期转换参数,值得收藏 select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),‘-‘,‘‘),‘ ‘,‘‘),‘:‘,‘‘) 20040912110608
select CONVERT(varchar(12) , getdate(), 111 ) 2004/09/12
select CONVERT(varchar(12) , getdate(), 112 ) 20040912
select CONVERT(varchar(12) , getdate(), 102 ) 2004.09.12
 
--一个月第一天 SELECT   DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0)  --  2009-06-01 00:00:00.000 --当天 select  * from product  where DateDiff(day,modiDate,GetDate())>1 
--如何查询本日、本月、本年的记录SQL 本年: select * from loanInfo where year(date)=year(getdate())  本月: select * from loanInfo where year(date)=year(getDate()) And month(date)=month(getdate())  本日: select * from loanInfo where year(date)=year(getDate()) And month(date)=month(getdate()) and Day(date)=Day(getDate())   
本周的星期一   SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)     一年的第一天  SELECT  DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0)     季度的第一天   SELECT  DATEADD(qq,  DATEDIFF(qq,0,getdate()),  0)     当天的半夜   SELECT  DATEADD(dd,  DATEDIFF(dd,0,getdate()),  0)     上个月的最后一天           这是一个计算上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去毫秒来获得。有一点要记住,在Sql  Server中时间是精确到毫秒。这就是为什么我需要减去毫秒来获得我要的日期和时间。           SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0))            计算出来的日期的时间部分包含了一个Sql  Server可以记录的一天的最后时刻(“:59:59:997”)的时间。    去年的最后一天           连接上面的例子,为了要得到去年的最后一天,你需要在今年的第一天上减去毫秒。           SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))     本月的最后一天           现在,为了获得本月的最后一天,我需要稍微修改一下获得上个月的最后一天的语句。修改需要给用DATEDIFF比较当前日期和“-01-01”返回的时间间隔上加。通过加个月,我计算出下个月的第一天,然后减去毫秒,这样就计算出了这个月的最后一天。这是计算本月最后一天的SQL脚本。           SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0))     本年的最后一天           你现在应该掌握这个的做法,这是计算本年最后一天脚本           SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate())+1,  0))。    本月的第一个星期一           好了,现在是最后一个例子。这里我要计算这个月的第一个星期一。这是计算的脚本。             select  DATEADD(wk,  DATEDIFF(wk,0,                                                                                          dateadd(dd,6-datepart(day,getdate()),getdate())                                                                                                          ),  0)                                    在这个例子里,我使用了“本周的星期一”的脚本,并作了一点点修改。修改的部分是把原来脚本中“getdate()”部分替换成计算本月的第天,在计算中用本月的第天来替换当前日期使得计算可以获得这个月的第一个星期一。 
--删除一个月前,三个月前, 6个月前,一年前的数据  DELETE FROM 表名WHERE datediff(MM, AddTime,GETDATE()) > 1 DELETE FROM 表名WHERE datediff(MM, AddTime,GETDATE()) > 3 DELETE FROM 表名WHERE datediff(MM, AddTime,GETDATE()) > 6 DELETE FROM 表名WHERE datediff(YY, AddTime,GETDATE()) > 1
---------------------------------------------------------------   附录,其他日期处理方法    1)去掉时分秒  declare  @  datetime   set  @  =  getdate()  --‘2003-7-1  10:00:00‘   SELECT  @,DATEADD(day,  DATEDIFF(day,0,@),  0)     2)显示星期几  select  datename(weekday,getdate())       3)如何取得某个月的天数  declare  @m  int   set  @m=2  --月份  select    datediff(day,‘2003-‘+cast(@m  as  varchar)+‘-15‘  ,‘2003-‘+cast(@m+1    as  varchar)+‘-15‘)  
另外,取得本月天数  select    datediff(day,cast(month(GetDate())  as  varchar)+‘-‘+cast(month(GetDate())  as  varchar)+‘-15‘  ,cast(month(GetDate())  as  varchar)+‘-‘+cast(month(GetDate())+1    as  varchar)+‘-15‘)  
任意月份的最大天数 select  day(dateadd(dd,-1,dateadd(mm,1,Dateadd(mm,datediff(mm,0,getdate()),0)))) 
或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天  SELECT  Day(dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0)))     4)判断是否闰年: 
SELECT  case  day(dateadd(mm,  2,  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))))  when  28  then  ‘平年‘  else  ‘闰年‘  end  
或者  select  case  datediff(day,datename(year,getdate())+‘-02-01‘,dateadd(mm,1,datename(year,getdate())+‘-02-01‘))   when  28  then  ‘平年‘  else  ‘闰年‘  end     5)一个季度多少天  declare  @m  tinyint,@time  smalldatetime   select  @m=month(getdate())   select  @m=case  when  @m  between  1  and  3  then  1                          when  @m  between  4  and  6  then  4                          when  @m  between  7  and  9  then  7                          else  10  end   select  @time=datename(year,getdate())+‘-‘+convert(varchar(10),@m)+‘-01‘   select  datediff(day,@time,dateadd(mm,3,@time))   
 
 1、确定某年某月有多少天
实现原理:先利用DATEDIFF取得当前月的第一天,再将月份加一取得下月第一天,然后减去分钟,再取日期的天数部分,即为当月最大日期,也即当月天数
CREATE FUNCTION DaysInMonth ( @date datetime ) Returns int AS BEGIN  RETURN Day(dateadd(mi,-3,DATEADD(m, DATEDIFF(m,0,@date)+1,0))) END
调用示例:
select dbo.DaysInMonth (‘2006-02-03‘) 
(2)计算哪一天是本周的星期一
SELECT DATEADD(week, DATEDIFF(week,‘1900-01-01‘,getdate()), ‘1900-01-01‘)  --返回-11-06 00:00:00.000 或 SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)      
(3)当前季度的第一天
SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)—返回-10-01 00:00:00.000 
(4)一个季度多少天
declare @m tinyint,@time smalldatetime 
select @m=month(getdate())  select @m=case when @m between 1 and 3 then 1                         when @m between 4 and 6 then 4                         when @m between 7  and 9 then 7                         else 10 end 
select @time=datename(year,getdate())+‘-‘+convert(varchar(10),@m)+‘-01‘  select datediff(day,@time,dateadd(mm,3,@time)) —返回

 
1.按姓氏笔画排序:  Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 
2.分页SQL语句 select * from(select (row_number() OVER (ORDER BY tab.ID Desc)) as rownum,tab.* from 表名As tab) As t where rownum between 起始位置And 结束位置
8.如何修改数据库的名称:
sp_renamedb ‘old_name‘, ‘new_name‘ 
3.获取当前数据库中的所有用户表 select * from sysobjects where xtype=‘U‘ and category=0 
4.获取某一个表的所有字段 select name from syscolumns where id=object_id(‘表名‘) 
5.查看与某一个表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like ‘%表名%‘ 
6.查看当前数据库中所有存储过程 select name as 存储过程名称from sysobjects where xtype=‘P‘ 
7.查询用户创建的所有数据库 select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name=‘sa‘)  或者 select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01 
8.查询某一个表的字段和数据类型 select column_name,data_type from information_schema.columns where table_name = ‘表名‘ 
 
 
9.使用事务 在使用一些对数据库表的临时的SQL语句操作时,可以采用SQL SERVER事务处理,防止对数据操作后发现误操作问题
开始事务 Begin tran  Insert Into TableName Values(…)  SQL语句操作不正常,则回滚事务。
回滚事务 Rollback tran  SQL语句操作正常,则提交事务,数据提交至数据库。
提交事务 Commit tran 
计算执行SQL语句查询时间
declare @d datetime  set @d=getdate()  select * from SYS_ColumnProperties select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate()) 

【关闭SQL Server 数据库所有使用连接】
var cpro_id = "u6292429";

热心网友 时间:2022-04-08 00:42

几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’
排序:select * from table1 order by field1,field2 [desc]
总数:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1

热心网友 时间:2022-04-08 02:00

select
insert
update
delete
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
下载了优酷播放器iku免登录版,安装在没联网的电脑上。查看不了本地的... 播放FLV的几个问题在线等 劲舞团真的有那么好玩吗? 为什么别人说劲舞团是世界上最淫荡的游戏.. 劲舞团好玩吗?? 030221 1020 060414 2168 060417 这几组数是什么意思啊!有知道的大哥请... ...分签约短信服务-【广东农信】”是什么意思? 2168是什么意思爱情 事业单位面试成绩79分算好的吗 事业编面试成绩76分算高分吗 淘宝里的默认驿站是以前寄过的地址吗 北京聚丰达轻质建材有限公司怎么样? photoshop 、flash等方面的知识是计算机科学与技术这个专业的课程吗? - 信息提示 济南聚丰达自动化设备有限公司怎么样? 武汉聚丰达汽车有限公司怎么样? 辣椒要怎样炒起来才好吃,不会炒黑呀, ps 课程设计 广告设计 比如肯德基、德克士手机广告之类的 求高手帮忙、急!!! 四川聚丰达工程管理服务有限公司怎么样? 计算机的图像处理的就业方向是什么? 一把年纪想学PS,请问大鹏教育的PS课程怎么样? 汽车音响不通电怎么回事? 电脑音响忽然不通电了 辣椒煮一下怎么做好吃 急求一件photoshop作品并附带关于该作品的课程设计 运费险加入怎么让买家自己买 音箱不通电保险丝也换了还是不通点,还有什么问题呢 熟油辣椒怎么样熟才会味香辣? 请问广场舞式音响不通电都说是主板坏了,什么情况下会不通电?保险丝查过是好的! 音响放的久了不通电?哪里坏了? 首先,我是个妹子,一个有点污的妹子 今天,我突然收到了另一个妹子的告别 别问我问什么,我就是想表 和异性朋友相处都有哪些禁忌? 为何最近只要是鹿晗的新闻,评论都是“别问,问就是0809上海堡垒”? 我女朋友很艮 东北话就是很肉 慢性子有时候发信息都不回 问她说忘了我该怎么办分手吗 我想要问一个已婚男人在别的女人面前从容不迫,在我面前对我很专注又有些逃避又会主动找我,我18,他35 为什么舍友遇到难题宁可问不熟的人,也不愿意问就在身边的我,我又不是不会帮助她们,也不要求她们有任何 2020汽车行业回顾之神龙汽车:涅磐之路敢问何方?就在脚下 舅舅,我想问一下这两个都是什么都是什么肉 来自L 工作群里写了干嘛不在我这里抽烟,本来是给一个女生说的,别问问起,我该 问个不该问的问题!(肉感)是啥意思? 问个问题,就是那个然后,嗯,哎,所以吧这个问题真的是非常的重要,重要到难以启齿,我的心好痛啊 想知道这两个女生的问题差不多,有什么不同吗? 为什么别人那些男人的弟弟都是胖嘟嘟的很有肉,而我的却很瘦,感觉没脂肪。是操练太少的缘故吗?23岁了 问个问题? 我想问一下大家 我想问下,我看好多女性都说摘环的时候特别疼,有些大夫说带环环就和肉长一起了,是这样吗?我比较怕疼, 别人一问什么 工作 我说幼师 下一句就是很 vivox9怎么截屏视频? 华为畅享10plus怎么完全关闭屏幕内三键? 春早送娇羞,姹紫依风袅。万绿丛中秀靥留,更著嫣和俏。 的意思