sql常用查询语句格式及例子说明,sql语句大全

  sql常用查询语句格式及例子说明,sql语句大全

  SQL分类:

  DDL—数据定义语言(创建、更改、删除、声明)

  DML—数据操作语言(选择、删除、更新、插入)

  DCL—数据控制语言(授权、撤销、提交、回滚)

  首先简单介绍一下基本说法:

  1.描述:创建数据库。

  创建数据库数据库名称

  2.描述:删除数据库。

  删除数据库数据库名

  3.描述:备份sql server

  -用于创建备份数据的设备

  使用母版

   EXEC sp_addumpdevice disk , testBack , c:/mssql7backup/MyNwind_1.dat

  -开始备份

  将数据库pub备份到testBack

  4.描述:创建新表。

  create table tabname(col 1 type 1[not null][主键],col2 type2 [not null],)

  基于现有表格创建新表格:

  答:创建表tab _ new like tab _ old(使用旧表创建新表)

  b:将表tab_new创建为select col1,col2…仅从tab_old定义

  5.描述:删除新表drop table tabname。

  6.注意:添加一列。

  更改表标签名添加列类型

  注意:列添加后不能删除。在DB2中添加列之后,数据类型不能改变。唯一可以改变的就是增加varchar类型的长度。

  7.描述:添加主键:alter table tabname添加主键(COL)

  备注:Delete primary key:alter table tabname drop primary key(COL)

  8.描述:Create index:在tabname (col …上创建[unique]索引idxname。)

  删除索引:删除索引idxname

  注意:索引不能更改。如果你想改变它,你必须删除它并重建它。

  9.描述:创建视图视图名作为Select语句。

  删除视图:删除视图视图名

  10.描述:几个简单和基本的sql语句

  选择:从表1中选择*其中范围

  插入:将值(值1,值2)插入表1(字段1,字段2)

  删除:从表1中删除where范围

  更新:更新表1 setfield1=value1 where range

  查:select * from table 1 where field 1 like % value 1% -like的语法很精致,查数据!

  排序:select * from table1 order by field1,field2 [desc]

  总计:从表1中选择count *作为总计

  Sum:从表1中选择sum (field1)作为sum值

  平均值:从表1中选择avg (field1)作为avgvalue

  最大值:从表1中选择max (field1)作为最大值

  最小值:从表1中选择最小值(字段1)作为最小值

  1.描述:几个高级查询运算符。

  答:联合运营商

  UNION运算符通过组合另外两个结果表(如TABLE1和TABLE2)并消除表中的任何重复行来派生一个结果表。当一切接踵而至

  当UNION一起使用时(即UNION ALL),不会消除重复的行。在这两种情况下,派生表的每一行都来自表1或表2。

  除了接线员

  EXCEPT运算符通过包含表1中的所有行(但不包含表2中的所有行)并消除所有重复行来导出结果表。当ALL与EXCEPT (EXCEPT ALL)一起使用时,不会消除重复行。

  c:交集运算符

  INTERSECT运算符通过仅包含表1和表2中的行并消除所有重复行来导出结果表。当ALL与INTERSECT (INTERSECT ALL)一起使用时,不会消除重复的线。

  注意:使用运算符的几个查询结果行必须一致。

  12.描述:使用外部连接。

  a、左外部连接:

  左外连接(left join):结果集包括连接表的匹配行和左连接表的所有行。

  SQL:从a.a=b.c上的左外联接b中选择a.a,a.b,a.c,b.c,b.d,b.f

  b:右外部连接:

  右连接(Right join):结果集包括连接表的匹配连接行和右连接表的所有行。

  c:完全外部连接:

  完全外部连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

  其次,我们来看看一些好的sql语句。

  1.描述:复制表(仅复制结构,源表名称:新表名称:b)(可访问)

  方法1: select * into b from a where 1 1

  方法2:从a中选择top 0 *进入b

  2.描述:复制表(复制数据,源表名:A目标表名:b)(有访问权限)

  插入b(a,b,c)从b中选择d,e,f;

  3.描述:跨数据库表复制(绝对路径用于特定数据)(访问可用)

  Into b (a,b,c) select d,e,f from b in concrete database where条件

  示例:从“”server.mappath(“.”中的b)/data.mdb 其中.

  4.描述:子查询(表名1: A和表名2: B)

  Select a,b,c from a where a IN(select d from b)or:select a,b,c from a where a IN (1,2,3)

  5.描述:显示文章,作者和最后回复时间。

  select a . title a . username b . add date from table a,(select max(add date)add date from table where table . title=a . title)b

  6.描述:外部连接查询(表名1: a表名2: b)

  从a.a=b.c .上的左出联接b中选择a.a,a.b,a.c,b.c,b.d,b.f

  7.描述:在线查看查询(表名1: A)

  select * from(从a中选择a、b、c)T其中t.a

  8.描述:between的用法。当between限制查询数据的范围时,它包括边界值,而between不包括边界值。

  select * from table1,其中时间介于时间1和时间2之间

  从表1中选择b,c,其中a不在值1和值2之间

  9.描述:如何在中使用

  Select * from table1,其中a [not] in(值1 ,值2 ,值4 ,值6 )

  10.描述:两个关联的表,删除主表中不在次表中的信息。

  从不存在的表1中删除(select * from table2,其中table1.field1=table2.field1)

  11.注意:四表关联查询问题:

  select * from a . a=b.b上的左内联接b . b右内联接c on a.a=c.c内联接d on a.a=d.d其中.

  12.注意:日程安排要提前五分钟提醒。

  SQL:select * from schedule where datediff( minute ,f start time,getdate()) 5

  13.描述:一条sql语句可以完成数据库分页。

  select top 10 b . * from(select top 20 primary key field,sort field from table name order by sort field desc)a,table name b其中b primary key field=a . primary key field order by a . sort field

  14.描述:前10条记录

  选择前10个*表单表1,其中范围

  15.描述:选择每组B值相同的数据中A值最大的记录的所有信息(类似用法可用于论坛月度排名、月度热销产品分析、按主题评分排名等。)

  select a,b,c from tablename ta其中a=(select max(a from tablename TB其中tb.b=ta.b)

  16.描述:包括表a中的所有行,但不包括表b和表c中的所有行,并消除所有重复的行以导出结果表。

  (从表a中选择A ) except(从表b中选择a)except(从表c中选择a)

  17.注:随机抽取10个数据。

  select top 10 * from tablename order by newid()

  18.描述:随机选择记录。

  选择newid()

  9.描述:删除重复记录。

  从id不在的表名中删除(select max(id)from tablename group by col 1,col2,)

  20.描述:列出数据库中所有的表名。

  从sysobjects中选择名称,其中type=U

  21.描述:列出表格中的所有项目。

  从syscolumns中选择名称,其中id=object_id(TableName )

  22.描述:列出类型、供应商和pcs字段,并排列在类型字段中。case可以方便地实现多选,类似于select中的case。

  挑选

  type,sum(当‘A’时,案例供应商,然后pcs else 0结束),sum(当

  c 则pcs else 0结束),sum(当 B 则pcs else 0结束时的情况卖方)

  从表名按类型分组

  显示结果:

  供应商电脑类型

  电脑A 1

  电脑A 1

  光盘B 2

  光盘A 2

  手机B 3

  手机C 3

  23.注意:初始化表table1。

  截断表table1

  24.描述:选择10到15条记录。

  select top 5 * from(select top 15 * from table order by id ASC)table _ alias order by id desc

  选择随机数据库记录的方法(使用Randomize函数,由SQL语句实现)

  对于存储在数据库中的数据,随机数特性可以给出上述效果,但是它们可能太慢了。你不能要求ASP“找一个随机数”打印出来。事实上,常见的解决方案是建立如下所示的循环:

  使不规则化

  RNumber=Int(Rnd*499) 1

  而不是objRec。文件结束

  如果objRec(ID)=RNumber,则

  .下面是执行脚本。

  如果…就会结束

  objRec。下一步

  行

  很好理解。首先,从1到500中取出一个随机数(假设数据库中的记录总数为500)。然后,检查每条记录来测试ID

  的值,检查它是否与RNumber匹配。如果满足条件,则执行以THEN关键字开始的代码。如果你的号码

  等于495,则需要很长时间在数据库中循环。虽然500这个数字看起来有点大,但与更稳定的企业解决方案(通常在一个中)相比,它仍然是一个小数据库

  这个数据库里有成千上万条记录。这个时候不就死了吗?

  使用SQL,您可以快速找到准确的记录,并打开只包含该记录的记录集,如下所示:

  使不规则化

  RNumber=Int(Rnd*499) 1

  SQL= SELECT * FROM Customers WHERE ID= r number

  设置objRec=ObjConn。执行(SQL)

  回应。writer number = objRec( ID ) objRec( c _ email )

  不用写RNumber和ID,只需要核对匹配即可。只要对以上代码满意,就可以根据需要操作“随机”记录。记录集不包含任何其他内容,因此您可以快速找到您需要的记录,这大大减少了处理时间。

  关于随机数的再讨论

  既然已经下定决心要把随机函数的最后一滴油榨干,那么可能会一次性拿出多条随机记录,或者想采用某个随机范围内的记录。通过扩展上面的标准随机示例,您可以使用SQL来处理以上两种情况。

  为了取出几个随机选择的记录并将它们存储在同一个记录集中,可以存储三个随机数,然后查询数据库以获取与这些数字匹配的记录:

  SQL=SELECT * FROM客户,其中ID= RNumber 或ID= RNumber2 或ID= RNumber3

  如果您想要选择10条记录(可能是每次页面加载时10个链接的列表),您可以使用BETWEEN或数学等式来选择第一条记录和适当数量的增量记录。这个操作可以通过几种方式完成,但是SELECT语句只显示了一种可能性(这里的ID是自动生成的数字):

  SQL=SELECT * FROM Customers,其中ID介于 RNumber 和 RNumber 9 之间

  注意:上述代码的执行目的不是检查数据库中是否有9条并发记录。

  随机读取几条记录,并对它们进行测试。

  访问语法:SELECT top 10 * From table name ORDER BY Rnd(id)

  服务器:select top n * from table name order by newid()

  Mysqlelect * From表名Order By rand() Limit n

  Access左连接语法(最近开发用左连接,Access没什么帮助,网上没有Access的SQL描述,只好自己测试了。现在记下来,以备将来参考)

  语法elect table1.fd1,table1,fd2,table 2 . fd2 from table 1 left join table 2 on table 1 . fd1,table2.fd1 where.

  使用SQL语句显示.而不是过长的字符串。

  语法:

  SQL数据库:select case when len(field)10 then left(field,10) . else字段以表名中的新闻名称、新闻标识结尾

  访问数据库:选择IIF (len (field) 2,left (field,2) . ,字段)从tablename

  控制室,执行指令

  执行方法

  此方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:

  1.当执行SQL查询语句时,将返回查询获得的记录集。用法是:

  set variable name=connect object . execute( SQL查询语言)

  调用Execute方法后,将自动创建recordset对象,查询结果将存储在recordSet对象中。通过set方法,将记录集赋给指定的对象进行保存,然后object变量将代表记录集对象。

  2.当执行SQL操作语言时,不返回任何记录集。此时的用法是:

  连接对象。执行“SQL操作语句”[,RecordAffected][,Option]

  RecordAffected是可选的,它可以放置一个变量。SQL语句执行后,有效记录的数量将自动保存到变量中。通过访问这个变量,可以知道SQL语句被操作了多少条记录。

  选项是可选的。该参数的值通常是adCMDText,用于告诉ADO Execute方法之后的第一个字符应该被解释为命令文本。通过指定该参数,可以提高执行效率。

  BeginTrans、RollbackTrans、CommitTrans方法

  这三个方法是连接对象为事务处理提供的方法。BeginTrans用于开始某事;RollbackTrans用于回滚事务;CommitTrans用于提交所有交易结果,即确认交易处理。

  事务处理可以把一组操作作为一个整体来对待,只有在所有语句都成功执行后,事务处理才能被认为是成功的;如果其中一个语句执行失败,整个过程将失败,并恢复到以前的状态。

  BeginTrans和CommitTrans用于标记事务的开始和结束,它们之间的语句就是作为事务的语句。交易成功与否可以通过

  连接对象的错误集。如果错误集的成员数不为0,则表示发生了错误,事务失败。错误集合中的每个错误对象表示一个

  错误消息。

  转自:http://blog..net/herian/archive/2007/09/21/1795442.aspx

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: