版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.常用经典 SQL 语句大全完整版- 详解 +实例下列语句部分是Mssql 语句,不可以在access 中使用。SQL 分类:DDL 数据定义语言(CREATE ,ALTER ,DROP ,DECLARE)DML 数据操纵语言(SELECT , DELETE ,UPDATE ,INSERT)DCL 数据控制语言(GRANT , REVOKE , COMMIT ,ROLLBACK)首先 , 简要介绍基础语句:1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server- 创建 备份数据
2、的 device USE masterEXECsp_addumpdevicedisk , testBack , c: mssql7backupMyNwind_1.dat- 开始 备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create tabletabname(col1type1 not nullprimarykey,col2type2 not null,.)Word 完美格式.根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as selec
3、t col1,col2?from tab_olddefinition only5、说明:删除新表:drop table tabname6、说明:增加一个列:Alter table tabname add column col type注:列增加后将不能删除。DB2 中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键:Alter table tabname drop primary key(col)8、说明:创建索引:create uniqueindex id
4、xname on tabname(col? .)删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql 语句Word 完美格式.选择: select * from table1 where范围插入: insert into table1(field1,field2)values(value1,value2)删除: delete from table1 where范围更新: upda
5、te table1 set field1=value1 where范围查找: select* from table1where field1 like%value1% -like的语法很精妙,查资料!排序: 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 m
6、ax(field1) as maxvalue from table1最小: select min(field1) as minvalue from table111 、说明:几个高级查询运算词A: UNION 运算符UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2 )并消去表中任何重复行而派生出一个结果表。当ALL随UNION 一起使用时(即UNION ALL ),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自 TABLE2 。B: EXCEPT 运算符EXCEPT 运算符通过包括所有在TABLE1 中但不在 TABLE2 中的行并消除所有重复
7、行而派生出一个结果表。当ALL 随 EXCEPT 一起Word 完美格式.使用时 (EXCEPT ALL) ,不消除重复行。C: INTERSECT运算符INTERSECT运算符通过只包括TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT一起使用时 (INTERSECT ALL),不消除重复行。注:使用运算词的几个查询结果行必须是一致的。12 、说明:使用外连接A、left outer join:左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。SQL: select a.a, a.b, a.c, b.c, b
8、.d, b.f from a LEFT OUT JOINb ON a.a = b.cB:right outer join:右外连接 ( 右连接 ) :结果集既包括连接表的匹配连接行,也包括右连接表的所有行。C:full outer join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。其次,大家来看一些不错的sql 语句1、说明:复制表( 只复制结构, 源表名: a 新表名: b) (Access可用 )法一: select * into b from a where 11Word 完美格式.法二: select top 0 * into b from a2、说明:拷贝
9、表( 拷贝数据 , 源表名: a 目标表名: b) (Access可用 )insert into b(a, b, c) select d,e,f from b;3、说明:跨数据库之间表的拷贝( 具体数据使用绝对路径)(Access 可用 )insert into b(a, b, c) select d,e,f from b in具体数据库where 条件例子: .from b in &Server.MapPath(.)&data.mdb & where.4、说明:子查询( 表名 1:a 表名 2:b)select a,b,c from a where a IN (select d from b
10、 )或者 : selecta,b,c from a where a IN (1,2,3)5、说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、说明:外连接查询( 表名 1 :a 表名 2 :b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN bON a.a = b.c7、说明:在线视图查询( 表名 1 :a
11、 )select * from (SELECT a,b,c FROM a) T where t.a 1;8、说明: between 的用法 ,between 限制查询数据范围时包括了Word 完美格式.边界值 ,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between数值 1 and数值 29、说明: in的使用方法select * from table1 where a not in (值 1, 值 2, 值4, 值 6)
12、10 、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )11 、说明:四表联查问题:select * from a left inner join b on a.a=b.b right inner joinc on a.a=c.c inner join d on a.a=d.d where .12 、说明:日程安排提前五分钟提醒SQL: select * from日程安排where datediff(min
13、ute,f开始时间 ,getdate()513 、说明:一条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范围Word 完美格式.15 、说明:选择在每一组b 值相同的数据中对应的a 最大的记录的所有信息 ( 类似这样的用法可以用于论坛每月排行榜, 每月热销产品分析 , 按科目成绩排名, 等等
14、.)select a,b,c from tablename ta where a=(select max(a) fromtablename tb where tb.b=ta.b)16 、说明:包括所有在TableA中但不在TableB和 TableC中的行并消除所有重复行而派生出一个结果表(select a from tableA ) except (select a from tableB)except (select a from tableC)17 、说明:随机取出10 条数据select top 10 * from tablename order by newid()18 、说明:随机
15、选择记录select newid()19 、说明:删除重复记录Delete from tablename where id not in (select max(id)from tablename group by col1,col2,.)20 、说明:列出数据库里所有的表名select name from sysobjects where type=U21、说明:列出表里的所有的selectnamefrom syscolumns where id=object_id(TableName )22 、说明:列示type 、vender 、pcs 字段,以 type 字段排列,case 可以方便地
16、实现多重选择,类似select 中的 case 。Word 完美格式.select type,sum(case vender whenA then pcs else 0end),sum(case vender whenC then pcs else 0 end),sum(casevender whenB the n pcs else 0end) FROM tablenamegroup bytype显示结果:typevender pcs电脑 A1电脑 A1光盘 B2光盘 A2手机 B3手机 C323 、说明:初始化表table1TRUNCATE TABLE table124 、说明:选择从10
17、到 15 的记录selecttop 5 * from (select top 15 * from tableorderby id asc)table_ 别名 order by id desc随机选择数据库记录的方法(使用 Randomize 函数,通过SQL 语句实现)对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP “找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:Word 完美格式.RandomizeRNumber = Int(Rnd*499) +1While Not objRec.EOFIf objRec(ID) = RNu
18、mber THEN.这里是执行脚本.end ifobjRec.MoveNextWend这很容易理解。首先,你取出1 到 500 范围之内的一个随机数(假设 500 就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber 。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的 RNumber 等于 495 ,那么要循环一遍数据库花的时间可就长了。虽然500 这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?采用 SQL ,你就可以很快地找出准确的记录并且打开一个只
19、包含该记录的 recordset,如下所示:RandomizeRNumber = Int(Rnd*499) + 1SQL = SELECT * FROM Customers WHERE ID = & RNumberWord 完美格式.set objRec = ObjConn.Execute(SQL)Response.WriteRNumber & = & objRec(ID) & &objRec(c_email)不必写出 RNumber 和 ID ,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录
20、这样就大大降低了处理时间。再谈随机数现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准 Random 示例扩展一下就可以用SQL 应对上面两种情况了。为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:SQL = SELECT * FROM Customers WHERE ID = & RNumber & OR ID = & RNumber2 & OR ID = & RNumber3假如你想选出10 条记录(也许是每次页面装载时的10 条链接的列表)
21、,你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是SELECT 语句只显示一种可能(这里的ID 是自动生成的号码):SQL = SELECT * FROM Customers WHERE ID BETWEEN & RNumber& AND & RNumber & + 9Word 完美格式.注意:以上代码的执行目的不是检查数据库内是否有9 条并发记录。随机读取若干条记录,测试过Access 语法: SELECT top 10 * From表名ORDER BY Rnd(id)Sql server:select top n * from表
22、名order by newid()mysql select * From表名 Order By rand() Limit nAccess 左连接语法 ( 最近开发要用左连接 ,Access 帮助什么都没有 , 网上没有 Access 的 SQL 说明 , 只有自己测试 , 现在记下以备后查 )语法 select table1.fd1,table1,fd2,table2.fd2 From table1left join table2 on table1.fd1,table2.fd1 where .使用 SQL 语句 用.代替过长的字符串显示语法:SQL 数据库: select case when
23、 len(field)10 thenleft(field,10)+ . else field end as news_name,news_idfrom tablenameAccess 数据库: SELECTiif(len(field)2,left(field,2)+. ,field)FROMtablename;Conn.Execute说明Execute 方法该方法用于执行SQL 语句。根据SQL 语句执行后是否返回记录集,该方法的使用格式分为以下两种:1执行 SQL 查询语句时,将返回查询得到的记录集。用法为:Word 完美格式.Set 对象变量名 = 连接对象 .Execute(SQL查询语
24、言)Execute 方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set 方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。2执行 SQL 的操作性语言时,没有记录集的返回。此时用法为:连接对象 .Execute SQL操作性语句 , RecordAffected,OptionRecordAffected为可选项,此出可放置一个变量,SQL 语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道 SQL 语句队多少条记录进行了操作。Option可选项,该参数的取值通常为adCMDText ,它用于告诉 ADO ,应该将 Execute
25、 方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。 BeginTrans 、 RollbackTrans 、CommitTrans 方法这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物; RollbackTrans 用于回滚事务; CommitTrans 用于提交所有的事务处理结果,即确认事务的处理。事务处理可以将一组操作视为一个整体, 只有全部语句都成功执行后,事务处理才算成功; 若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。BeginTrans 和 CommitTrans用于标记事务的开始和结束,在这两个之间的语句
26、,就是作为事务处理的语句。判断事务处理是否成功,Word 完美格式.可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。SQL 语句大全精要2006/10/26 13:46DELETE 语句DELETE 语句:用于创建一个删除查询,可从列在FROM 子句之中的一个或多个表中删除记录,且该子句满足WHERE 子句中的条件,可以使用 DELETE 删除多个记录。语法: DELETE table.* FROM table WHERE criteria语法: DELETE * FROM tab
27、le WHERE criteria=查询的字说明: table参数用于指定从其中删除记录的表的名称。criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。可以使用 Execute方法与一个DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用DELETE ,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。UPDATE有关 UPDATE ,在 ORACLE 数据库中表 A ( ID ,FIRSTNAME,LASTNAME )Word 完美格式.表 B( ID,LASTNAME)表 A 中原来 ID,FIRSTNAME
28、 两个字段的数据是完整的表 B 中原来 ID,LASTNAME 两个字段的数据是完整的现在要把表B 中的 LASTNAME 字段的相应的数据填入到A 表中LASTNAME 相应的位置。两个表中的ID 字段是相互关联的。先谢谢了 !update a set a.lastname=(select b.lastname from bwhere a.id=b.id)掌握 SQL 四条最基本的数据操作语句:Insert,Select ,Update和 Delete 。练掌握 SQL 是数据库用户的宝贵财富。在本文中,我们将引导你掌握四条最基本的数据操作语句SQL 的核心功能来依次介绍比较操作符、选择断言
29、以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL 了。在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图 1 所示)。 DDL 语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理, 这是因为 DDL 语句并不处理数据库中实际的数据。这些工作由另一类 SQL 语句数据操作语言( DML )语句进行处理。SQL 中有四种基本的DML 操作: INSERT ,SELECT ,UPDATE 和 DELETE 。由于这是大多数SQL 用户经常用到的,我们有必要在此对它们进行一一说明。在图1 中我们给出了一个名为EMPLOYEES的表。其中的每一Word 完美
30、格式.行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。The Execute method executes a specified query, SQLstatement, stored procedure, or provider-specific text.Execute 的作用是:执行一个查询语句、陈述语句、程序或技术提供对象 provider的详细文本。The results are stored in a new Recordset object if itis a row-returning query. A closed Recordset object
31、will bereturned if it is not a row-returning query.如果返回行 row-returning查询语句,那么结果将被存储在一个新的记录对象中;如果它不是一个返回行row-returning查询语句,那么它将返回一个关闭的记录对象。Note: The returned Recordset is always a read-only,forward-only Recordset!注意:返回的Recordset是一个只读的、只向前兼容的Recordset 。Tip: To create a Recordset with more functionalit
32、y, firstcreate a Recordset object. Set the desired properties, and then use theRecordset objects Open method to execute the query.提示:在第一次创建Recordset 对象时,需要将它创建为一个更具功Word 完美格式.能性的 Recordset 对象。设置一个我们所希望的属性,使用 Recordset对象的 Open 方法去执行查询语句。Syntax for row-returningrow-returning返回行 语法Set objrs=objconn.Exe
33、cute(commandtext,ra,options)Syntax for non-row-returningnon-row-returning非返回行 语法objconn.Execute commandtext,ra,optionsParameterDescription描述参数commandteRequired. The SQL statement, stored procedure, orxtprovider-specific text to execute必要参数。指定需要执行的 SQL 语句,现存的程序或技术提供对象 provider 的详细文本raOptional. The nu
34、mber of records affected by the query可选参数。返回查询语句执行的记录数optionsOptional. Sets how the provider should evaluate thecommandtext parameter. Can be one ormoreCommandTypeEnumorExecuteOptionEnumvalues.Default is adCmdUnspecified可选参数。设置技术提供对象provider应该如何评估CommandText 属性的功能。它可以是一个或多个 CommandTypeEnum 或 Execute
35、OptionEnum 的值。默认值是 adCmdUnspecifiedExample案例Word 完美格式.CommandTypeEnum ValuesConstant 常量VaDescription描述lue 值adCmdUnspecified-1Does not specify the command typeargument.不指定指令类型自变量adCmdText1Evaluates CommandText as a textualdefinitionof a commandor stored procedurecall.指示提供者应该将Source 作为命令的文本定义来计算。adCmd
36、Table2Evaluates CommandText as a table namewhose columns are all returned by aninternally generated SQL query.指示 ADO 生成 SQL 查询以便从在Source 中命名的表中返回所有行adCmdStoredProc4Evaluates CommandText as a storedprocedure name.将 CommandText 作为一个已存的程序名称adCmdUnknown8Indicates that the type of command inthe CommandTe
37、xt property is not known.Word 完美格式.默认值。指定未知的CommandText属性命令adCmdFile25Evaluates CommandText as the file name6of a persistently stored Recordset. Usedwith Recordset.Open or Requery only.指示应从在 Source 中命名的文件中恢复保留(保存的) Recordset 。它仅能与 Recordset.Open或 Requery指令一起使用adCmdTableDirect51Evaluates CommandText
38、as a table name2whose columns are all returned. Used withRecordset.Open or Requery only. To use theSeek method, the Recordset must be openedwith adCmdTableDirect. This value cannot becombined with the ExecuteOptionEnum valueadAsyncExecute.指示提供者更改从在Source 中命名的表中返回所有行 /将 CommandText 作为一个表的名称 (该表的列全部是通
39、过内部的 SQL 查询语句返回的) 。它仅适用 Recordset.Open 或 Requery 指令;如果需要使用查找方式,那么 Recordset 必须以adCmdTableDirect打开。这个值不能与ExecuteOptionEnum值 adAsyncExecute一起使用ExecuteOptionEnum ValuesConstant 常量VDescription描述alue值Word 完美格式.adOptionUnspecified-Indicates that the command is1unspecified.指明为指定的指令adAsyncExecuteIndicates t
40、hat the command shouldexecute asynchronously. This value cannotbe combined withthe CommandTypeEnumvalueadCmdTableDirect.指明指令是否需要异步执行。这个值不能与CommandTypeEnum之中的 adCmdTableDirect一起使用adAsyncFetchIndicates that the remaining rowsafter the initialquantity specifiedintheCacheSize property should be retrieve
41、dasynchronously.指明在 CacheSize 属性中指定了初始量以后,是否应该异步获取保留行remaining rowsadAsyncFetchNonBlocIndicates that the main thread neverkingblocks while retrieving. If the requestedrow has not been retrieved,the currentrowautomatically moves to the end of the file.If you open a Recordset from a Streamcontaining a persistently storedRecordset, adAsyncFetchNonBlocking willnot have an effect; the operation will besynchronous and blocking.adAsynchFetchNonBlockinghas no effectwhent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通运输行业智能化交通城市交通数字化出行客户服务解决方案分享
- 2026年民办高校一站式学生社区高质量发展重难点与突破路径
- 2026年新材料研发领域大模型预测与分子设计应用
- 2026年砂轮裂纹径向跳动≤0.01mm检测方法
- 2026年欧美日量子科技战略与我国三足鼎立格局竞争态势分析
- 2026年江苏省平台与国家算力调度平台融合贯通经验
- 母婴护理师职业素养提升
- 2026年优化人才要素参与收入分配机制:科技成果转化股权激励方案设计
- 2026年中国能建上海总部零碳超高层建筑技术解析
- 2026年深海载人潜水器水动力外形优化设计指南
- CJJT 29-2010 建筑排水塑料管道工程技术规程
- 慢性肾脏病5期饮食宣教
- CNC车床安全技术操作规程
- 人工智能的知识表示与推理
- 原材料成品分析岗位操作规程(修订版)
- 社区健康服务与管理
- 杨胜刚版国际金融第一章课件
- XX公司面试信息登记表
- 供应商证明书
- 便携式四合一气体检测仪使用说明书
- 2023北京高考英语答题卡ok
评论
0/150
提交评论