SQL语法,SQL语句大全,SQL基础_第1页
SQL语法,SQL语句大全,SQL基础_第2页
SQL语法,SQL语句大全,SQL基础_第3页
SQL语法,SQL语句大全,SQL基础_第4页
SQL语法,SQL语句大全,SQL基础_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、sql语法参考手册(sql)/数据类型2006-07-24 07:42sql语法参考手册(sql)db2提供了关连式资料库的杏询语言sql (structured query language),是-种非常口语化、既易学乂易 懂的语法。此一语言几乎是每个资料库系统都必须捉供的,用以表示关连式的作,包含了资料的定义(ddl) 以及资料的处理(dml)。sql原來拼成sequel,这语言的原型以“系统r “的名字在ibm圣荷西实验室完成, 经过ibm内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统r的技术基础发展出 来ibm的产品。而且美国国家标准学会(ansi)及国际标准化组织

2、(iso)在1987遵循一个儿乎是以ibm sql为 基础的标准关连式资料语言定义。、资料定义 ddl (data definition language)资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要ifii对的,举凡资料分哪 些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好 的。1、建表格:create table table_name(columnl datatype not null not null primary key, column2 datatype not null,.)说明:datatype

3、 是资料的格式,详见表。nut null可不可以允许资料有空的(尚未有资料填入)。primary key -是本表的主键。2、更改表格alter table add column datatype说明:增加一个栏位(没有删除某个栏位的语法。alter table add primary key ()说明:更改表得的定义把某个栏位设为主键。alter table drop primary key (column_name)说明:把主键的定义删除。3、建立索引create index inde

4、x_name on table_name (column_name)说明:对某个表格的栏位建立索引以增加杳询时的速度。4、删除drop table_namedrop index_name二、的资料形态datatypessmall int 16位元的整数。interger32位元的整数。decimal(p,s)p精确值和s大小的i进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,贝u系统会设为p=5;s=0ofloat32位元的实数。double64位元的实数。char(n)n长度的字串,n不能超过254。varchar( n)长度不固定h其最大

5、长度为n的字串,n不能超过4000。graphic( n)和char(n)样,不过其单位是两个字元double-bytes, n不能超过127。这个形态是为 了支援两个字元长度的字体,例如中文字。vargraphic( n)可变长度冃其最大长度为n的双字元字串,n不能超过2000odate包含了年份、月份、日期。time包含了小时、分钟、秒。timestamp包含了年、刀、h、时、分、秒、千分z秒。三、资料*作 d m l (data manipulation language)资料定义好z後接下来的就是资料的*作。资料的法作不外乎增加资料(insert)、查询资料(query)、更改资料(u

6、pdate).删除资料(delete)四种模式,以下分别介绍他们的语法:1. 增加资料:insert into table_name (columnl ,column2,.)values ( valuel ,value2,)说明:1 若没有指定column系统则会按表格内的栏位顺序填入资料。2. 栏位的资料形态和所填入的资料必须吻合。3. table_name 也町以是景观 view_name。insert into (colurrml ,column2,.)select columnx,columny, from another_table说明:也可以经过一个子查询(s

7、ubquery)把别的表格的资料填入。2、查询资料:基本查询select columnl ,columns2,.from table_name说明:把的特定栏位资料全部列出來select *from table_namewhere columnl = xxxand column2yyy or column3zzz说明:1严妆示全部的栏位都列出來。2.where z後是接条件式,把符合条件的资料列出来。select columnl ,column2from table_nameorder by column2 desc说明:order by是指定以某个栏位做排序,desc是指

8、从大到小排列,若没有指明,则是从小到大排列组合査询组合查询是指所杳询得资料来源并不只有单一的表格,而是联合一个以上的表格才能够得到结果的。select *from tablel ,table2where tablel .columl =table2.columnl说明:1杏询两个表格中其中columnl值相同的资料。2当然两个表格相互比较的栏位,其资料形态必须相同。3 个复杂的查询其动用到的表格可能会很多个。整合性的査询:select count (*)from table_namewhere column_name = xxx说明:查询符合条件的资料共有儿笔。select sum(colum

9、nl)from table_name说明:1 计算出总和,所选的栏位必须是可数的数字形态。2除此以外还有avg()是计算平均、max()、min()计算最大最小值的整合性查询。select column 1 ,avg(column2)from croup by columnlhaving avc(column2)xxx说明:1 .croup by:以columnl为一组计算column2的平均值必须和avg、sum等整合性查询的关键字-起使用。2.having :必须和group by 一起使用作为整合性的限制。复合性的查询select *from table_namelw

10、here exists (select *from table_name2where conditions )说明:1 .where的conditions可以是另外一个的query。2.exists在此是指存在与否。select *from lwhere columnl in (select columnlfrom table_name2where conditions )1in後面接的是一个集合,表示columnl存在集合里血。2. select出来的资料形态必须符合columnl。其他杏询select *from table_namelwhere columnl lik

11、e'x%'说明:like必须和後面的'x%'相呼应表示以x为开头的字串。select *from table_namelwhere columnl in ('xxx','yyy',.)说明:in後而接的是一个集合,表示columnl存在集合里而。select *from table_namelwhere columnl between xx and yy说明:between表columnl的值介於xx和yyz间。3、更改资料:update tableameset columnl ='xxx'where condit

12、oins1 更改某个栏位设定其值为'xxx'。2.conditions是所要符合的条件、若没有where则整个table的那个栏位都会全部被更改。4、删除资料:delete from where conditions说明:删除符合条件的资料。说明:关于where条件后面如果包含有h期的比鮫,不同数据库有不同的表达式。具体如下:如果是 access 数据库,则为:where mydate) #2000-01-01#(2) 如果是 oracle 数据库,则为:where mydate) castc2000-01-0t as date)或:where mydate

13、) to_datec2000-01 -01 ,yyyy-mm-dd,)在delphi中写成:thedate=,2000-01-01,;queryl .sql.add('select * from abc where mydate) cast(' + ''''+thedate+'''' + ' as date)');如果比较日期时间型,则为:where mydatetime) to_date('2000-01-01 1 0:00:01','yyyy-mm-dd hh24:mi:

14、ss,)recordset对象一些有用的属性”/引用来自增加一个:recordset对彖些有用的属性rs.cursortype= rs.cursorlocati on = rs.locktype = rs.cachesize= rs.pagesize= rs.pagecount= rs.recordco unt=mcursortype valuesconst adopenforwardonly = 0 仅向前const adopenkeyset = 1 键集游标const adopendynamic = 2 动态游标const adopenstatic = 3 静态游标mlocktype va

15、luesconst adlockreadonly = 1 默认值,只读const adlockpessimistic = 2 保守式记录锁定const adlockoptimistic = 3开放式记录锁定,只在调用update方法时锁定记录const adlockbatchoptimistic = 4 开放式批更新mcursorlocation valuesconst aduseserver = 2const adllseclient = 3set rs=server.createobject("adodb.rrecordset")rs.open.sqlst,conn,1

16、,1 '读取rs.open sqlst,conn,l ,2 '新增,修改,或删除)下一页:sql server的数据类型我想分页! -这么长的文章,在这里來个分页多好啊!哈哈sql server的数据类型1 .sql server的数据类型数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的各类和名称都或多或少有些不同。sqlserver提 供了 25种数据类型: binary (n) varbinary (n)char (n) varchar(n) nchar(n) nvarch

17、ar(n) datetimesmalldatetimedecimal(p,s)jnumeric(p,s) float(n) real intsmallinttinyi nt moneysmallm oneybitcursorsys nametimestamp uniqueide ntifiertext imagentext(1)二进制数据类型二进制数据包括 binary、varbinary 和 imagebinary数据类型既可以是固定长度的nary),也对以是变长度的。binary(n)是n位固定的二进制数据。其中,n的取值范围是从1到8000。其存储窖的大小是n + 4个 字节。varbi

18、nary(n)是n位变k度的二进制数据。其中,n的取值范围是从1到8000。其存储窖的大小是n + 4 个字节,不是n个字节。在image数据类型中存储的数据是以位字符串存储的,不是由sql server解释的,必须由应用程序來解 释。例如,应用程序可以使用bmp、tief、gif和jpeg格式把数据存储在image数据类型中。(2) 字符数据类型字符数据的类型包括char, varchar和text字符数据是由任何字母、符号和数字任意组合而成的数据。varchar是变长字符数据,其氏度不超过8kb。char是定氏字符数据,其氏度最多为8kb。超过8kb的 ascii数据可以使用text数据类

19、型存储。例如,因为html文档全部都是ascii字符,并ii在一般情况下长度 超过8kb,所以这些文档可以text数据类型存储在sql server中。(3) unicode数据类型unicode 数据类型包括 nchar,nvarchar 和 ntext在microsoft sql server中,传统的非unicode数据类型允许使用山特定字符集定义的字符。 在sql server安装过程中,允许选择一种字符集。使用unicode数据类型,列中町以存储任何山unicode标 准定义的字符。在unicode标准中,包括了以各种字符集定义的全部字符。使用unicode数据类型,所战胜的 菩是使

20、用非unicode数据类型所占用的窖大小的两倍。在sql server中,unicode数据以nchar、nvarchar和ntext数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用nvarchar字符类型,这时最多可以存储4000个字符。当列的长度固定不变时,应该使用nchar字符类型,同样,这时最多可以存储4000个字符。当使 川ntext数据类型时,该列可以存储多于4000个字符。(4)h期和时间数据类型h期和时间数据类型包括datetime和smalldatetime两种类型h期和时间数据类型rh有效的h期和时间组成。例如,有效的日期和时间数

21、据包括 “4/01/98 12:15:00:00:00 pm”和t:2&29:15:01am 8/17/98”。前一个数据类型是日期在前,时间在后一 个数据类型是霎吋间在前,日期在后。在microsoft sql server中,日期和吋间数据类型包括datetime和smalldatetime两种类型时,所存储的h期范围是从1 753年1月1 h开始,至u 9999年12月31日结束(每-个值要求8个存储字节)。使用smalldatetime数据类型时,所存储的日期范围是1 900 年1月1日开始,到2079年1 2月31日结束(每一个值要求4个存储字节)。日期的格式可以设定。设置日

22、期格式的命令如下:set dateformat format | format _var|其中,format | format_var是日期的顺序。有效的参数包插mdy、dmy、ymd、ydm、myd和dym。在默认情况下,h期格式为mdy。例如,当执行set dateformat ymd之后,日期的格式为年m日形式;当执行set dateformat dmy之后,h期的格式为h月有年形式(5)数字数据类型数字数据只包含数字。数字数据类型包括止数和负数、小数(浮点数)和整数整数由正整数和负整数组成,例如39、25、0-2和33967。在micrsoft sql server中,整数存储的数 据

23、类型是int, smallint和tinyinto int数据类型存储数据的范围大于smallint数据类型存储数据的范围,而smallint据类型存储数据的范围大丁 tinyint数据类型存储数据的范围。使用int数据狗昔存储数据的范围是从-2 147 483 648到2 147 483 647 (每一个值要求4个字节存储空间)。使用smallint数据类型吋,存储 数据的范围从-32 768到32 767 (每一个值要求2个字节存储空间)。使用tinyint数据类型时,存储数据的 范围是从0到255 (每一个值要求1个字节存储空间)。精确小娄数据在sql server中的数据类型是deci

24、mal和numeric。这种数据所占的存储空间根据该数据的位数斤的位数来确定。在sql server中,近似小数数据的数据类型是float和real例如,三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能存储在该列中数据不完全一样。(6)货币数据表示止的或者负的货币数量。在microsoft sql server中,货币数据的数据类型是money和smallmoneymoney数据类型要求8个存储字节,smallmoney数据类型要求4个存储字节。(7)特殊数据类型特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即 timesta

25、mp.bit 和 uniqueidentifierotimestamp用于表示sql server活动的先后顺序,以二进投影的格式表示。timestamp数据与插入数据或者h期和时间没有关系。bit山1或者0组成。当表示真或者假、on或者off时,使用bit数据类型。例如,询问是否是每一次访 问的初机请求町以存储在这种数据类型的列中。uniqueidentifier由16字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,cuid 是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。2 川户定义的数据类型用户定义的数据类型某于在microsoft sql ser

26、ver中提供的数据类型。当儿个表中必须存储同一种数据类 型吋,并且为保证这些列有相同的数据类型、长度和可空性吋,可以使用用八定义的数据类型。例如,可定义一 种称为 postal.code的数据类型,它基于char数据类型。当创建用户定义的数据类型时,必须捉供三个数:数据类型的名称、所基丁的系统数据类型和数据类型的可 空性。(1)创建用户定义的数据类型创建用户定义的数据类型可以使用transact-sql语句。系统存储过程sp.addtype可以來创建用八定义的数据类型。其语法形式如下:sp_addtype type,system_data_bype,null_type,其中,type是用户定义

27、的数据类型的名称。system_data_type是系统提供的数据类型,例如decimak int、 char 等等。n ull.type衣示该数据类型是如何处理空值的,必须使用单引号引起來,例 女null,、'|101_21_1/或者'11021±'。例子:use custexec sp.addtype ssn/varchar(l l)',“not nult创建一个用户定义的数据类型ssn,其基于的系统数据类型是变长为11的字符,不允许空。例子:use custexec sp_addtype birthday,datetime/nuit创建一个川户定

28、义的数据类型birthday,其基于的系统数据类型是datetime,允许空。例子:use masterexec sp_addtype telephone,varchar(24),not nulteexc sp.addtype fax,'varchar(24)','null'创建两个数据类型,即telephone和fax(2)删除用户定义的数据类型当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是sp.droptype 'type'。例子:use masterexec sp_droptype 'ssn'注意:当表

29、中的列还正在使川川户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定 义的数据类型不能删除。以下为sqlserver7.0以上版本的字段类型说明。sqlserver6.5的字段类型说明请参考sql server 提供的说明。字段类型描述bit 0或1的整型数字int 从-2a31 (-2,147,483,648)到 2人31(2,147,483,647)的整型数字smallint 从-2人 1 5(-32,768)到 2人1 5(32,767)的整型数字tinyint从0到255的整型数字decimal从-10人38到10心8-1的定精度与有效位数的数字numeric deci

30、mal fl勺同义i司money 从-2人63(-922,337,203,685,477.5808)到 2a63-1 (922,337,203,685,477.5807)的货币数据,最小货币单位千分smallmoney从-214,748.3648到214,748.3647的货币数据,最小货币单位千分之十float从-1.79e+308到1.79e+308可变精度的数字real从-3.04e+38到3.04e+38可变精度的数字datetime从1753年1月1日到9999年12日31的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒smalldatetime从1 900年1月1日到207

31、9年6月6日的日期和时间数据,最小时间单位为分钟timestamp时间戳,一个数据库宽度的唯一数字uniqueidentifier 全球唯一标识符 cuidchar定长非unicode的字符型数据,最大长度为8000varchar变长非unicode的字符型数据,最大长度为8000text变长非unicode的字符型数据,最大长度为2人31-1(2g)nchar定长unicode的字符型数据,最大长度为8000nvarchar变长unicode的字符型数据,故大长度为8000ntext变长unicode的字符型数据,瑕大长度为2a31-k2c)binary定长二进制数据,最大长度为8000va

32、rbinary变长二迓制数据,最大长度为8000image变长二进制数据,最人长度为2人31-1 (2g)我想分页! -这么长的文章,在这里来个分页多好啊!哈呛sql语句的基本语法-.select语句的完整语法为:selectall|distinct|distinctrow|top*|talbe.*|table.field 1 as aliasl ,table.field2as alias2,.from tableexpression,.in externaldatabasewhere.croup by.having.order by.with owneraccess option说明:用中括

33、号()括起來的部分表示是可选的,川大括号()括起來的部分是表示必须从中选择其中的一个。1 from子句from子句指定了 select语句中字段的来源。from子句后血焰包含一个或多个的表达式(市逗号分开),其中的 表达式可为单一表名称、已保存的杳询或市innerjoin、leftjoin或right join得到的复合结果。如果表 或杏询存储在外部数据库,在in子句之后指明其完整路径。例:下列sql语句返回所有有定单的客户:select orderld,customer.customerldfrom orders customerswhere orders.customerld=custom

34、ers.customeersld2 all、distinct、distinctrow. top 谓词(dall返回满足sql语句条件的所有记录。如果没有指明这个谓词,默认为allo例:select all firstname,lastnamefrom employees(2) distinct如果有多个记录的选择字段的数据相同,只返回一个。distinctrow如果有重复的记录,只返回一个top显示查询头尾若干记录。也可返回记录的tf分比,这是要用top n percent子句(其中n表示冇分比)例:返回5%定货额最人的定单select top 5 percent*from order det

35、ailsorder by unitprice*quantity*(l -discount) desc3用as子句为字段取别名如果想为返回的列収一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希瑕把它放到一个新的列里显示,则用as保留。例:返回firstname字段取别名为nicknameselect firstname as nickname ,lastname ,cityfrom employees例:返回新的一列显示库存价值select productname ,unitprice ,unitslnstock ,unitprice*unitsinstock as valu

36、elnstockfrom products一 .where子句指定杳询条件1比较运算符比较运算符含义=等于大于小于=人于等于<=小于等于不等于!)不大于!不小于例:返回96年1月的定单select orderld, customerld, orderdatefrom orderswhere orderdate) #1/1/96# and orderdate#1/30/96#注意:mcirosoftjet sql中,日期用'#'定界。日期也口j以用datevalue()函数來代替。在比较字符型的数据时,要加 上单引号'',尾空格在比较中被忽略c例:where

37、 orderdate) #96-1 -1 #也"j以表示为:where orderdate) datevalue(*l /i /96')使用not表达式求反。例:查看96年1月1 h以后的定单where not orderdate=#1/1/96#2 范围(betw旺n 和 not between)between .and.运算符指定了要搜索的一个闭区间。例:返回96年1刀到96年2刀的定单。where orderdate between #1 /i /96# and #2/1 /96#3 列表(in , not in)in运算符用來匹配列表中的任何一个值。in子句可以代替用

38、or子句连接的一连串的条件。例:要找出住在london、paris或berlin的所有客户select customerld, companyname, contactname, cityfrom customerswhere city "('london',' paris',' berlin1)4模式匹配(like)like运算符检验-个包含字符串数据的字段值是否匹配一指定模式。like运算符甲使川的通配符通配符含义?任何一个单一的字符*任意长度的字符#09z间的单一数字字符列表在字符列表里的任一值!字符列表不在字符列表里的任一值-指定字符范

39、围,两边的值分别为其上下限例:返回邮政编码在(1 71 ) 555-0000到(1 71 ) 555-9999之间的客户select customerld .companyname,city,phonefrom customerswhere phone like '(1 71)555-#'like运算符的一些样式及含义样式含义不符合like 阳 a后跟任意长度的字符bc,c255like'5'5*5 555like'5?5' 5与5之间有任意一个字符55,5wer5like'5#5' 5235, 5005 5kd5,5346lik

40、e'a-z' a-z间的任意一个字符5,%like'!0-9'非0-9间的任意一个字符0,1like,j, 1,*三用order by子句排序结果order子句按一个或多个(最多16个)字段排序查询结果,可以是升序(asc)也可以是降序(desc),缺省是升序。order子句通常放在sql语句的最后。order子句中定义了多个字段,则按照字段的先后顺序排序。select product name, unitprice, unitl nstockfrom productsorder by unitlnstock desc , unitprice desc, pro

41、ductnameorder by子句中可以用字段在选择列表中的位置号代替字段名,可以混合字段名和位置号。例:下血的语句产生与上列相同的效果。select productname,unitprice, unitlnstockfrom productsorder by 1 desc , 2 desc,3四运用连接关系实现多表查询例:找出同一个城i卩中供应商和客八的名字select customers.companyname, suppliers.company.namefrom customers, supplierswhere customers.city=suppliers.city例:找出产

42、品库存量大于同一种产品的定单的数量的产品和定单select product name,orderld, unitlnstock, quantityfrom products, order deailswhere pductld=order details.productidand unitsinstock) quantity另一种方法是用microsofjet sql独有的jnnerjoin语法:from table 1 inner join table2on table 1 .field 1 comparision table2.field2其中comparision就是

43、前而where子句用到的比较运算符。select firstname,lastname,orderld,customerld,orderdatefrom employeesinner join orders on employees.employeeld=orders.employeeld注意:inner join 不能连接 memo ole object single double 数据类型字段。在一个join语句中连接多个on子句语法:select fieldsfrom tablel inner join table2on tablel .fieldl compopr table2.fie

44、ldl andon tablel .field2 compopr table2.field2 oron tablel .field? compopr table2.field3也可以select fieldsfrom tablel inner join(table2 inner join (table3inner joer (tablexinner joinon tablel .fieldl compopr table2.fieldlon tablel .field2 compopr table2.field2on tablel .fields compopr table2.field3外部连

45、接返冋更多记录,在结果中保留不匹配的记录,不管存不存在满足条件的记录都要返冋另一侧的所有记录。from table left| richtdoin table2on tablel .fieldl comparision table.field2用左连接来建立外部连接,在表达式的左边的表会显示其所有的数据例:不管有没有定货量,返回所有商品select productname ,orderldfrom productsleft join orders on products.prductsld=orders.productld右连接与左连接的差别在于:不管左侧表里有没有匹配的记录,它都从左侧表中返

46、冋所有记录。例:如果想了解客户的信息,并统计各个地区的客户分布,这时可以用一个右连接,即使某个地区没有客户,也 要返回客户信息。空值不会相互匹配,对以通过外连接才能测试被连接的某个表的字段是否有空值。select *from talbelleft join table2 on tablel .a=table2.c1连接查询中使用lif函数实现以0值显示空值lif 表达式:lif(lsnull(amount,0,amout)例:无论定货大于或小于¥50,都要返冋一个标志。lif(amount> 50,?big order?,?small order?)五.分组和总结查询结果在sq

47、l的语法里,group by和having子句用来对数据进行汇总。croup by子句指明了按照哪几个字段来分组,而将记录分组后,用having子句过滤这些记录。croup by子句的语法select fidldlistfrom tablewhere criteria croup by groupfieldlist having groupcriteria注:microsoft jet数据库jet不能对备注或ole对彖字段分组。croup by字段屮的null值以备分组但是不能被省略。在任何sql合计函数中不计算null值。group by子句后最多可以带有十个字段,排序优先级按从左到右的顺序

48、排列。例:在'wa'地区的雇员表中按头衔分组后,找出具有同等头衔的雇员数h大于1人的所有头衔。select title ,count(title) as totalfrom employeeswhere region = 'wa'croup by titlehaving count(title) 1jet sql中的聚积函数聚集函数意义sum ()求和avc ()平均值count ()表达式中记录的数目count c)计算记录的数目max最大值min最小值var方差stdev标准误差first第一个值last最后一个值六川parameters声明创建参数查询pa

49、rameters声明的语法:parameters name datatype!,name datatype!, .其中name是参数的标志符j以通过标志符引用参数.datatype说明参数的数据类型.使用时要把parameters声明置于任何其他语句z前.例:parameterslow price currency,beginning datedatatimeselect orderld ,orderamountfrom orderswhere orderamountlow priceand orderdate) =beginning date七功能查询所谓功能杳询,实际上是一种操作查询,它可

50、以对数据库进行快速高效的操作它以选择查询为li的,挑选出符合条 件的数据,再対数据进行批处理功能杳询包括更新查询,删除杏询,添加查询,和生成表查询.1更新杏询update子句可以同时更改一个或多个表中的数据它也可以同时更改多个字段的值.更新查询语法:update表名set新值where准则例:英国客户的定货量增加5%,货运量增加3%update oedersset orderamount = orderamount *1.1freight = freight*! .03where shipcountry = 'uk'2删除杳询delete子句可以使用户删除大量的过时的或冗于的数

51、据. 注:删除查询的对象是整个记录.delete子句的语法:delete 表名*from来源表where准则例:耍删除所有94年前的定单delete *from orderswhere orderdata (#94-1 -1 #3追加查询insert子句可以将一个或一组记录追加到一个或多个表的尾部.into子句指定接受新记录的表values关键字指定新记录所包含的数据值.insert子句的语法:insetr into目的表或查询(字段1,字段2,.)values(数值 1,数值 2,.)例:增加一个客户insert into employees(firstname,lastname,title

52、)valuesc harry','washington','trainee')4生成衣查询可以一次性地把所有满足条件的记录拷贝到一张新表中通常制作记录的备份或副本或作为报表的基础.select into子句用来创建生成表查询语法:select字段1,字段2,into新表in外部数据库from来源数据库where准则例:为定单制作一个存档备份select *into ordersarchivefrom orders八.联合查询union运算可以把多个查询的结果合并到一个结果集里显示.union运算的一般语法:表查询 1 union all查询 2 unio

53、n .例:返冋巴西所有供给商和客户的名字和城市select companyname,cityfrom supplierswhere country = 'brazil'unionselect companyname,cityfrom customerswhere country = 'brazil'注:缺省的情况k,union子句不返冋重复的记录如果想显示所有记录,町以加all选项union运算要求查询具有相同数h的字段但是,字段数据类型不必相同.每一个查询参数中可以使用croup by子句或having子句进行分组.要想以指定的顺序来显示返冋的数据,可 以在最

54、后一个杳询的尾部使用oreer by子句.九.交叉查询交叉查询可以对数据进行总和,平均,计数或其他总和计算法的计算,这些数据通过两种信息进行分组:一个显示在 表的左部,另一个显示在表的顶部.microsoft jet sql用transfrom语句创建交叉表查询语法:transform aggfunctionselect语句croup by 子句pivot pivotfieldin(valuel ,value2,.)aggfounction 指 sql 聚积函数,select语句选择作为标题的的字段,croup by 分组说明:pivotfield在查询结杲集中创建列标题吋用的字段或表达式,用

55、可选的in子句限制它的取值. value代表创建列标题的固定值.例:显示在1 996年里每一季度每一位员工所接的定单的数目:transform count(orderld)select firstname&'&lastname as fullnamefrom employees inner join orderson employees.employee id = orders.employeeldwhere datepartcyyyyn,0rderdate) = t996'croup by firstname&''&lastna

56、meorder by firstname&''&lastnamepovot datepartcqorderdate)&季度'十.子查询子查询iij以理解为 套查询子查询是一个select语句.1表达式的值与子查询返冋的单-值做比较语法:表达式 comparision any|all|some( 了查询)说明:any和some谓词是同义词,与比较运算符(=,,=,=)一起使用返回一个布尔值true或false.any 的意思是,表达式与子查询返冋的一系列的值逐一比较,只要其中的一次比较产生true结果,any测试的返 回true值(既where子句的结杲),对应丁该表达式的当前记录将进入主查询的结果中.all测试则要求表达式与 子查询返回的一系列的值的比较都产生true结果,才回返回true值.例:主查询返冋单价

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论