Mssql常⽤经典SQL语句⼤全完整版--详解+实例下列语句部分是Mssql语句,不可以在access中使⽤。
  SQL分类:
  DDL—数据定义语⾔(CREATE,ALTER,DROP,DECLARE)
  DML—数据操纵语⾔(SELECT,DELETE,UPDATE,INSERT)
  DCL—数据控制语⾔(GRANT,REVOKE,COMMIT,ROLLBACK)
  ⾸先,简要介绍基础语句:
  1、说明:创建数据库
CREATE DATABASE database-name
  2、说明:删除数据库
drop database dbname
  3、说明:备份sql server
  --- 创建备份数据的 device
USE master
EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’
  --- 开始备份
BACKUP DATABASE pubs TO testBack
  4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
  根据已有的表创建新表:
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
  注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯⼀能改变的是增加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 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 max(field1) as maxvalue from table1
  最⼩:select min(field1) as minvalue from table1
  11、说明:⼏个⾼级查询运算词
  A: UNION 运算符
  UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复⾏⽽派⽣出⼀个结果表。当 ALL 随 UNION ⼀起使⽤时(即 UNION ALL),不消除重复⾏。两种情况下,派⽣表的每⼀⾏不是来⾃ TABLE1 就是来⾃ TABLE2。
  B: EXCEPT 运算符
  EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的⾏并消除所有重复⾏⽽派⽣出⼀个
结果表。当 ALL 随 EXCEPT ⼀起使⽤时 (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.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
  B:right outer join:
  右外连接(右连接):结果集既包括连接表的匹配连接⾏,也包括右连接表的所有⾏。
  C:full outer join:
  全外连接:不仅包括符号连接表的匹配⾏,还包括两个连接表中的所有记录。
  其次,⼤家来看⼀些不错的sql语句
  1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可⽤)
  法⼀:select * into b from a where 1<>1
  法⼆:select top 0 * into b from a
  2、说明:拷贝表(拷贝数据,源表名: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 ) 或者: select a,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) 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.field1=table2.field1 )
  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(a) from tablename 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、说明:随机选择记录
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=’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 end) FROM tablename group by type
  显⽰结果:
type    vender pcs
电脑 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
随机选择数据库记录的⽅法(使⽤Randomize函数,通过SQL语句实现)
  对存储在数据库中的数据来说,随机数特性能给出上⾯的效果,但它们可能太慢了些。你不能要求ASP“个随机数”然后打印出来。实际上常见的解决⽅案是建⽴如下所⽰的循环:
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 这⾥是执⾏脚本 ...
end if
objRec.MoveNext
Wend
  这很容易理解。⾸先,你取出1到500范围之内的⼀个随机数(假设500就是数据库内记录的总数)。然后,你遍历每⼀记录来测试ID 的值、检查其是否匹配RNumber。满⾜条件的话就执⾏由THEN 关键
字开始的那⼀块代码。假如你的RNumber 等于495,那么要循环⼀遍数据库花的时间可就长了。虽然500这个数字看起来⼤了些,但相⽐更为稳固的企业解决⽅案这还是个⼩型数据库了,后者通常在⼀个数据库内就包含了成千上万条记录。这时候不就死定了?
  采⽤SQL,你就可以很快地出准确的记录并且打开⼀个只包含该记录的recordset,如下所⽰:
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
  不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的⼯作满意,你⾃可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能到你需要的记录这样就⼤⼤降低了处理时间。
再谈随机数
  现在你下定决⼼要榨⼲Random 函数的最后⼀滴油,那么你可能会⼀次取出多条随机记录或者想采⽤⼀定随机范围内的记录。把上⾯的标准Random ⽰例扩展⼀下就可以⽤SQL应对上⾯两种情况了。
  为了取出⼏条随机选择的记录并存放在同⼀recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:
  SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3php echo用法
  假如你想选出10条记录(也许是每次页⾯装载时的10条链接的列表),你可以⽤BETWEEN 或者数学等式选出第⼀条记录和适当数量
  假如你想选出10条记录(也许是每次页⾯装载时的10条链接的列表),你可以⽤BETWEEN 或者数学等式选出第⼀条记录和适当数量的递增记录。这⼀操作可以通过好⼏种⽅式来完成,但是 SELECT 语句只显⽰⼀种可能(这⾥的ID 是⾃动⽣成的号码):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
  注意:以上代码的执⾏⽬的不是检查数据库内是否有9条并发记录。
  随机读取若⼲条记录,测试过
Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server:select top n * from 表名 order by newid()
mysql select * From 表名 Order By rand() Limit n
  Access左连接语法(最近开发要⽤左连接,Access帮助什么都没有,⽹上没有Access的SQL说明,只有⾃⼰测试, 现在记下以备后查)
  语法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
  使⽤SQL语句⽤...代替过长的字符串显⽰
  语法:
  SQL数据库:select case when len(field)>10 then left(field,10)+’...’ else field end as news_name,news_id from tablename
  Access数据库:SELECT iif(len(field)>2,left(field,2)+’...’,field) FROM tablename;
  Conn.Execute说明
  Execute⽅法
  该⽅法⽤于执⾏SQL语句。根据SQL语句执⾏后是否返回记录集,该⽅法的使⽤格式分为以下两种:
  1.执⾏SQL查询语句时,将返回查询得到的记录集。⽤法为:
  Set 对象变量名=连接对象.Execute("SQL 查询语⾔")
  Execute⽅法调⽤后,会⾃动创建记录集对象,并将查询结果存储在该记录对象中,通过Set⽅法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。
  2.执⾏SQL的操作性语⾔时,没有记录集的返回。此时⽤法为:
  连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]
  ·RecordAffected 为可选项,此出可放置⼀个变量,SQL语句执⾏后,所⽣效的记录数会⾃动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进⾏了操作。
  ·Option 可选项,该参数的取值通常为adCMDText,它⽤于告诉ADO,应该将Execute⽅法之后的第⼀个字符解释为命令⽂本。通过指定该参数,可使执⾏更⾼效。
  ·BeginTrans、RollbackTrans、CommitTrans⽅法
  这三个⽅法是连接对象提供的⽤于事务处理的⽅法。BeginTrans⽤于开始⼀个事物;RollbackTrans⽤于回滚事务;CommitTrans⽤于提交所有的事务处理结果,即确认事务的处理。
  事务处理可以将⼀组操作视为⼀个整体,只有全部语句都成功执⾏后,事务处理才算成功;若其中有⼀个语句执⾏失败,则整个处理就算失败,并恢复到处⾥前的状态。
  BeginTrans和CommitTrans⽤于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发⽣,事务处理失败。Error集合中的每⼀个Error对象,代表⼀个错误信息。mysql面试题大全
SQL语句⼤全精要
2006/10/26 13:46
DELETE语句
DELETE语句:⽤于创建⼀个删除查询,可从列在 FROM ⼦句之中的⼀个或多个表中删除记录,且该⼦句满⾜ WHERE ⼦句中的条件,可以使⽤DELETE删除多个记录。
语法:DELETE [table.*] FROM table WHERE criteria
语法:DELETE * FROM table WHERE criteria=’查询的字’
说明:table参数⽤于指定从其中删除记录的表的名称。
criteria参数为⼀个表达式,⽤于指定哪些记录应该被删除的表达式。
可以使⽤ Execute ⽅法与⼀个 DROP 语句从数据库中放弃整个表。不过,若⽤这种⽅法删除表,将会失去表的结构。不同的是当使⽤DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。
UPDATE
有关UPDATE,急
在ORACLE数据库中
表 A ( ID ,FIRSTNAME,LASTNAME )
表 B( ID,LASTNAME)
表 A 中原来ID,FIRSTNAME两个字段的数据是完整的
表 B中原来ID,LASTNAME两个字段的数据是完整的
现在要把表 B中的LASTNAME字段的相应的数据填⼊到A表中LASTNAME相应的位置。两个表中的ID字段是相互关联的。
先谢谢了
update a set a.lastname=(select b.lastname from b where a.id=b.id)
update a set a.lastname=(select b.lastname from b where a.id=b.id)
简述css的三种引入方式
  掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。
  练掌握SQL是数据库⽤户的宝贵财富。在本⽂中,我们将引导你掌握四条最基本的数据操作语句—SQL的核⼼功能—来依次介绍⽐较操作符、选择断⾔以及三值逻辑。当你完成这些学习后,显然你已
经开始算是精通SQL了。
  在我们开始之前,先使⽤CREATE TABLE语句来创建⼀个表(如图1所⽰)。DDL语句对数据库对象如表、列和视进⾏定义。它们并不对表中的⾏进⾏处理,这是因为DDL语句并不处理数据库中实际的数据。这些⼯作由另⼀类SQL语句—数据操作语⾔(DML)语句进⾏处理。
  SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是⼤多数SQL⽤户经常⽤到的,我们有必要在此对它们进⾏⼀⼀说明。在图1中我们给出了⼀个名为EMPLOYEES的表。其中的每⼀⾏对应⼀个特定的雇员记录。请熟悉这张表,我们在后⾯的例⼦中将要⽤到它。
The Execute method executes a specified query, SQL statement, stored procedure, or provider-specific text.
Execute的作⽤是:执⾏⼀个查询语句、陈述语句、程序或技术提供对象[provider]的详细⽂本。
The results are stored in a new Recordset object if it is a row-returning query. A closed Recordset object will be returned 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 functionality, first create a Recordset object. Set the desired properties, and then use the Recordset object's Open method to execute the query.
提⽰:在第⼀次创建Recordset对象时,需要将它创建为⼀个更具功能性的Recordset对象。设置⼀个我们所希望的属性,使⽤Recordset对象的Open⽅法去执⾏查询语句。
Syntax for row-returning
row-returning[返回⾏]语法
Set objrs=objconn.Execute(commandtext,ra,options)
Syntax for non-row-returning
non-row-returning[⾮返回⾏]语法
objconn.Execute commandtext,ra,options
Parameter参数Description描述android开发java语言
commandtext
Required. The SQL statement, stored procedure, or provider-specific text to execute 必要参数。指定需要执⾏的SQL语句,现存的程序或技术提供对象[provider]的详细⽂本
realdra
Optional. The number of records affected by the query 可选参数。返回查询语句执⾏的记录数
options
Optional. Sets how the provider should evaluate the commandtext parameter. Can be one or more or values. Default is adCmdUnspecified
可选参数。设置技术提供对象[provider]应该如何评估CommandText属性的功能。它可以是⼀个或多个CommandTypeEnum 或 ExecuteOptionEnum的值。默认值是adCmdUnspecified
Example
vm虚拟机linux系统怎么编程
案例
<%
sql="SELECT companyname FROM Customers"
Set rs=conn.Execute(sql)
%>
Constant常量Value值Description描述

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。