Mysql入门系列:MySQL的命名规则

2016-02-19 15:25 4 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

  3.2 MySQL的命名规则

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

  3.2.1引用数据库的成分

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

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

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

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

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

  

  其中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.2 SQL 语句中的大小写规则

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

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

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

  

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

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

  

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

  查看全套"Mysql入门系列教程"

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

延伸阅读
为了与MySQL服务器进行通信,必须熟练掌握SQL。例如,在使用诸如mysql客户机这样的程序时,其功能首先是作为一种发送SQL 语句给服务器执行的工具。而且,如果编写使用编程语言所提供的MySQL接口的程序时,也必须熟悉SQL 语言,因为需要发送SQL 语句与服务器沟通。 第1章MySQL与SQL介绍的教程介绍了许多MySQL功能。本章在该教程的基础...
3.7 加注释 MySQL允许在SQL 代码中使用注释。这对于说明存放在文件中的查询很有用处。可用两个方式编写注释。以 #号开头直到行尾的所有内容都认为是注释。另一种为C 风格的注释。即,以/ *开始,以* /结束的所有内容都认为是注释。C 风格的注释可跨多行,如: 自MySQL3.23 版以来,可在C 风格的注释中隐藏 MySQL特有的关...
6.8 其他主题 本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容: ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果。 ■ 如何处理很难插入到查询中的数据。 ■ 如何处理图形数据。 ■ 如何获得表结构的信息。 ■ 常见的MySQL程序设计...
本附录介绍MySQL提供的每种列类型。关于利用每种类型的详细说明请参阅第2 章。除非另有说明,否则所列出的类型早在MySQL3.21.0 中就已经有了。 按下列约定给出类型名说明: 方括号( [ ]) 可选信息。 M 最大显示宽度。除非另有说明,否则M 应该是一个1到255 之间的整数。 D 有小数部分的类型的小数位数。D 为一个0 到...
3.9 MySQL不支持的功能 本节介绍其他数据库中有而MySQL中无的功能。它介绍省略了什么功能,以及在需要这些功能时怎么办。一般情况下, MySQL之所以忽略某些功能是因为它们有负面性能影响。有的功能正在开发者的计划清单上,一旦找到一种方法可以实现相应的功能而又不致于影响 良好性能的目标,就会对它们进行实现。 ■ 子...

经验教程

542

收藏

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