SQL 语句参考手册


《SQL 语法参考手册(SQL)》 DB2 提供了关连式资料库的查询语言 SQ L (Structured Query Language),是一种非常口语化、既易学又易懂的语 法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的*作, 包含了资料的定义(DDL)以及资料的处理(DML)。SQL 原来拼成 SEQUEL,这语言的原型以“系统 R“的名字在 IBM 圣荷西实验室完成,经 过 IBM 内部及其他的许多使用性及效率测试,其结果相当令人满意,并决 定在系统 R 的技术基础发展出来 IBM 的产品。而且美国国家标准学会 (ANSI)及 国际标准化组织(ISO)在 1987 遵循一个几乎是以 IBM SQL 为 基础的标准关连式资料语言定义。 一、资料定义 DDL(Data Definition Language) 资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建 立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位 主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规 划好的。 1、建表格: Create TABLE table_name( column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], column2 DATATYPE [NOT NULL], ...) 说明: DATATYPE --是资料的格式,详见表。 NUT NULL --可不可以允许资料有空的(尚未有资料填入)。 PRIMARY KEY --是本表的主键。 2、更改表格 Alter TABLE table_name ADD COLUMN column_name DATATYPE 说明:增加一个栏位(没有删除某个栏位的语法。 Alter TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 Alter TABLE table_name Drop PRIMARY KEY (column_name) 说明:把主键的定义删除。 3、建立索引 Create INDEX index_name ON table_name (column_name) 说明:对某个表格的栏位建立索引以增加查询时的速度。 4、删除 Drop table_name Drop index_name 二、的资料形态 DATATYPEs smallint 16 位元的整数。 interger 32 位元的整数。 decimal(p,s) p 精确值和 s 大小的十进位整数,精确值 p 是指全部有几个数(digits)大小 值,s 是指小数 点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。 float 32 位元的实数。 double 64 位元的实数。 char(n) n 长度的字串,n 不能超过 254。 varchar(n) 长度不固定且其最大长度为 n 的字串,n 不能超过 4000。 graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n 不能超过 127。 这个形态是为 了支援两个字元长度的字体,例如中文字。 vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n 不能超过 2000。 date 包含了 年份、月份、日期。 time 包含了 小时、分钟、秒。 timestamp 包含了 年、月、日、时、分、秒、千分之一秒。 三、资料*作 DML (Data Manipulation Language) 资料定义好之後接下来的就是资料的*作。资料的*作不外乎增加资料 (insert)、查询资料(query)、更改资料(update) 、删除资料(delete) 四种模式,以下分 别介绍他们的语法: 1、增加资料: Insert INTO table_name (column1,column2,...) valueS ( value1,value2, ...) 说明: 1.若没有指定 column 系统则会按表格内的栏位顺序填入资料。 2.栏位的资料形态和所填入的资料必须吻合。 3.table_name 也可以是景观 view_name。 Insert INTO table_name (column1,column2,...) Select columnx,columny,... FROM another_table 说明:也可以经过一个子查询(subquery)把别的表格的资料填入。 2、查询资料: 基本查询 Select column1,columns2,... FROM table_name 说明:把 table_name 的特定栏位资料全部列出来 Select * FROM table_name Where column1 = xxx [AND column2 〉 yyy] [OR column3 〈〉 zzz] 说明: 1.’*’表示全部的栏位都列出来。 2.Where 之後是接条件式,把符合条件的资料列出来。 Select column1,column2 FROM table_name orDER BY column2 [DESC] 说明:ORDER BY 是指定以某个栏位做排序,[DESC]是指从大到小排列, 若没有指明,则是从小到大 排列 组合查询 组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上 的 表格才能够得到结果的。 Select * FROM table1,table2 Where table1.colum1=table2.column1 说明: 1.查询两个表格中其中 column1 值相同的资料。 2.当然两个表格相互比较的栏位,其资料形态必须相同。 3.一个复杂的查询其动用到的表格可能会很多个。 整合性的查询: Select COUNT (*) FROM table_name Where column_name = xxx 说明: 查询符合条件的资料共有几笔。 Select SUM(column1) FROM table_name 说明: 1.计算出总和,所选的栏位必须是可数的数字形态。 2.除此以外还有 AVG() 是计算平均、MAX()、MIN()计算最大最小值的整合 性查询。 Select column1,AVG(column2) FROM table_name GROUP BY column1 HAVING AVG(column2) 〉 xxx 说明: 1.GROUP BY: 以 column1 为一组计算 column2 的平均值必须和 AVG、 SUM 等整合性查询的关键字 一起使用。 2.HAVING : 必须和 GROUP BY 一起使用作为整合性的限制。 复合性的查询 Select * FROM table_name1 Where EXISTS ( Select * FROM table_name2 Where conditions ) 说明: 1.Where 的 conditions 可以是另外一个的 query。 2.EXISTS 在此是指存在与否。 Select * FROM table_name1 Where column1 IN ( Select column1 FROM table_name2 Where conditions ) 说明: 1. IN 後面接的是一个集合,表示 column1 存在集合里面。 2. Select 出来的资料形态必须符合 column1。 其他查询 Select * FROM table_name1 Where column1 LIKE ’x%’ 说明:LIKE 必须和後面的’x%’ 相呼应表示以 x 为开头的字串。 Select * FROM table_name1 Where column1 IN (’xxx’,’yyy’,..) 说明:IN 後面接的是一个集合,表示 column1 存在集合里面。 Select * FROM table_name1 Where column1 BETWEEN xx AND yy 说明:BETWEEN 表示 column1 的值介於 xx 和 yy 之间。 3、更改资料: Update table_name SET column1=’xxx’ Where conditoins 说明: 1.更改某个栏位设定其值为’xxx’。 2.conditions 是所要符合的条件、若没有 Where 则整个 table 的那个栏位都 会全部被更改。 4、删除资料: Delete FROM table_name Where conditions 说明:删除符合条件的资料。 说明:关于 Where 条件后面如果包含有日期的比较,不同数据库有不同的 表达式。具体如下: (1)如果是 ACCESS 数据库,则为:Where mydate〉#2000-01-01# (2)如果是 ORACLE 数据库,则为:Where mydate〉 cast(’2000-01-01’ as date) 或:Where mydate〉to_date(’2000-01-01’,’yyyy-mm-dd’) 在Delphi 中写成: thedate=’2000-01-01’; query1.SQL.add(’select * from abc where mydate〉 cast(’+’’’’+thedate+’’’’+’ as date)’); 如果比较日期时间型,则为: Where mydatetime〉 to_date(’2000-01-01 10:00:01’,’yyyy-mm-dd hh24:mi:ss’) Recordset 对象一些有用的属性"/〉 引用来自 增加一个 :Recordset 对象 一些有用的属性 rs.CursorType= rs.CursorLocation= rs.LockType = rs.CacheSize= rs.Pagesize= rs.Pagecount= rs.RecordCount= ’’---- CursorType Values ---- Const adOpenForwardOnly = 0 仅向前 Const adOpenKeyset = 1 键集游标 Const adOpenDynamic = 2 动态游标 Const adOpenStatic = 3 静态游标 ’’---- LockType Values ---- Const adLockReadOnly = 1 默认值,只读 Const adLockPessimistic = 2 保守式记录锁定 Const adLockOptimistic = 3 开放式记录锁定,只在调用 Update 方法时锁 定记录 Const adLockBatchOptimistic = 4 开放式批更新 ’’---- CursorLocation Values ---- Const adUseServer = 2 Const adUseClient = 3 Set rs=Server.CreateObject("ADODB.Rrecordset") rs.Open.sqlst,conn,1,1 ’读取 rs.Open sqlst,conn,1,2 ’新增,修改,或删除) 下一页 :《SQL SERVER 的数据类型》 〉〉〉---------我想分页!--这么长的文章,在这里来个分页多好啊!哈哈---------- 〈〈〈 《SQL SERVER 的数据类型》 1.SQL SERVER 的数据类型 数据类弄是数据的一种属性,表示数据所表示信息的类型。任何一种 计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同 的特点,所定义的数据类型的各类和名称都或多或少有些不同。 SQLServer 提供了 25 种数据类型: ·Binary [(n)] ·Varbinary [(n)] ·Char [(n)] ·Varchar[(n)] ·Nchar[(n)] ·Nvarchar[(n)] ·Datetime ·Smalldatetime ·Decimal[(p[,s])] ·Numeric[(p[,s])] ·Float[(n)] ·Real ·Int ·Smallint ·Tinyint ·Money ·Smallmoney ·Bit ·Cursor ·Sysname ·Timestamp ·Uniqueidentifier ·Text ·Image ·Ntext (1)二进制数据类型 二进制数据包括 Binary、Varbinary 和 Image Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。 Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是 从 1 到 8000。其存储窨的大小是 n + 4 个字节。 Varbinary[(n)] 是 n 位变长度的二进制数据。其中,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 数据类型存储。 例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超 过 8KB,所以这些文档可以 Text 数据类型存储在 SQL Server 中。 (3)Unicode 数据类型 Unicode 数据类型包括 Nchar,Nvarchar 和 Ntext 在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由 特定字符集定义的字符。在 SQL Server 安装过程中,允许选择一种字符集。 使用 Unicode 数据类型,列中可以存储任何由 Unicode 标准定义的字符。 在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用 Unicode 数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两 倍。 在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据 类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当 列的长度变化时,应该使用 Nvarchar 字符类型,这 时 最 多 可 以 存储 4000 个 字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最 多可以存储 4000 个字符。当使用 Ntext 数据类型时,该列可以存储多 于 4000 个字符。 (4)日期和时间数据类型 日期和时间数据类型包括 Datetime 和 Smalldatetime 两种类型 日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和 时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。 前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期 在后。在 Microsoft SQL Server 中,日期和时间数据类型包括 Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是 从 1753 年 1 月 1 日开始,到 9999 年 12 月 31 日结束(每一个值要求 8 个 存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900 年 1 月 1 日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字 节)。 日期的格式可以设定。设置日期格式的命令如下: Set DateFormat {format | @format _var| 其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、 DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为 MDY。 例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形 式;当执行 Set DateFormat DMY 之后,日期的格式为日 月有年 形式 (5)数字数据类型 数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数) 和整数 整数由正整数和负整数组成,例如 39、25、0-2 和 33967。 在 Micrsoft SQL Server 中,整数存储的数据类型是 Int,Smallint 和 Tinyint。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 中的数据类型是 Decimal 和 Numeric。 这种数据所占的存储空间根据该数据的位数后的位数来确定。 在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如, 三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。 因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。 (6)货币数据表示正的或者负的货币数量 。 在 Microsoft SQL Server 中,货币数据的数据类型是 Money 和 Smallmoney Money 数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个 存储字节。 (7)特殊数据类型 特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有 3 种, 即 Timestamp、Bit 和 Uniqueidentifier。 Timestamp 用于表示 SQL Server 活动的先后顺序,以二进投影的格 式表示。Timestamp 数据与插入数据或者日期和时间没有关系。 Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数 据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据 类型的列中。 Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一 的。当表的记录行要求唯一时,GUID 是非常有用。例如,在客户标识号列 使用这种数据类型可以区别不同的客户。 2.用户定义的数据类型 用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类 型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的 数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定 义一种称为 postal_code 的数据类型,它基于 Char 数据类型。 当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、 所基于的系统数据类型和数据类型的可空性。 (1)创建用户定义的数据类型 创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过 程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下: sp_addtype {type},[,system_data_bype][,’null_type’] 其中,type 是用户定义的数据类型的名称。system_data_type 是系统 提供的数据类型,例如 Decimal、Int、Char 等等。 null_type 表示该 数据类型是如何处理空值的,必须使用单引号引起来,例 如’NULL’、’NOT NULL’或者’NONULL’。 例子: Use cust Exec sp_addtype ssn,’Varchar(11)’,"Not Null’ 创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为 11 的字符,不允许空。 例子: Use cust Exec sp_addtype birthday,datetime,’Null’ 创建一个用户定义的数据类型 birthday,其基于的系统数据类型 是 DateTime,允许空。 例子: Use master Exec sp_addtype telephone,’varchar(24),’Not Null’ Eexc sp_addtype fax,’varchar(24)’,’Null’ 创建两个数据类型,即 telephone 和 fax (2)删除用户定义的数据类型 当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型 的命令是 sp_droptype {’type’}。 例子: Use master Exec sp_droptype ’ssn’ 注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面 还绑定有默认或者规则时,这种用户定义的数据类型不能删除。 以下为 SQL SERVER7.0 以上版本的字段类型说明。SQL SERVER6.5 的字段类型说明请参考 SQL SERVER 提供的说明。 字段类型 描述 bit 0 或 1 的整型数字 int 从-2^31(-2,147,483,648)到 2^31(2,147,483,647)的整型数字 smallint 从-2^15(-32,768)到 2^15(32,767)的整型数字 tinyint 从 0 到 255 的整型数字 decimal 从-10^38 到 10^38-1 的定精度与有效位数的数字 numeric decimal 的同义词 money 从-2^63(-922,337,203,685,477.5808)到 2^63-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 从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据, 最小时间单位为分钟 timestamp 时间戳,一个数据库宽度的唯一数字 uniqueidentifier 全球唯一标识符 GUID char 定长非 Unicode 的字符型数据,最大长度为 8000 varchar 变长非 Unicode 的字符型数据,最大长度为 8000 text 变长非 Unicode 的字符型数据,最大长度为 2^31-1(2G) nchar 定长 Unicode 的字符型数据,最大长度为 8000 nvarchar 变长 Unicode 的字符型数据,最大长度为 8000 ntext 变长 Unicode 的字符型数据,最大长度为 2^31-1(2G) binary 定长二进制数据,最大长度为 8000 varbinary 变长二进制数据,最大长度为 8000 image 变长二进制数据,最大长度为 2^31-1(2G) 〉〉〉---------我想分页!--这么长的文章,在这里来个分页多好啊!哈哈---------- 〈〈〈 《SQL 语句的基本语法》 一.Select 语句的完整语法为: Select[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]} FROM tableexpression[,…][IN externaldatabase] [Where…] [GROUP BY…] [HAVING…] [ORDER BY…] [WITH OWNERACCESS OPTION] 说明: 用中括号([])括起来的部分表示是可选的,用 大 括号({})括起来的部分是表示 必须从中选择其中的一个。 1 FROM 子句 FROM 子句指定了 Select 语句中字段的来源。FROM 子句后面是包含一个 或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查 询或由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的复合结果。如果 表或查询存储在外部数据库,在 IN 子句之后指明其完整路径。 例:下列 SQL 语句返回所有有定单的客户: Select orderID,Customer.customerID FROM orders Customers Where orders.CustomerID=Customers.CustomeersID 2 ALL、DISTINCT、DISTINCTROW、TOP 谓词 (1) ALL 返回满足 SQL 语句条件的所有记录。如果没有指明这个谓词,默 认为 ALL。 例:Select ALL FirstName,LastName FROM Employees (2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。 (3) DISTINCTROW 如果有重复的记录,只返回一个 (4) TOP 显示查询头尾若干记录。也可返回记录的百分比,这是要 用 TOP N PERCENT 子句(其中 N 表示百分比) 例:返回 5%定货额最大的定单 Select TOP 5 PERCENT* FROM [ order Details] orDER BY UnitPrice*Quantity*(1-Discount) DESC 3 用 AS 子句为字段取别名 如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后, 产生了一个新的值,希望把它放到一个新的列里显示,则用 AS 保留。 例:返回 FirstName 字段取别名为 NickName Select FirstName AS NickName ,LastName ,City FROM Employees 例:返回新的一列显示库存价值 Select ProductName ,UnitPrice ,UnitsInStock ,UnitPrice*UnitsInStock AS valueInStock FROM Products 二 .Where 子句指定查询条件 1 比较运算符 比较运算符 含义 = 等于 〉 大于 〈 小于 〉= 大于等于 〈= 小于等于 〈〉 不等于 !〉 不大于 !〈 不小于 例:返回 96 年 1 月的定单 Select orderID, CustomerID, orderDate FROM orders Where orderDate〉#1/1/96# AND orderDate〈#1/30/96# 注意: Mcirosoft JET SQL 中,日期用'#’定界。日期也可以用 Datevalue()函数来 代替。在比较字符型的数据时,要加上单引号’’,尾空格在比较中被忽略。 例: Where orderDate〉#96-1-1# 也可以表示为: Where orderDate〉Datevalue('1/1/96’) 使用 NOT 表达式求反。 例:查看96 年 1 月 1 日以后的定单 Where Not orderDate〈=#1/1/96# 2 范围(BETWEEN 和 NOT BETWEEN) BETWEEN …AND…运算符指定了要搜索的一个闭区间。 例:返回 96 年 1 月到 96 年 2 月的定单。 Where orderDate Between #1/1/96# And #2/1/96# 3 列表(IN ,NOT IN) IN 运算符用来匹配列表中的任何一个值。IN 子句可以代替用 OR 子句连接 的一连串的条件。 例:要找出住在 London、Paris 或 Berlin 的所有客户 Select CustomerID, CompanyName, ContactName, City FROM Customers Where City In('London’,’ Paris’,’ Berlin’) 4 模式匹配(LIKE) LIKE 运算符检验一个包含字符串数据的字段值是否匹配一指定模式。 LIKE 运算符里使用的通配符 通配符 含义 ? 任何一个单一的字符 * 任意长度的字符 # 0~9 之间的单一数字 [字符列表] 在字符列表里的任一值 [!字符列表] 不在字符列表里的任一值 - 指定字符范围,两边的值分别为其上下限 例:返回邮政编码在(171)555-0000 到(171)555-9999 之间的客户 Select CustomerID ,CompanyName,City,Phone FROM Customers Where Phone Like '(171)555-####’ LIKE 运算符的一些样式及含义 样式 含义 不符合 LIKE 'A*’ A 后跟任意长度的字符 Bc,c255 LIKE’5 ’ 5*5 555 LIKE’5?5’ 5 与 5 之间有任意一个字符 55,5wer5 LIKE’5##5’ 5235,5005 5kd5,5346 LIKE’[a-z]’ a-z 间的任意一个字符 5,% LIKE’[!0-9]’ 非 0-9 间的任意一个字符 0,1 LIKE’[[]’ 1,* 三 .用 ORDER BY 子句排序结果 orDER 子句按一个或多个(最多 16 个)字段排序查询结果,可以是升序 (ASC)也可以是降序(DESC),缺省是升序。ORDER 子句通常放在 SQL 语句的最后。 orDER 子句中定义了多个字段,则按照字段的先后顺序排序。 例: Select ProductName,UnitPrice, UnitInStock FROM Products orDER BY UnitInStock DESC , UnitPrice DESC, ProductName orDER BY 子句中可以用字段在选择列表中的位置号代替字段名,可以混合 字段名和位置号。 例:下面的语句产生与上列相同的效果。 Select ProductName,UnitPrice, UnitInStock FROM Products orDER BY 1 DESC , 2 DESC,3 四 .运用连接关系实现多表查询 例:找出同一个城市中供应商和客户的名字 Select Customers.CompanyName, Suppliers.ComPany.Name FROM Customers, Suppliers Where Customers.City=Suppliers.City 例:找出产品库存量大于同一种产品的定单的数量的产品和定单 Select ProductName,OrderID, UnitInStock, Quantity FROM Products, [Order Deails] Where Product.productID=[Order Details].ProductID AND UnitsInStock〉Quantity 另一种方法是用 Microsof JET SQL 独有的 JNNER JOIN 语法: FROM table1 INNER JOIN table2 ON table1.field1 comparision table2.field2 其中comparision 就是前面 Where 子句用到的比较运算符。 Select FirstName,lastName,OrderID,CustomerID,OrderDate FROM Employees INNER JOIN orders ON Employees.EmployeeID=Orders.EmployeeID 注意: INNER JOIN 不能连接 Memo OLE Object Single Double 数据类型字段。 在一个 JOIN 语句中连接多个 ON 子句 语法: Select fields FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field1 AND ON table1.field2 compopr table2.field2 or ON table1.field3 compopr table2.field3 也可以 Select fields FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOER] [( ]tablex[INNER JOIN] ON table1.field1 compopr table2.field1 ON table1.field2 compopr table2.field2 ON table1.field3 compopr table2.field3 外部连接返回更多记录,在结果中保留不匹配的记录,不管存不存在满足 条件的记录都要返回另一侧的所有记录。 FROM table [LEFT|RIGHT]JOIN table2 ON table1.field1comparision table.field2 用左连接来建立外部连接,在表达式的左边的表会显示其所有的数据 例:不管有没有定货量,返回所有商品 Select ProductName ,OrderID FROM Products LEFT JOIN orders ON Products.PrductsID=Orders.ProductID 右连接与左连接的差别在于:不管左侧表里有没有匹配的记录,它都从左 侧表中返回所有记录。 例:如果想了解客户的信息,并统计各个地区的客户分布,这时可以用一 个右连接,即使某个地区没有客户,也要返回客户信息。 空值不会相互匹配,可以通过外连接才能测试被连接的某个表的字段是否 有空值。 Select * FROM talbe1 LEFT JOIN table2 ON table1.a=table2.c 1 连接查询中使用 Iif 函数实现以 0 值显示空值 Iif 表达式: Iif(IsNull(Amount,0,Amout) 例:无论定货大于或小于¥50,都要返回一个标志。 Iif([Amount]〉50,?Big order?,?Small order?) 五. 分组和总结查询结果 在SQL 的语法里,GROUP BY 和 HAVING 子句用来对数据进行汇总。 GROUP BY 子句指明了按照哪几个字段来分组,而将记录分组后,用 HAVING 子句过滤这些记录。 GROUP BY 子句的语法 Select fidldlist FROM table Where criteria [GROUP BY groupfieldlist [HAVING groupcriteria]] 注:Microsoft Jet 数据库 Jet 不能对备注或 OLE 对象字段分组。 GROUP BY 字段中的 Null 值以备分组但是不能被省略。 在任何 SQL 合计函数中不计算 Null 值。 GROUP BY 子句后最多可以带有十个字段,排序优先级按从左到右的顺序 排列。 例:在'WA’地区的雇员表中按头衔分组后,找出具有同等头衔的雇员数目 大于 1 人的所有头衔。 Select Title ,Count(Title) as Total FROM Employees Where Region = 'WA’ GROUP BY Title HAVING Count(Title)〉1 JET SQL 中的聚积函数 聚集函数 意义 SUM ( ) 求和 AVG ( ) 平均值 COUNT ( ) 表达式中记录的数目 COUNT (* ) 计算记录的数目 MAX 最大值 MIN 最小值 VAR 方差 STDEV 标准误差 FIRST 第一个值 LAST 最后一个值 六. 用 Parameters 声明创建参数查询 Parameters 声明的语法: PARAMETERS name datatype[,name datatype[, …]] 其中name 是参数的标志符,可以通过标志符引用参数. Datatype 说明参数的数据类型. 使用时要把 PARAMETERS 声明置于任何其他语句之前. 例: PARAMETERS[Low price] Currency,[Beginning date]datatime Select orderID ,OrderAmount FROM orders Where orderAMount〉[low price] AND orderDate〉=[Beginning date] 七. 功能查询 所谓功能查询,实际上是一种操作查询,它可以对数据库进行快速高效的操 作.它以选择查询为目的,挑选出符合条件的数据,再对数据进行批处理.功能 查询包括更新查询,删除查询,添加查询,和生成表查询. 1 更新查询 Update 子句可以同时更改一个或多个表中的数据.它也可以同时更改多个 字段的值. 更新查询语法: Update 表名 SET 新值 Where 准则 例:英国客户的定货量增加 5%,货运量增加 3% Update OEDERS SET orderAmount = orderAmount *1.1 Freight = Freight*1.03 Where ShipCountry = 'UK’ 2 删除查询 Delete 子句可以使用户删除大量的过时的或冗于的数据. 注:删除查询的对象是整个记录. Delete 子句的语法: Delete [表名.*] FROM 来源表 Where 准则 例: 要删除所有 94 年前的定单 Delete * FROM orders Where orderData〈#94-1-1# 3 追加查询 Insert 子句可以将一个或一组记录追加到一个或多个表的尾部. INTO 子句指定接受新记录的表 valueS 关键字指定新记录所包含的数据值. Insert 子句的语法: INSETR INTO 目的表或查询(字段 1,字段 2,…) valueS(数值 1,数值 2,…) 例:增加一个客户 Insert INTO Employees(FirstName,LastName,title) valueS('Harry’,’Washington’,’Trainee’) 4 生成表查询 可以一次性地把所有满足条件的记录拷贝到一张新表中.通常制作记录的备 份或副本或作为报表的基础. Select INTO 子句用来创建生成表查询语法: Select 字段 1,字段 2,… INTO 新表[IN 外部数据库] FROM 来源数据库 Where 准则 例:为定单制作一个存档备份 Select * INTO ordersArchive FROM orders 八. 联合查询 UNION 运算可以把多个查询的结果合并到一个结果集里显示. UNION 运算的一般语法: [表]查询 1 UNION [ALL]查询 2 UNION … 例:返回巴西所有供给商和客户的名字和城市 Select CompanyName,City FROM Suppliers Where Country = 'Brazil’ UNION Select CompanyName,City FROM Customers Where Country = 'Brazil’ 注: 缺省的情况下,UNION 子句不返回重复的记录.如果想显示所有记录,可以加 ALL 选项 UNION 运算要求查询具有相同数目的字段.但是,字段数据类型不必相同. 每一个查询参数中可以使用 GROUP BY 子句 或 HAVING 子句进行分组. 要想以指定的顺序来显示返回的数据,可以在最后一个查询的尾部使用 OREER BY 子句. 九. 交叉查询 交叉查询可以对数据进行总和,平均,计数或其他总和计算法的计算,这些数 据通过两种信息进行分组:一个显示在表的左部,另一个显示在表的顶部. Microsoft Jet SQL 用 TRANSFROM 语句创建交叉表查询语法: TRANSFORM aggfunction Select 语句 GROUP BY 子句 PIVOT pivotfield[IN(value1 [,value2[,…]]) ] Aggfounction 指 SQL 聚积函数, Select 语句选择作为标题的的字段, GROUP BY 分组 说明: Pivotfield 在查询结果集中创建列标题时用的字段或表达式,用可选的 IN 子 句限制它的取值. value 代表创建列标题的固定值. 例:显示在 1996 年里每一季度每一位员工所接的定单的数目: TRANSFORM Count(OrderID) Select FirstName&’’&LastName AS FullName FROM Employees INNER JOIN orders ON Employees.EmployeeID = orders.EmployeeID Where DatePart(“yyyy”,OrderDate)= '1996’ GROUP BY FirstName&’’&LastName orDER BY FirstName&’’&LastName POVOT DatePart(“q”,OrderDate)&’季度’ 十 .子查询 子查询可以理解为 套查询.子查询是一个 Select 语句. 1 表达式的值与子查询返回的单一值做比较 语法: 表达式 comparision [ANY|ALL|SOME](子查询) 说明: ANY 和 SOME 谓词是同义词,与比较运算符(=,〈,〉,〈〉,〈=,〉=)一起使用. 返回一个布尔值 True 或 False.ANY 的意思是,表达式与子查询返回的一系 列的值逐一比较,只要其中的一次比较产生True结果,ANY测试的返回 True 值(既 Where 子句的结果),对应于该表达式的当前记录将进入主查询的结果 中.ALL 测试则要求表达式与子查询返回的一系列的值的比较都产生 True 结果,才回返回 True 值. 例:主查询返回单价比任何一个折扣大于等于 25%的产品的单价要高的所 有产品 Select * FROM Products Where UnitPrice〉ANY (Select UnitPrice FROM[Order Details] Where Discount〉0.25) 2 检查表达式的值是否匹配子查询返回的一组值的某个值 语法: [NOT]IN(子查询) 例:返回库存价值大于等于 1000 的产品. Select ProductName FROM Products Where ProductID IN (Select PrdoctID FROM [Order DEtails] Where UnitPrice*Quantity〉= 1000) 3检测子查询是否返回任何记录 语法: [NOT]EXISTS (子查询) 例:用EXISTS 检索英国的客户 Select ComPanyName,ContactName FROM orders Where EXISTS (Select * FROM Customers Where Country = 'UK’ AND Customers.CustomerID= orders.CustomerID) 〉〉〉---------我想分页!--这么长的文章,在这里来个分页多好啊!哈哈---------- 〈〈〈 Sql Server 和 Access 操作数据库结构 Sql 语句 下面是 Sql Server 和 Access 操作数据库结构的常用 Sql,希望对你有所帮 助。 内容由海娃整理,不正确与不完整之处还请提出,谢谢。 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIMARY KEY , [字段1] nVarChar(50) default ’默认值’ null , [字段2] ntext null , [字段3] datetime, [字段4] money null , [字段5] int default 0, [字段6] Decimal (12,4) default 0, [字段7] image null , ) 删除表: Drop table [表名] 插入数据: Insert INTO [表名] (字段 1,字段 2) VALUES (100,’51WINDOWS.NET’) 删除数据: Delete FROM [表名] Where [字段名]〉100 更新数据: Update [表名] SET [字段 1] = 200,[字段 2] = ’51WINDOWS.NET’ Where [字段三] = ’HAIWA’ 新增字段: Alter TABLE [表名] ADD [字段名] NVARCHAR (50) NULL 删除字段: Alter TABLE [表名] Drop COLUMN [字段名] 修改字段: Alter TABLE [表名] Alter COLUMN [字段名] NVARCHAR (50) NULL 重命名表:(Access 重命名表,请参考文章:在 Access 数据库中重命名表) 引用来自 在 Access 数据库中重命名表 Dim Conn,ConnStr,oCat,oTbl ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server. MapPath("data.mdb") Set oCat=Server.CreateObject("ADOX.Catalog") oCat.ActiveConnection = ConnStr Set oTbl = Server.CreateObject("ADOX.Table") Set oTbl = oCat.Tables("OldTable") ’要重命名的表名:OldTable oTbl.Name = "NewTable" ’新表名 Set oCat = Nothing Set oTbl = Nothing sp_rename ’表名’, ’新表名’, ’OBJECT’ 新建约束: Alter TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字 段] 〈= ’2000-1-1’) 删除约束: Alter TABLE [表名] Drop CONSTRAINT 约束名 新建默认值 Alter TABLE [表名] ADD CONSTRAINT 默认值 名 DEFAULT ’51WINDOWS.NET’ FOR [字段名] 删除默认值 Alter TABLE [表名] Drop CONSTRAINT 默认值名 删除 Sql Server 中的日志,减小数据库文件大小 dump transaction 数据库名 with no_log backup log 数据库名 with no_log dbcc shrinkdatabase(数据库名) exec sp_dboption ’数据库名’, ’autoshrink’, ’true’ 【摘要】 select *(列名) from table_name(表名) where column_name operator value ex:(宿主) select * from stock_information where stockid = str(nid) stockname = 'str_name' stockname like '% find this %' stockname like '[a-zA-Z]%' --------- ([]指定值的范围) stockname like '[^F-M]%' --------- (^排除指定范围) SQL 语句大全 --语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程 CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式 DROP SCHEMA --从数据库中删除一个模式 CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征 --程序化 SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备 SQL 语句 EXECUTE --动态地执行 SQL 语句 DESCRIBE --描述准备好的查询 ---局部变量 declare @id char(10) --set @id = '10010001' select @id = '10010001' ---全局变量 ---必须以@@开头 --IF ELSE declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @y print 'x > y' --打印字符串'x > y' else if @y > @z print 'y > z' else print 'z > y' --CASE use pangu update employee set e_wage = case when job_level = ’1’ then e_wage*1.08 when job_level = ’2’ then e_wage*1.07 when job_level = ’3’ then e_wage*1.06 else e_wage*1.05 end --WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1 while @x < 3 begin print @x --打印变量 x 的值 while @y < 3 begin select @c = 100*@x + @y print @c --打印变量 c 的值 select @y = @y + 1 end select @x = @x + 1 select @y = 1 end --WAITFOR --例 等待 1 小时 2 分零 3 秒后才执行 SELECT 语句 waitfor delay ’01:02:03’ select * from employee --例 等到晚上 11 点零 8 分后才执行 SELECT 语句 waitfor time ’23:08:00’ select * from employee ***SELECT*** select *(列名) from table_name(表名) where column_name operator value ex:(宿主) select * from stock_information where stockid = str(nid) stockname = 'str_name' stockname like '% find this %' stockname like '[a-zA-Z]%' --------- ([]指定值的范围) stockname like '[^F-M]%' --------- (^排除指定范围) --------- 只能在使用 like 关键字的 where 子句中使用通配符) or stockpath = 'stock_path' or stocknumber < 1000 and stockindex = 24 not stocksex = 'man' stocknumber between 20 and 100 stocknumber in(10,20,30) order by stockid desc(asc) --------- 排序,desc-降序,asc-升序 order by 1,2 --------- by 列号 stockname = (select stockname from stock_information where stockid = 4) --------- 子查询 --------- 除非能确保内层 select 只返回一个行的值, --------- 否则应在外层 where 子句中用一个 in 限定符 select distinct column_name form table_name --------- distinct 指定检索独 有的列值,不重复 select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name select stockname , "stocknumber" = count(*) from table_name group by stockname --------- group by 将表按行分组,指定列中有相同的值 having count(*) = 2 --------- having 选定指定的组 select * from table1, table2 where table1.id *= table2.id -------- 左外部连接,table1 中有的而 table2 中 没有得以 null 表示 table1.id =* table2.id -------- 右外部连接 select stockname from table1 union [all] ----- union 合并查询结果集,all-保留重复行 select stockname from table2 ***insert*** insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx") value (select Stockname , Stocknumber from Stock_table2)---value 为 select 语句 ***update*** update table_name set Stockname = "xxx" [where Stockid = 3] Stockname = default Stockname = null Stocknumber = Stockname + 4 ***delete*** delete from table_name where Stockid = 3 truncate table_name ----------- 删除表中所有行,仍保持表的完整性 drop table table_name --------------- 完全删除表 ***alter table*** --- 修改数据库表结构 alter table database.owner.table_name add column_name char(2) null ..... sp_help table_name ---- 显示表已有特征 create table table_name (name char(20), age smallint, lname varchar(30)) insert into table_name select ......... ----- 实现删除列的方法(创建新表) alter table table_name drop constraint Stockname_default ---- 删除 Stockname 的 default 约束 ***function(/*常用函数*/)*** ----统计函数---- AVG --求平均值 COUNT --统计数目 MAX --求最大值 MIN --求最小值 SUM --求和 --AVG use pangu select avg(e_wage) as dept_avgWage from employee group by dept_id --MAX --求工资最高的员工姓名 use pangu select e_name from employee where e_wage = (select max(e_wage) from employee) --STDEV() --STDEV()函数返回表达式中所有数据的标准差 --STDEVP() --STDEVP()函数返回总体标准差 --VAR() --VAR()函数返回表达式中所有值的统计变异数 --VARP() --VARP()函数返回总体变异数 ----算术函数---- /***三角函数***/ SIN(float_expression) --返回以弧度表示的角的正弦 COS(float_expression) --返回以弧度表示的角的余弦 TAN(float_expression) --返回以弧度表示的角的正切 COT(float_expression) --返回以弧度表示的角的余切 /***反三角函数***/ ASIN(float_expression) --返回正弦是 FLOAT 值的以弧度表示的角 ACOS(float_expression) --返回余弦是 FLOAT 值的以弧度表示的角 ATAN(float_expression) --返回正切是 FLOAT 值的以弧度表示的角 ATAN2(float_expression1,float_expression2) --返回正切是 float_expression1 /float_expres-sion2 的以弧度表示的角 DEGREES(numeric_expression) --把弧度转换为角度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型 RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的 数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型 EXP(float_expression) --返回表达式的指数值 LOG(float_expression) --返回表达式的自然对数值 LOG10(float_expression)--返回表达式的以 10 为底的对数值 SQRT(float_expression) --返回表达式的平方根 /***取近似值函数***/ CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类 型与表达式相同可为 --INTEGER/MONEY/REAL/FLOAT 类型 FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型 与表达式相同可为 --INTEGER/MONEY/REAL/FLOAT 类型 ROUND(numeric_expression) --返回以 integer_expression 为精度的四舍 五入值返回的数据 --类型与表达式相同可为 INTEGER/MONEY/REAL/FLOAT 类型 ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达 式相同可为 --INTEGER/MONEY/REAL/FLOAT 类型 SIGN(numeric_expression) --测试参数的正负号返回 0 零值 1 正数或-1 负数返回的数据类型 --与表达式相同可为 INTEGER/MONEY/REAL/FLOAT 类型 PI() --返回值为 π 即 3.1415926535897936 RAND([integer_expression]) --用任选的[integer_expression]做种子值得 出 0-1 间的随机浮点数 ----字符串函数---- ASCII() --函数返回字符表达式最左端字符的 ASCII 码值 CHAR() --函数用于将 ASCII 码转换为字符 --如果没有输入 0 ~ 255 之间的 ASCII 码值 CHAR 函数会返回一个 NULL 值 LOWER() --函数把字符串全部转换为小写 UPPER() --函数把字符串全部转换为大写 STR() --函数把数值型数据转换为字符型数据 LTRIM() --函数把字符串头部的空格去掉 RTRIM() --函数把字符串尾部的空格去掉 LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串 CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的 开始位置 SOUNDEX() --函数返回一个四位字符码 --SOUNDEX 函数可用来查找声音相似的字符串但 SOUNDEX 函数对数字 和汉字均只返回 0 值 DIFFERENCE() --函数返回由 SOUNDEX 函数返回的两个字符表达式的 值的差异 --0 两个 SOUNDEX 函数返回值的第一个字符不同 --1 两个 SOUNDEX 函数返回值的第一个字符相同 --2 两个 SOUNDEX 函数返回值的第一二个字符相同 --3 两个 SOUNDEX 函数返回值的第一二三个字符相同 --4 两个 SOUNDEX 函数返回值完全相同 QUOTENAME() --函数返回被特定字符括起来的字符串 /*select quotename('abc', '{') quotename('abc') 运行结果如下 ----------------------------------{ {abc} [abc]*/ REPLICATE() --函数返回一个重复 character_expression 指定次数的字符 串 /*select replicate('abc', 3) replicate( 'abc', -2) 运行结果如下 ----------- ----------- abcabcabc NULL*/ REVERSE() --函数将指定的字符串的字符排列顺序颠倒 REPLACE() --函数返回被替换了指定子串的字符串 /*select replace('abc123g', '123', 'def') 运行结果如下 ----------- ----------- abcdefg*/ SPACE() --函数返回一个有指定长度的空白字符串 STUFF() --函数用另一子串替换字符串指定位置长度的子串 ----数据类型转换函数---- CAST() 函数语法如下 CAST() ( AS [ length ]) CONVERT() 函数语法如下 CONVERT() ([ length ], [, style]) select cast(100+99 as char) convert(varchar(12), getdate()) 运行结果如下 ------------------------------ ------------ 199 Jan 15 2000 ----日期函数---- DAY() --函数返回 date_expression 中的日期值 MONTH() --函数返回 date_expression 中的月份值 YEAR() --函数返回 date_expression 中的年份值 DATEADD( , ,) --函数返回指定日期 date 加上指定的额外日期间隔 number 产生的新日期 DATEDIFF( , ,) --函数返回两个指定日期在 datepart 方面的不同之处 DATENAME( , ) --函数以字符串的形式返回日期的指定 部分 DATEPART( , ) --函数以整数值的形式返回日期的指定 部分 GETDATE() --函数以 DATETIME 的缺省格式返回系统当前的日期和时间 ----系统函数---- APP_NAME() --函数返回当前执行的应用程序的名称 COALESCE() --函数返回众多表达式中第一个非 NULL 表达式的值 COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字 段的长度值 COL_NAME(, ) --函数返回表中指定字段的名称即 列名 DATALENGTH() --函数返回数据表达式的数据的实际长度 DB_ID(['database_name']) --函数返回数据库的编号 DB_NAME(database_id) --函数返回数据库的名称 HOST_ID() --函数返回服务器端计算机的名称 HOST_NAME() --函数返回服务器端计算机的名称 IDENTITY([, seed increment]) [AS column_name]) --IDENTITY() 函数只在 SELECT INTO 语句中使用用于插入一个 identity column 列到新表中 /*select identity(int, 1, 1) as column_name into newtable from oldtable*/ ISDATE() --函数判断所给定的表达式是否为合理日期 ISNULL(, ) --函数将表达式中 的 NULL 值用指定值替换 ISNUMERIC() --函数判断所给定的表达式是否为合理的数值 NEWID() --函数返回一个 UNIQUEIDENTIFIER 类型的数值 NULLIF(, ) --NULLIF 函数在 expression1 与 expression2 相等时返回 NULL 值若不 相等时则返回 expression1 的值 -------------------------------------------------------------------------------- sql 中的保留字 action add aggregate all alter after and as asc avg avg_row_length auto_increment between bigint bit binary blob bool both by cascade case char character change check checksum column columns comment constraint create cross current_date current_time current_timestamp data database databases date datetime day day_hour day_minute day_second dayofmonth dayofweek dayofyear dec decimal default delayed delay_key_write delete desc describe distinct distinctrow double drop end else escape escaped enclosed enum explain exists fields file first float float4 float8 flush foreign from for full function global grant grants group having heap high_priority hour hour_minute hour_second hosts identified ignore in index infile inner insert insert_id int integer interval int1 int2 int3 int4 int8 into if is isam join key keys kill last_insert_id leading left length like lines limit load local lock logs long longblob longtext low_priority max max_rows match mediumblob mediumtext mediumint middleint min_rows minute minute_second modify month monthname myisam natural numeric no not null on optimize option optionally or order outer outfile pack_keys partial password precision primary procedure process processlist privileges read real references reload regexp rename replace restrict returns revoke rlike row rows second select set show shutdown smallint soname sql_big_tables sql_big_selects sql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_join starting status string table tables temporary terminated text then time timestamp tinyblob tinytext tinyint trailing to type use using unique unlock unsigned update usage values varchar variables varying varbinary with write when where year year_month zerofill
还剩60页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

zywaxx

贡献于2012-07-10

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf