MySQL的命名规则

原创 2006年05月18日 10:59:00
 3.2 MySQL的命名规则
    几乎每条SQL 语句都在某种程度上涉及一个数据库或其组成成分。本节介绍引用数据库、表、列、索引和别名的语法规则。名称是区分大小写的,这里也对其进行了介绍。
    3.2.1引用数据库的成分
    在用名称引用数据库的成分时,受到可使用的字符以及名称可具有的长度的限制。名称的形式还依赖于使用它们的上下文环境:
    ■ 名称中可用的字符。名称可由服务器所采用的字符集中任意字母、数字、“_”和“ $”组成。名称可按上述任意字符包括数字起头。但是名称不能单独由数字组成,因为那样会使其与数值相混。MySQL所提供的名称用一个数起始的能力是很不寻常的。如果使用了这样的一个名称,要特别注意包含“ E”和“ e”的名称,因为这两个字符可能会导致与表达式的混淆。23e + 14 表示列23e 加14,但是23e+14 又表示什么?它表示一个科学表示法表示的数吗?
    ■ 名称的长度。数据库、表、列和索引的名称最多可由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 子句提供的上下文指定了从哪个表中选择列:

   虽然愿意的话,提供完全限定名也是合法的,但是一般不需要提供完全限定名,如果用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 schema命名规则

通用规则:整个数据库里的名字都尽量使用小写。这样能消除由于大小写(case-sensitivity)带来的错误。Mysql 默认区分大小写。使用下划线断开名字,名字中不能 使用空格。名字中尽量不要 ...

mysql编码规则

  • 2008-04-17 11:00
  • 30KB
  • 下载

mysql的重要规则

  • 2014-03-06 14:05
  • 1.80MB
  • 下载

mysql用field来定义排序规则

mysql的查询结果有时候会要求按照一定的规则排序,一般是按照id或者时间排序,这样的需求一般按照order by id desc 之类的就可以完成.但有时候的排序规则不是那么的有规律,比如说按照姓名...

讲讲Mysql中的校对规则究竟是怎么一回事

关键词:Mysql 字符集 charset  校对规则,collation, Illegal mix of collations 0.前言 有时候遇到这种情况,你用一个like语句查询,查...

mysql校对规则

字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下 简要说明 字符集和校对规则 字符集是一套符号和编码。校对规则是在字符集内用...

在 MySQL 中根据规则生成随机密码

原文链接地址:http://my.oschina.net/bairrfhoinn/blog/70728?from=20120805 MySQL 5.0 以后的版本开始支持存储过程,存储过程具有壹致性...

mysql优化之索引建立的规则

索引常用的数据结构为B+树。结构如下如上图,是一颗b+树,关于b+树的定义可以参见B+树,这里只说一些重点,浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所...

snort_rules/doc/signatures 规则解析放入MySql数据中

程序功能描述:                      对snort_rules/doc/sign...

MariaDB/MySQL Galera服务器的防火墙规则

Galera Cluster采用了一种叫Write-Set REPlication(所以Galera的配置都是以wsrep_开头)的机制,用于确保集群中所有主机数据的强一致性。本文不打算介绍Galer...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)