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

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

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

【 tulaoshi.com - 编程语言 】

  3.2 MySQL的命名规则

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

  3.2.1引用数据库的成分

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

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

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

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

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

  

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

  

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

  

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

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

  

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

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

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

  3.2.2 SQL 语句中的大小写规则

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

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

  

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

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

  

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

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

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

延伸阅读
本附录介绍MySQL提供的每种列类型。关于利用每种类型的详细说明请参阅第2 章。除非另有说明,否则所列出的类型早在MySQL3.21.0 中就已经有了。 按下列约定给出类型名说明: 方括号( [ ]) 可选信息。 M 最大显示宽度。除非另有说明,否则M 应该是一个1到255 之间的整数。 D 有小数部分的类型的小数位数。D 为一个0 到...
2.3 选择列的类型 上一节描述了各种可供选择的MySQL的列类型及其属性,以及它们可存储的各种值,所占用的存储空间等等。但是在实际创建一个表时怎样决定用哪些类型呢?本节讨论在做出决定前应考虑的各种因素。最常用的列类型是串类型。可将任何数据存储为串,因为数和日期都可以串的形式表示。但是为什么不将所有列都定义为串从而结束...
为了与MySQL服务器进行通信,必须熟练掌握SQL。例如,在使用诸如mysql客户机这样的程序时,其功能首先是作为一种发送SQL 语句给服务器执行的工具。而且,如果编写使用编程语言所提供的MySQL接口的程序时,也必须熟悉SQL 语言,因为需要发送SQL 语句与服务器沟通。 第1章MySQL与SQL介绍的教程介绍了许多MySQL功能。本章在该教程的基础...
6.8 其他主题 本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容: ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果。 ■ 如何处理很难插入到查询中的数据。 ■ 如何处理图形数据。 ■ 如何获得表结构的信息。 ■ 常见的MySQL程序设...
可得到几种版本的MySQL分发包。当前稳定的发行版有3.22 版本系列。当前正在开发的版本为3.23 系列。一般,应该使用系列中最高编号的版本。 MySQL分发包可以以二进制代码、RPM 和源代码的格式得到。二进制代码和RPM 分发包容易安装,但必须接受建立在分发包内的安装设计和缺省配置。源代码分发包安装很困难,因为必须对软件进行编译,...

经验教程

436

收藏

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