某某茶叶有限公司欢迎您!
金沙棋牌在线 > 金沙棋牌在线 > 一些有用的sql语句整理 推荐收藏

一些有用的sql语句整理 推荐收藏

时间:2020-04-15 15:39

主导提示:一部分有效的sql语句实例以下是相关的操作代码

1、举例:有多个表A(字段1,字段2,字段3State of Qatar、B,个中蕴藏数据如下所示表A字段1字段2字段31Null地段内容11Null地段内容12Null地段内容22Null

1、表达:创设数据库 CREATE DATABASE database-name 2、表明:删除数据库 drop database dbname 3、表明:备份sql server --- 创设 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创制新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..State of Qatar 依据已有的表成立新表: A:create table tab_new like tab_old (使用旧表创建新表卡塔尔国 B:create table tab_new as select col1,col2… from tab_old definition only 5、表达:删除新表drop table tabname 6、表达:增添四个列 Alter table tabname add column col type 注:列扩张后将不能够去除。DB第22中学列加上后数据类型也无法改造,唯一能改造的是扩大varchar类型的尺寸。 7、表达:增加主键: Alter table tabname add primary key(col卡塔尔(قطر‎表明:删除主键: Alter table tabname drop primary key(col卡塔尔(قطر‎8、表明:创造索引:create [unique] index idxname on tabname(col….卡塔尔国删除索引:drop index idxname 注:索引是不可改动的,想更正必需删除重新建。 9、表明:创立视图:create view viewname as select statement 删除视图:drop view viewname 10、表明:多少个轻松的中央的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 田野1 like '%value1%' ---like的语法很精美,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count * as totalcount from table1 求和:select sum(田野1卡塔尔国 as sumvalue from table1 平均:select avg(田野1卡塔尔 as avgvalue from table1 最大:select max(田野1卡塔尔国 as maxvalue from table1 最小:select min(田野1卡塔尔 as minvalue from table1 11、表明:多少个高档查询运算词 A: UNION 运算符 UNION 运算符通过整合其余三个结果表并消去表中别的重复行而派生出三个结实表。当 ALL 随 UNION 一起利用时,不消除重复行。两种情景下,派生表的每一行不是源于 TABLE1 就是源于 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包蕴具有在 TABLE1中但不在 TABLE2 中的行并杀绝全部重复行而派生出二个结果表。当 ALL 随 EXCEPT 一同利用时 (EXCEPT ALL卡塔尔,不撤消重复行。 C: INTEMuranoSECT 运算符 INTE安德拉SECT 运算符通过只满含 TABLE1 和 TABLE2中皆有个别行并毁灭全体重复行而派生出一个结实表。当 ALL 随 INTE奥德赛SECT 一齐行使时 (INTELANDSECT ALL卡塔尔国,不拔除重复行。 注:使用运算词的几个查询结果行必得是相通的。 12、表明:使用外连接 A、left outer join: 左外连接:结果集几席卷连接表的相配行,也席卷左连接表的具备行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right outer join: 右外接连(右连接State of Qatar:结果集既饱含连接表的相称连接行,也包蕴右连接表的具有行。 C:full outer join: 全外连接:不仅仅囊括符号连接表的相称行,还包涵多少个三番五次表中的全体记录。 其次,我们来看有个别科学的sql语句 1、说明:复制表(只复制布局,源表名:a 新表名:bState of Qatar (Access可用卡塔尔(قطر‎ 法一:select * into b from a where 11 法二:select top 0 * into b from a 2、表明:拷贝表(拷贝数据,源表名:a 目的表名:b卡塔尔 (Access可用State of Qatar insert into b(a, b, c卡塔尔国 select d,e,f from b; 3、表明:跨数据库之间表的正片(具体数据运用相对路线卡塔尔 (Access可用卡塔尔 insert into b(a, b, cState of Qatar select d,e,f from b in ‘具体数据库' where 条件 例子:..from b in '"&Server.Map帕特h("."卡塔尔(قطر‎&"data.mdb" &"' where.. 4、表达:子查询(表名1:a 表名2:bState of Qatar select a,b,c from a where a IN (select d from b 卡塔尔(قطر‎ 或然: select a,b,c from a where a IN (1,2,3State of Qatar5、表达:呈现小说、提交人和最终回复时间 select a.title,a.username,b.adddate from table a,(select max(adddateState of Qatar adddate from table where table.title=a.title卡塔尔(قطر‎ b 6、表明:外接连查询(表名1:a 表名2:b卡塔尔国 select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、表达:在线视图查询(表名1:a 卡塔尔(قطر‎ select * from (SELECT a,b,c FROM a卡塔尔(قطر‎ T where t.a 1; 8、表达:between的用法,between节制查询数据范围时包涵了边界值,not between不包罗 select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 数值1 and 数值2 9、表明:in 的使用方法 select * from table1 where a [not] in (‘值1','值2','值4','值6'卡塔尔(قطر‎10、表明:两张关联表,删除主表中已经在副表中并没有的消息 delete from table1 where not exists ( select * from table2 where table1.田野同志1=table2.田野(fieldState of Qatar1 卡塔尔(قطر‎ 11、表达:四表联查难点: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 12、表达:日程安插超前五分钟提示 SQL: select * from 日程安插 where datediff('minute',f初步时间,getdate(卡塔尔(قطر‎卡塔尔国5 13、表达:一条sql 语句解决数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc卡塔尔 a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 14、表达:前10条记下 select top 10 * form table1 where 范围 15、表明:接收在每一组b值雷同的数额中对应的a最大的笔录的兼具音信(相同那样的用法能够用于论坛每月排名榜,每月销路广成品分析,按学科成绩排名,等等.卡塔尔select a,b,c from tablename ta where a=(select max(aState of Qatar from tablename tb where tb.b=ta.b卡塔尔 16、表达:包含持有在 TableA 中但不在 TableB和TableC 中的行并湮灭全数重复行而派生出叁个结出表 (select a from tableA State of Qatar except (select a from tableB卡塔尔 except (select a from tableC卡塔尔国17、表明:随机收取10条数据 select top 10 * from tablename order by newid(卡塔尔 18、表达:随机筛选记录 select newid(卡塔尔 19、表达:删除重复记录 Delete from tablename where id not in (select max(id卡塔尔(قطر‎ from tablename group by col1,col2,...卡塔尔(قطر‎ 20、表明:列出数据Curry有着的表名 select name from sysobjects where type='U' 21、表达:列出表里的具备的 select name from syscolumns where id=object_id('TableName'卡塔尔国22、表达:列示type、vender、pcs字段,以type字段排列,case能够渔人之利地促成多种接受,相仿select 中的case。 select type,sum(case vender when 'A' then pcs else 0 end卡塔尔(قطر‎,sum(case vender when 'C' then pcs else 0 end卡塔尔,sum(case vender when 'B' then pcs else 0 endState of Qatar FROM tablename group by type 显示结果: type vender pcs Computer A 1 计算机 A 1 光盘 B 2 光盘 A 2 手机 B 3 手提式有线电话机 C 3 23、表明:早先化表table1 TRUNCATE TABLE table1 24、表明:选拔从10到15的笔录 select top 5 * from (select top 15 * from table order by id asc) table_外号 order by id desc ext: 1. 查看数据库的版本 select @@version 听而不闻的二种SQL SELacrosseVETucson打补丁后的本子号: 8.00.194 Microsoft SQL Server 二〇〇三 8.00.384 Microsoft SQL Server 二〇〇二SP1 8.00.532 Microsoft SQL Server 二〇〇二 SP2 8.00.760 Microsoft SQL Server 二零零二 SP3 8.00.818 Microsoft SQL Server 2001 SP3 w/ Cumulative Patch MS03-031 8.00.2039 Microsoft SQL Server 贰零零肆 SP4 2. 查看数据库所在机器操作系统参数 exec master..xp_msver 3. 查看数据库运转的参数 sp_configure 4. 翻看数据库运转时间 select convert(varchar(30State of Qatar,login_time,120State of Qatar from master..sysprocesses where spid=1 查看数据库服务器名和实例名 print 'Server Name...............: ' + convert(varchar(30卡塔尔(قطر‎,@@SEWranglerVEPAJERONAMEState of Qatar print 'Instance..................: ' + convert(varchar(30State of Qatar,@@SE昂科雷VICENAME卡塔尔 5. 查看全数数据库名称及大小 sp_helpdb 重命名数据库用的SQL sp_renamedb 'old_dbname', 'new_dbname'

1, 删除缓存:

1Examples =======================================

地点内容2

  1. 翻看全部数据库客户登陆新闻 sp_helplogins 查看全数数据库客商所属的剧中人物音讯 sp_helpsrvrolemember 修复迁移服务器时孤立顾客时,能够用的fix_orphan_user脚本可能LoneUser进程改正某些数据对象的用户属主 sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 注意: 纠正对象名的任一部分都可能破坏脚本和仓库储存进程。 把一台服务器上的数据库客户登入新闻备份出来能够用add_login_to_aserver脚本 查看某数据库下,对象级客商权限 sp_helprotect 7. 查看链接服务器 sp_helplinkedsrvlogin 查看远端数据库客户登陆音信 sp_helpremotelogin 8.查看某数据库下某些数据对象的深浅 sp_spaceused @objname 还足以用sp_toptables进度看最大的N(默感觉50卡塔尔个表 查看某数据库下有些数据对象的目录新闻 sp_helpindex @objname 还足以用SP_NChelpindex进程查看更详尽的目录意况 SP_NChelpindex @objname clustered索引是把记录按物理顺序排列的,索引占的空间相当少。 对键值DML操作特别反复的表小编建议用非clustered索引和平契约束,fillfactor参数都用默许值。 查看某数据库下有个别数据对象的的限制音信 sp_helpconstraint @objname 9.翻看数据Curry具备的仓库储存进度和函数 use @database_name sp_stored_procedures 查看存款和储蓄进程和函数的源代码 sp_helptext '@procedure_name' 查看包蕴某些字符串@str的数额对象名称 select distinct object_name(id卡塔尔 from syscomments where text like '%@str%' 创造加密的蕴藏进度或函数在AS后面加WITH ENCPRADOYPTION参数 解密加密过的寄放进程和函数能够用sp_decrypt进度10.查看数据Curry客商和进度的音信 sp_who 查看SQL Server数据Curry的移动客商和进程的新闻 sp_who 'active' 查看SQL Server数据Curry的锁的气象 sp_lock 进度号1--50是SQL Server系统内部用的,进度号大于50的才是客商的一而再一而再进度. spid是经过编号,dbid是数据库编号,objid是数量对象编号 查看进程正在推行的SQL语句 dbcc inputbuffer (卡塔尔推荐大家用经过改良后的sp_who3进度可以一贯看看进度运营的SQL语句 sp_who3 检查死锁用sp_who_lock过程 sp_who_lock 11.翻看和收缩数据库日志文件的不二法门 查看全部数据库日志文件大小 dbcc sqlperf(logspace卡塔尔(قطر‎即使有些日志文件十分的大,减弱轻松复苏方式数据库日志,缩小后@database_name_log的分寸单位为M backup log @database_name with no_log dbcc shrinkfile (@database_name_log, 5State of Qatar 12.深入分析SQL Server SQL 语句的不二等秘书籍: set statistics time {on | off} set statistics io {on | off} 图形情势显示查询施行陈设 在询问分析器-查询-展现预计的评估安插(D卡塔尔(قطر‎-Ctrl-L 大概点击工具栏里的图形 文本方式显示查询推行布署 set showplan_all {on | off} set showplan_text { on | off } set statistics profile { on | off } 13.涌出不均等错误时,NT事件查看器里出3624号错误,修复数据库的格局先注释掉应用程序里引用的产出差别性错误的表,然后在备份或任何机器上先过来然后做修复操作 alter database [@error_database_name] set single_user 修复现身不均等错误的表 dbcc checktable('@error_table_name',repair_allow_data_loss卡塔尔或许可惜选取修复现身不相同样错误的小型数据库名 dbcc checkdb('@error_database_name',repair_allow_data_loss) alter database [@error_database_name] set multi_user CHECKDB 有3个参数: repair_allow_data_loss 包罗对行和页实行分红和撤回分配以改革分配错误、布局行或页的失实, 以至去除已破坏的文件对象,那几个修复或然会以致有些数额遗失。 修复操作可以在顾客业务下成功以允许顾客回滚所做的改进。 即使回滚修复,则数据库仍会包罗错误,应该从备份举办复苏。 借使出于所提供修复品级的缘故疏漏有个别错误的修补,则将疏漏任何决计于该修复的修复。 修复实现后,请备份数据库。 repair_fast 实行小的、不耗费时间的修复操作,如修复非聚焦索引中的附加键。 那个修复能够便捷形成,並且不会有错过数据的背水一战。 repair_rebuild 执行由 repair_fast 达成的享有修复,蕴含供给十分的短期的修补。 实践这个修复时不会有错失数据的危险。 sql语句实例 1 Examples ======================================= select id,age,Fullname from tableOne a where a.id!=(select max(id) from tableOne b where a.age=b.age and a.FullName=b.FullName) ========================================= delete from dbo.Schedule where RoomID=29 and StartTime'2005-08-08' and EndTime'2006-09-01' and Remark like 'preset' and UserID=107 and ( (ScheduleID=3177 and ScheduleID=3202 ) or (ScheduleID=3229 and ScheduleID=3254) or (ScheduleID=3307 and ScheduleID=3332) ========================================= delete tableOne where tableOne.id!=(select max(id) from tableOne b where tableOne.age=b.age and tableOne.FullName=b.FullName); ========================================== DataClient 12/23/2005 5:03:38 PM select top 5 DOC_MAIN.CURRENT_VERSION_NO as Version, DOC_MAIN.MODIFY_DATE as ModifyDT, DOC_MAIN.SUMMARY as Summary, DOC_MAIN.AUTHOR_EMPLOYEE_NAME as AuthorName, DOC_MAIN.TITLE as Title, DOC_MAIN.DOCUMENT_ID as DocumentID, Attribute.ATTRIBUTE_ID as AttributeId, Attribute.CATALOG_ID as CatalogId, DOC_STATISTIC.VISITE_TIMES as VisiteTimes, DOC_STATISTIC.DOCUMENT_ID as DocumentID2 from DOC_MAIN DOC_MAIN Inner join CATALOG_SELF_ATTRIBUTE Attribute on DOC_MAIN.CATALOG_ID=Attribute.CATALOG_ID Left join DOC_STATISTIC DOC_STATISTIC on DOC_MAIN.DOCUMENT_ID=DOC_STATISTIC.DOCUMENT_ID where (DOC_MAIN.AUTHOR_EMPLOYEE_ID = 1) and (Attribute.ATTRIBUTE_ID = 11) order by VisiteTimes DESC ==================================== select top 1 DOCUMENT_ID,EMPLOYEE_NAME,COMMENT_DATE,COMMENT_VALUE from dbo.DOC_COMMENT where DOCUMENT_ID=19 and COMMENT_DATE = (select max(COMMENT_DATE) from DOC_COMMENT where DOCUMENT_ID=19) ==================================== select TITLE, (select top 1 EMPLOYEE_NAME from dbo.DOC_COMMENT where DOCUMENT_ID=19) Commentman, (select top 1 COMMENT_DATE from dbo.DOC_COMMENT where DOCUMENT_ID=19) COMMENT_DATE from DOC_MAIN where DOCUMENT_ID=19 ====================================== alter view ExpertDocTopComment as select DOCUMENT_ID, max(ORDER_NUMBER ) as lastednum from dbo.DOC_COMMENT group by DOCUMENT_ID go alter view ExpertDocView as select TITLE , a.AUTHOR_EMPLOYEE_ID , c.EMPLOYEE_NAME , c.COMMENT_DATE from dbo.DOC_MAIN a left join ExpertDocTopComment b on a.DOCUMENT_ID = b.DOCUMENT_ID inner join DOC_COMMENT c on b.DOCUMENT_ID = c.DOCUMENT_ID and b.lastednum = c. ORDER_NUMBER ====================================== select a.Id ,a.WindowsUsername , 0 , 1 , a.Email , case b.EnFirstName when null then a.Username else b.EnFirstName end, case b.EnLastName when null then a.Username else b.EnLastName end from UUMS_KM.dbo.UUMS_User a left join UUMS_KM.dbo.HR_Employee b on a. HR_EmployeeId = b.id ===================================== 列出上传文书档案最多的两人的ID select AUTHOTucson_EMPLOYEE_ID,count(AUTHOR_EMPLOYEE_ID) from dbo.DOC_MAIN group by AUTHOR_EMPLOYEE_ID order by count(AUTHOR_EMPLOYEE_ID卡塔尔(قطر‎ 2719 2 6 9 12 30 1 116 列出上传文档最多的多个人的新闻 select distinct AUTHOEscort_EMPLOYEE_ID ,AUTHOR_EMPLOYEE_NAME from dbo.DOC_MAIN where AUTHOR_EMPLOYEE_ID in ( select top 5 AUTHOR_EMPLOYEE_ID from dbo.DOC_MAIN group by AUTHOR_EMPLOYEE_ID order by count(AUTHOR_EMPLOYEE_ID) )

checkpoint

select id,age,Fullname from tableOne awhere a.id!=(select max(id) from tableOne b where a.age=b.age and a.FullName=b.FullName)

3Null所在内容34Null地段内容45Null所在内容55Null地段内容55Null地段内容56Null地点内容67Null地域内容78Null地段内容88Null地段内容88Null地段内容88Null地段内容8表B字段2字段3wdz1地区内容1wdz2地面内容3wdz3地面内容5wdz4地面内容6wdz5地段内容7wdz6地段内容8选拔上面包车型客车Sql语句update 表1 set 字段1 = (select 字段1 from 表2 where 表1.字段3=表2.字段3卡塔尔结果如下表所示表A结果字段1字段2字段31wdz1地域内容11wdz1地段内容12Null地段内容22Null

sql 语句

=========================================

地方内容2

dbcc dropcleanbuffers

delete from dbo.Schedule where

3wdz2地域内容34Null地段内容45wdz3地区内容55wdz3地面内容55wdz3地面内容56wdz4地面内容67wdz5地段内容78wdz6地段内容88wdz6地带内容88wdz6地带内容88wdz6地带内容8下边是本条Sql语句的网上朋友观点一、“江千帆”update 表1 set 字段1 = (select 字段1 from 表2 where 表1.字段3=表2.字段3卡塔尔(قطر‎的频率十分的低,若是有X条记下,会引致子查询执行X次. 要是大家这么写,就足以丰盛利用索引,何况幸免不要求的高频奉行。 update 表1 set 表1.字段2 =表2.字段2 from 表1 inner join 表2 on 表1.字段3=表2.字段3网民观点归结甘休。2、譬喻:如第1点中的表A相似,须要查询出表A的重复数据的Sql语句如下select 字段1 from 表A group by 字段1 having count(字段3)1查询结果如下表A查询结果字段112583、举个例子:须要在Sql Server二零零三中查询处某一定物理路线的X1.dbf文件,使用的Sql语句如下select * from OpenDataSource('VFPOLEDB.1','User ID=;DSN=;Collating Sequence=MACHINE;Data Source=C:dbfFilesX1.dbf;Password=;Cache Authentication=False;Mask Password=False;Mode=Share Deny None;Extended Properties=;Encrypt Password=False'State of Qatar...X1 注:其他的非VF数据库文件的查询相近,只要求安装OpenDataSource中的参数就能够。参数表明为OpenDataSource(数据源驱动名,数据源连接字符串卡塔尔

2,展现实践布置

RoomID=29 and StartTime2005-08-08 and EndTime2006-09-01 and Remark like preset and UserID=107

set showplan_text on;

and (

slq 语句

(ScheduleID=3177 and ScheduleID=3202 )

set showplan_text off;

or (ScheduleID=3229 and ScheduleID=3254)

or (ScheduleID=3307 and ScheduleID=3332)

=========================================

delete tableOne where tableOne.id!=(select max(id) from tableOne b where tableOne.age=b.age and tableOne.FullName=b.FullName);

==========================================

DataClient12/23/2005 5:03:38 PM

select top 5

DOC_MAIN.CURRENT_VERSION_NO as Version, DOC_MAIN.MODIFY_DATE as ModifyDT, DOC_MAIN.SUMMARY as Summary, DOC_MAIN.AUTHOR_EMPLOYEE_NAME as AuthorName, DOC_MAIN.TITLE as Title, DOC_MAIN.DOCUMENT_ID as DocumentID,Attribute.ATTRIBUTE_ID as AttributeId, Attribute.CATALOG_ID as CatalogId,DOC_STATISTIC.VISITE_TIMES as VisiteTimes, DOC_STATISTIC.DOCUMENT_ID as DocumentID2

from DOC_MAIN DOC_MAIN

Inner join CATALOG_SELF_ATTRIBUTE Attribute on DOC_MAIN.CATALOG_ID=Attribute.CATALOG_ID

Left join DOC_STATISTIC DOC_STATISTIC on DOC_MAIN.DOCUMENT_ID=DOC_STATISTIC.DOCUMENT_ID

where (DOC_MAIN.AUTHOR_EMPLOYEE_ID = 1) and (Attribute.ATTRIBUTE_ID = 11)

order by VisiteTimes DESC