|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
用一个库#bak_database存放这些历史数据。3.2MySQL的定名划定规矩
几近每条SQL语句都在某种水平上触及一个数据库或其构成成份。本节先容援用数据库、表、列、索引和别号的语律例则。称号是辨别巨细写的,这里也对其举行了先容。
3.2.1援用数据库的成份
在用称号援用数据库的成份时,遭到可以使用的字符和称号可具有的长度的限定。称号的情势还依附于利用它们的高低文情况:
■称号中可用的字符。称号可由服务器所接纳的字符会合恣意字母、数字、“_”和“$”构成。称号可按上述恣意字符包含数字开端。可是称号不克不及独自由数字构成,由于那样会使其与数值相混。MySQL所供应的称号用一个数肇端的才能是很不平常的。假如利用了如许的一个称号,要出格注重包括“E”和“e”的称号,由于这两个字符大概会招致与表达式的搅浑。23e+14暗示列23e加14,可是23e+14又暗示甚么?它暗示一个迷信暗示法暗示的数吗?
■称号的长度。数据库、表、列和索引的称号最多可由64个字符构成。别号最多可长达256个字符。
■称号限制词。为了援用一个数据库,只需指定其称号便可,如:
个中db_name为所要援用的数据库名。要想援用一个表,可有两种选择。一种选择是利用由数据库名和表名构成的完整限制的表名,比方:
个中,tbl_name为要援用的表名。另外一种选择是由表名本身来援用缺省(以后)数据库中的一个表。假如samp_db为缺省数据库中的一个表,上面的两个语句是等价的:
个中member为数据库samp_db中的一个表。要援用一个列,有三种选择,它们分离为:完整限制、部分限制和非限制。完整限制名(如db_name.tbl_name.col_name)是完整地指定。部分限制名(如tbl_name.col_name)援用指定表中的列。非限制名(如col_name)援用由情况高低文给出的表中的列。上面两个查询利用了不异的列名,可是FROM子句供应的高低文指定了从哪一个表当选择列:
固然乐意的话,供应完整限制名也是正当的,可是一样平常不必要供应完整限制名,假如用USE语句选择了一个数据库,则该数据库将成为缺省数据库并在每个非限制表援用中都隐含指向它。假如正利用一条SELECT语句,此语句只援用了一个表,那末该语句中的每一个列援用都隐含指向这个表。只在所援用的表或数据库不克不及从高低文中断定时,才必要对称号举行限制。上面是一些会呈现搅浑的情况:
■从多个数据库中援用表的查询。任何不在缺省数据库中的表都必需用“数据库名表名”的情势援用,以便让MySQL晓得在哪一个数据库中找到该表。
■从多个表当选择一列的查询,个中不止一个表含有具有该称号的列。
3.2.2SQL语句中的巨细写划定规矩
SQL中的巨细写划定规矩在语句的分歧部分是分歧的,并且还取决于所援用的器材和运转的操纵体系。上面给出响应的申明:
■SQL关头字和函数名。关头字与函数名是不辨别巨细写的。可按恣意的巨细写字符给出。上面的三条语句是等价的:
■数据库与表名。MySQL中数据库和表名对应于服务器主机上的基础文件体系中的目次和文件。因而,数据库与表名是不是辨别巨细写取决于主机上的操纵体系处置文件名的体例。运转在UNIX上的服务器处置数据库名和表名是辨别巨细写的,由于UNIX的文件名是辨别巨细写的。而Windows文件名是不辨别巨细写的,以是运转在Windows上的服务器处置数据库名和表名也是不辨别巨细写的。假如在UNIX服务器上创立一个某天大概会移到Windows服务器上的数据库,应当意想到这个特征:假如如今创立了两个分离名为abc和ABC的表,它们在Windows呆板大将是没有区分的。制止这类情形产生的一种办法是选择一种字符(如小写),老是以这类字符创立数据库和表名。如许,在将数据库移到分歧的服务器时,称号的巨细写便不会发生成绩。
■列与索引名。MySQL中列和索引名是不辨别巨细写的。上面的查询都是等价的:
■别号。别号是辨别巨细写的。可按恣意的巨细写字符申明一一般名(年夜写、小写或巨细写夹杂),可是必需在任何查询中都以不异的巨细写对其举行援用。不论数据库、表或别号是不是是辨别巨细写的,在统一个查询中的任何中央援用统一个称号都必需利用不异的巨细写。关于SQL关头字、函数名或列名和索引名没有这个请求。可在统一个查询中多个中央用分歧的巨细写对它们举行援用。固然,假如利用分歧的巨细写而不是“胡乱写”的作风(如SelECtNamEFrOm...),响应的查询可读性要强很多。
如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKEabc%‘,MySQL将使用索引;如果查询条件是LIKE%abc’,MySQL将不使用索引。 |
|