MySql-Mysql技术内幕~SQL编程学习笔记(1)
1、MySQL的历史,一些相关概念。
2、MySQL数据类型
*通常一个页内可以存放尽可能多的行,那么数据库的性能就越好,选择一个正确的数据类型至关重要。
1》UNSIGNED类型:
将数字类型无符号化。
2》ZEROFILL:
可以格式化整形显示,一旦启用该属性,MySQL数据库为列自动添加UNSIGNED属性。0填充。
3》日期和时间类型
日期数据类型占用空间的情况
类型 | 起始范围 | 结束范围 |
DATETIME | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
DATE | 1000-01-01 | 9999-12-31 |
TIMESTAMP | 1970-01-01 00:00:00 | 2038-01-19 03:14:07 |
YEAR | ||
TIME |
TIMESTAMP与DATETIME显示的格式一样,但有些不同的地方:
1>表示的时间范围不同
2>TIMESTAMP类型的列可以设置一个默认值,而DATETIME类型不可以。
3>TIMESTAMP类型在更新表时可以设置自动更新为当前时间。
3》和日期时间相关的函数
1>获取当前系统时间:now()、current_timestamp()、sysdate()
1>>now():返回执行sql时的时间
2>>current_timestamp():返回执行sql时的时间
3>>sysdate():返回执行到当前sql时的时间
2>时间加减函数:
1>>date_add(date,interval expr unit):date_add(now(),interval 1 day)。expr可正可负。unit的值有year、month、day、hour、minute、second、microsecond、week。
2>>date_sub(date,interval expr unit):date_sub(now(),interval 1 day)。expr可正可负。unit的值有year、month、day、hour、minute、second、microsecond、week。
3>时间格式化函数
1>>date_format:根据用户指定的格式打印日期。
4》数字类型
1>整型
2>浮点型(非准确型)
1>>float:
2>>double precision:
3>高精度类型:decimal、numeric在mysql中被视为相同的类型。必须指明精度和标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。
4>位类型:即bit类型,可以保存位字段的值。
5>字符类型:
1>>char和varchar:
2>>binary和varbinary:
3>>blob和text:
4>>enum和set:
3、查询处理:逻辑查询处理、物理查询处理
1》逻辑查询处理
1.逻辑查询处理,步骤序号