数据库、表、索引、列和别名
来源:互联网 发布:知花下马番号 编辑:程序博客网 时间:2024/05/22 03:20
数据库、表、索引、列和别名是识别符。该节描述了在MySQL中识别符的允许的语法。
下面的表描述了每类识别符的最大长度和允许的字符。
除了表内注明的限制,识别符不可以包含ASCII 0或值为255的字节。数据库、表和列名不应以空格结尾。在识别符中可以使用引号识别符,尽管应尽可能避免这样使用。
识别符用Unicode(UTF8)保存。在.frm文件中保存的表定义的识别符和在mysql数据库中的授权表保存的识别符也用Unicode(UTF8)保存。在MySQL 5.1中授权表(和其它表)的字符串列的大小等于字符个数;这说明(不象以前版本的MySQL)你可以在这些列保存的值中使用多字节字符而不需要降低字符个数。
识别符可以引起来也可以不引起来。如果识别符是一个保留字或包含特殊字符,无论何时使用,必须将它引起来。关于保留字的列表参见“MySQL中保留字的处理”。特殊字符指那些当前字符集、‘_’和‘$’之外的文字数字字符集。
识别符的引用符是反勾号(‘`’):
mysql> SELECT * FROM `select` WHERE `select`.id > 100;
如果SQL服务器模式包括ANSI_QUOTES模式选项,还可以用双引号将识别符引起来:
mysql> CREATE TABLE "test" (col INT);ERROR 1064: You have an error in your SQL syntax. (...)mysql> SET sql_mode='ANSI_QUOTES';mysql> CREATE TABLE "test" (col INT);Query OK, 0 rows affected (0.00 sec)
参见“SQL服务器模式”。
如果你引用识别符,可以在识别符内包括识别符引用符。如果识别符内包括的字符与引用识别符的字符相同,则需要用双字符。下面的语句创建一个名为a`b包含列c”d的表:
mysql> CREATE TABLE `a``b` (`c"d` INT);
建议不要使用XeX模式的名,例如1e或2e2,因为类似1e+1的表达式比较模糊。根据上下文,它可以解释为表达式1e + 1或数字1e+1。
使用MD5产生表名时应仔细,因为它可能产生不合法的表名,如上所述。
Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/52230594
- 数据库、表、索引、列和别名
- MySQL - MySQL 5.1参考手册 - 9.语言结构 - 9.2. 数据库、表、索引、列和别名 - 9.2.2. 识别符大小写敏感性
- oracle的表和列取别名
- sql 表、列 别名
- MySql数据库表名、列名、别名区分大小写
- oracle中给表和列起别名
- Elasticsearch索引别名的介绍和操作
- Elasticsearch索引别名的介绍和操作
- ES 索引别名和零停机时间
- Elasticsearch索引别名的介绍和操作
- oracle给列取别名、给表取别名
- MySQL数据库表名、列名、别名区分大小写的问题
- MySQL数据库表名、列名、别名区分大小写的问题
- MySQL数据库表名、列名、别名区分大小写的问题及解决
- MySQL数据库表名、列名、别名区分大小写的问题
- MySQL数据库表名、列名、别名区分大小写的问题及解决
- MySQL数据库名、表名、列名、别名区分大小写的问题
- MySQL数据库表名、列名、别名区分大小写的问题
- Git/GitHub学习笔记
- 设置 user 表主键 id 自增长
- Android责任链模式
- ViewPager详解
- 关于匈牙利算法
- 数据库、表、索引、列和别名
- Hibernate与Mybatis比较
- AOE网上的关键路径
- Android的.9图片使用问题
- sigwait函数详解
- STM32 定时器使用相关博文
- 分享在线pdf转换成图片格式的方法
- 2,libyuv 编译for ios
- 多线程的使用(1) - performSelectorOnMainThread