MySQL数据库技术(12)

2016-02-19 20:34 4 1 收藏

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐MySQL数据库技术(12),无聊中的都看过来。

【 tulaoshi.com - 编程语言 】

  3.2 MySQL 的命名规则

    几乎每条SQL 语句都在某种程度上涉及一个数据库或其组成成分。本节介绍引用数据库、表、列、索引和别名的语法规则。名称是区分大小写的,这里也对其进行了介绍。

    3.2.1 引用数据库的成分

    在用名称引用数据库的成分时,受到可使用的字符以及名称可具有的长度的限制。名称的形式还依赖于使用它们的上下文环境:

    ■ 名称中可用的字符。名称可由服务器所采用的字符集中任意字母、数字、“_”和“ $”组成。名称可按上述任意字符包括数字起头。但是名称不能单独由数字组成,因为那样会使其与数值相混。MySQL 所提供的名称用一个数起始的能力是很不寻常的。如果使用了这样的一个名称,要特别注意包含“ E”和“ e”的名称,因为这两个字符可能会导致与表达式的混淆。23e + 14 表示列23e 加1 4,但是23e+14 又表示什么?它表示一个科学表示法表示的数吗?

    ■ 名称的长度。数据库、表、列和索引的名称最多可由6 4个字符组成。别名最多可长达256个字符。

    ■ 名称限定词。为了引用一个数据库,只要指定其名称即可,如:

    其中db_name 为所要引用的数据库名。要想引用一个表,可有两种选择。一种选择是使用由数据库名和表名组成的完全限定的表名,例如:

    其中,tbl_name 为要引用的表名。另一种选择是由表名自身来引用缺省(当前)数据库中的一个表。如果samp_db 为缺省数据库中的一个表,下面的两个语句是等价的:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    其中member 为数据库samp_db 中的一个表。要引用一个列,有三种选择,它们分别为:完全限定、部分限定和非限定。完全限定名(如db _ name . tbl _ name . col _ name)是完全地指定。部分限定名(如t b l _ name . col _ name)引用指定表中的列。非限定名(如col _ name)引用由环境上下文给出的表中的列。下面两个查询使用了相同的列名,但是FROM 子句提供的上下文指定了从哪个表中选择列:

   虽然愿意的话,提供完全限定名也是合法的,但是一般不需要提供完全限定名,如果用USE 语句选择了一个数据库,则该数据库将成为缺省数据库并在每一个非限定表引用中都隐含指向它。如果正使用一条SELECT 语句,此语句只引用了一个表,那么该语句中的每个列引用都隐含指向这个表。只在所引用的表或数据库不能从上下文中确定时,才需要对名称进行限定。下面是一些会出现混淆的情形:

   ■ 从多个数据库中引用表的查询。任何不在缺省数据库中的表都必须用“数据库名表名”的形式引用,以便让MySQL 知道在哪个数据库中找到该表。

   ■ 从多个表中选择一列的查询,其中不止一个表含有具有该名称的列。

    3.2.2 SQL 语句中的大小写规则

   SQL 中的大小写规则在语句的不同部分是不同的,而且还取决于所引用的东西以及运行的操作系统。下面给出相应的说明:

   ■ SQL 关键字和函数名。关键字与函数名是不区分大小写的。可按任意的大小写字符给出。下面的三条语句是等价的:

    ■ 数据库与表名。MySQL 中数据库和表名对应于服务器主机上的基本文件系统中的目录和文件。因此,数据库与表名是否区分大小写取决于主机上的操作系统处理文件名的方式。运行在UNIX 上的服务器处理数据库名和表名是区分大小写的,因为UNIX 的文件名是区分大小写的。而Windows 文件名是不区分大小写的,所以运行在Windows上的服务器处理数据库名和表名也是不区分大小写的。如果在UNIX 服务器上创建一个某天可能会移到Windows 服务器上的数据库,应该意识到这个特性:如果现在创建了两个分别名为abc 和ABC 的表,它们在Windows 机器上将是没有区别的。避免这种情况发生的一种方法是选择一种字符(如小写),总是以这种字符创建数据库和表名。这样,在将数据库移到不同的服务器时,名称的大小写便不会产生问题。

    ■ 列与索引名。MySQL 中列和索引名是不区分大小写的。下面的查询都是等价的:

    ■ 别名。别名是区分大小写的。可按任意的大小写字符说明一个别名(大写、小写或大小写混合),但是必须在任何查询中都以相同的大小写对其进行引用。不管数据库、表或别名是否是区分大小写的,在同一个查询中的任何地方引用同一个名称都必须使用相同的大小写。对于SQL 关键字、函数名或列名和索引名没有这个要求。可在同一个查询中多个地方用不同的大小写对它们进行引用。当然,如果使用一致的大小写而不是“胡乱写”的风格(如SelECt NamE FrOm ...),相应的查询可读性要强得多。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1624025.html

延伸阅读
6.7 客户机程序5—交互式查询程序     让我们把迄今为止研究的诸多内容整理一下,编写一个简单的交互式客户机程序。它的功能包括可以进入查询,用通用目标查询处理程序process_query 执行查询,并用前面研究过的显示格式process_result_set() 显示查询结果。     客户机程序5在某些方面与mysql 类似,虽...
    3.6 检索记录     除非最终检索它们并利用它们来做点事情,否则将记录放入数据库没什么好处。这就是SELECT 语句的用途,即帮助取出数据。SELECT 大概是SQL 语言中最常用的语句,而且怎样使用它也最为讲究;用它来选择记录可能相当复杂,可能会涉及许多表中列之间的比较。SELECT 语句的语法如下: &nbs...
6.8 其他主题     本节包括几个主题,这些主题不完全适合于本章从client1 到client5 的开发中的任一小节的内容:     ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果。     ■ 如何处理很难插入到查询中的数据。     ■ 如何处理图形数...
    关系数据库的世界是一个表与集合、表与集合上的运算占统治地位的世界。数据库是一个表的集合,而表又是行和列的集合。在发布一条SELECT 查询从表中进行检索行时,得到另一个行和列的集合。这些都是一些抽象的概念,对于数据库系统用来操纵表中数据的基本表示没有多少参考价值。另一个抽象概念是,表上的运算都同时进行;查...
4.3 列类型选择与查询效率     要选择有助于使查询执行更快的列,应遵循如下规则(这里,“BLOB 类型”应该理解为即包含B L O B也包含TEXT 类型):     ■ 使用定长列,不使用可变长列。这条准则对被经常修改,从而容易产生碎片的表来说特别重要。例如,应该选择CHAR 列而不选择VARCHAR 列。所要权衡的...

经验教程

893

收藏

75
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部