• mysql standard


mysql standard

MySQL Standards Compliance
This section describes how MySQL relates to the ANSI/ISO SQL standards. MySQL Server has many extensions to the SQL standard, and here you can find out what they are and how to use them. You can also find information about functionality missing from MySQL Server, and how to work around some of the difference
这部分主要是1.描述了mysql跟标准之间的联系,2.大量的标准扩展的都有哪些和如何使用,3.还可以发现一些mysql服务所缺少的一些使用性的一些信息如何工作
One of our main goals with the product is to continue to work toward compliance with the SQL standard, but without sacrificing speed or reliability.
我们的主要目标是所有的生产开发都是继续朝着sql标准化工作的,但是不能以牺牲速度和稳定为代价
We are not afraid to add extensions to SQL or support for non-SQL features if this greatly increases the usability of MySQL Server for a large segment of our user base.
我们并不害怕增加对sql支持的一些扩展和一些非sql特点的特征的支持只要他能勾对大多数用户的使用能够起到一定使用效率的如HANDLER
We continue to support transactional and nontransactional databases to satisfy both mission-critical 24/7 usage and heavy Web or logging usage.
==我们继续支持了事物和非事务型数据库对于对于全天候(24/7)关键任务的支持和日志服务或者是大型网页的支持==
MySQL Server was originally designed to work with medium-sized databases (10-100 million rows, or about 100MB per table) on small computer systems. Today MySQL Server handles terabyte-sized databases, but the code can also be compiled in a reduced version suitable for hand-held and embedded devices. The compact design of the MySQL server makes development in both directions possible without any conflicts in the source tree.
mysql最初的设计是为了中型的数据库服务的,1000行数据量或者100M的数据量每张表在一个小型的计算机操作系统中的,现在mysql能够操控G级别的数据库,而且这些代码可以编译到之前的手持设备和嵌入式设备的版本中,因为有了扩展这种设计使得mysql的开发可以朝着两个反响发展在源码的开发树中,一个只关心内核的发展,另一个考虑其他的功能
We are not targeting real-time support, although MySQL replication capabilities offer significant functionality.
即使是mysql中从复制提供了很多有效的函数,我们的目标也不是实时读取的
Selecting SQL Modes
The MySQL server can operate in different SQL modes, and can apply these modes differently for different clients, depending on the value of the sql_mode system variable. DBAs can set the global SQL mode to match site server operating requirements, and each application can set its session SQL mode to its own requirements.
mysql服务器可以针对不同的模式操作实行不同的操作,基于不同的sql模式系统变量的值来实现针对不同的客户端的不同模式,DBA数据库管理远就能够设置全局的sql模式来匹配不同的服务站点,但是每个应用又可以通过设置上下文来设置sql模式来实现各自的需要
Modes affect the SQL syntax MySQL supports and the data validation checks it performs. This makes it easier to use MySQL in different environments and to use MySQL together with other database servers.
模式会影响到mysql支持的sql语法校验和数据类型能够校验的平台相关性,这样使得mysql在不同的环境变量中更容易使用更容易配合其他数据库服务器的使用

通常来说MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器操作进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查。这样,就能在众多不同的环境下、与其他数据库服务器一起更容易地使用MySQL。可以使用“–sql-mode=”modes””选项,通过启动mysqld来设置默认的SQL模式。而从MySQL 4.1开始,也能在启动之后,使用SET [SESSION|GLOBAL] sql_mode=’modes’语句,通过设置sql_mode变量更改其模式。
通常来说MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器操作进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查。这样,就能在众多不同的环境下、与其他数据库服务器一起更容易地使用MySQL。可以使用“–sql-mode=”modes””选项,通过启动mysqld来设置默认的SQL模式。而从MySQL 4.1开始,也能在启动之后,使用SET [SESSION|GLOBAL] sql_mode=’modes’语句,通过设置sql_mode变量更改其模式。
通常在linux下安装完mysql后,其默认的sql-mode值是空,在这种情形下mysql执行的是一种不严格的检查,例如日期字段可以插入’0000-00-00 00:00:00’这样的值,还有如果要插入的字段长度超过列定义的长度,那么mysql不会终止操作,而是会自动截断后面的字符继续插入操作,如下例:

源码安装的时候
MySQL Configuration and Third-Party Tools
Third-party tools that need to determine the MySQL version from the MySQL source can read the VERSION file in the top-level source directory. The file lists the pieces of the version separately. For example, if the version is MySQL 5.7.4-m14, the file looks like this: 是否支持第三方工具,需要开启标注本本号
MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=7
MYSQL_VERSION_PATCH=4
MYSQL_VERSION_EXTRA=-m14
比如客户端等相关的东西

初始化数据库,
After installing MySQL, you must initialize the data directory, including the tables in the mysql system database. For some MySQL installation methods, data directory initialization may be done automatically,在安装数据库完成的时候需要重新初始化数据库,数据库的文件路径,一些基本的表