SQL语法速成

来源:互联网 发布:php高级编程 pdf下载 编辑:程序博客网 时间:2024/05/22 14:43
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

一、SQL速成 
结构查询语言(SQL)是用于查询关系的标准语言,它包括若干关键字和一致的语法,便于数据库元件(如表、索引、字段等)的建立和操纵。 
以下是一些重要的SQL快速参考,有关SQL的语法和在标准SQL上增加的特性,请查询手册。 

1.创建表 
表是数据库的最基本元素之一,表与表之间可以相互独立,也可以相互关联。创建表的基本语法如下: 
createtabletable_name 
(column_namedata无效{identity|null|notnull}, 
…) 
其中参数table_name和column_name必须满足用户数据库中的识别器(identifier)的要求,参数data无效是一个标准的SQL类型或由用户数据库提供的类型。用户要使用non-null从句为各字段输入数据。 
createtable还有一些其他选项,如创建临时表和使用select子句从其他的表中读取某些字段组成新表等。还有,在创建表是可用PRIMARYKEY、KEY、INDEX等标识符设定某些字段为主键或索引等。 
书写上要注意: 
在一对圆括号里的列出完整的字段清单。 
字段名间用逗号隔开。 
字段名间的逗号后要加一个空格。 
最后一个字段名后不用逗号。 
所有的SQL陈述都以分号";"结束。 
例: 
mySQL>CREATETABLEtest(blob_colBLOB,index(blob_col(10))); 

2.创建索引 
索引用于对数据库的查询。一般数据库建有多种索引方案,每种方案都精于某一特定的查询类。索引可以加速对数据库的查询过程。创建索引的基本语法如下: 
createindexindex_name 
ontable_name(col_name[(length)],...) 
例: 
mySQL>CREATEINDEXpart_of_nameONcustomer(name(10)); 

3.改变表结构 
在数据库的使用过程中,有时需要改变它的表结构,包括改变字段名,甚至改变不同数据库字段间的关系。可以实现上述改变的命令是alter,其基本语法如下: 
altertabletable_namealter_spec[,alter_spec...] 
例: 
mySQL>ALTERTABLEt1CHANGEabINTEGER; 

4.删除数据对象 
很多数据库是动态使用的,有时可能需要删除某个表或索引。大多数数据库对象可以下面的命令删除: 
dropobject_name 
mySQL>DROPTABLEtb1; 

5.执行查询 
查询是使用最多的SQL命令。查询数据库需要凭借结构、索引和字段类型等因素。大多数数据库含有一个优化器(optimizer),把用户的查询语句转换成可选的形式,以提高查询效率。 
值得注意的是MySQL不支持SQL92标准的嵌套的where子句,即它只支持一个where子句。其基本语法如下: 
SELECT[STRAIGHT_JOIN][SQL_SMALL_RESULT][SQL_BIG_RESULT][HIGH_PRIORITY] 
[DISTINCT|DISTINCTROW|ALL] 
select_expression,... 
[INTO{OUTFILE|DUMPFILE}'file_name'export_options] 
[FROMtable_references 
[WHEREwhere_definition] 
[GROUPBYcol_name,...] 
[HAVINGwhere_definition] 
[ORDERBY{unsigned_integer|col_name|formula}[ASC|DESC],...] 
[LIMIT[offset,]rows] 
[PROCEDUREprocedure_name]] 
其中where从句是定义选择标准的地方,where_definition可以有不同的格式,但都遵循下面的形式: 
字段名操作表达式 
字段名操作字段名 
在第一种形式下,标准把字段的值与表达式进行比较;在第二种形式下,把两个字段的值进行比较。根据所比较的数据类型,search_condition中的操作可能选以下几种: 
=检查是否相等 
!=检查是否不等 

>(或>=)检查左边值是否大于(或大于等于)右边值 1<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>