对我们来说,单词物品意味着不仅仅是“某东西“;它是一个技术术语,在我们的源代码的上下文中具有精确定义。物品
是一堂课。每个实例物品
班级有:
SQL语言中的模拟
一个值
数据类型描述符
所有下面的SQL“Thingamabobs.“是模拟的物品
类:
文字
列参考文献
会话或全局变量
程序变量
参数
SQL函数(由于SQL函数具有数据类型和返回值,而不是惊喜。
在里面功能类别包括诸如的运营商+
和||
,因为运算符仅是返回值的函数。我们还包括诸如=
和喜欢
,这是返回布尔值的操作符。考虑以下陈述:
从T列2 = @X的T中选择Upper(Column1);
对于此语句,MySQL需要存储Select List的项目列表('第1列'参考和上函数),以及Where子句的项目列表('第2列'列参考和'@x'变量以及'='运算符)。
术语:MySQL程序中的项目实例大致对应于“站点”,根据Standard_sql定义是“一个包含指定数据类型值的实例”的地方,您将经常看到的另一个词MySQL代码是“字段”,这意味着列引用,item_field子类通常是针对表中的行和列的交叉处的列值。
mysql的项目类是在... / sql / item.h中定义的,它的子类是在... / sql / item * .h中定义的(Item.h,item_cmpfunc.h,item_func.h,item_geofunc.h,item_row.h,item_strfunc.h,item_subselect.h,item_sum.h,item_timefunc.h)。页面宽度限制阻止我们显示整个树,但这些是主要项目子类和子类的子类:
item_ident(item_idement,item_ref)item_null item_num(item_int,item_real)item_param item_string(item_static_string_func,item_datetime,item_ementy_string)item_hex_string(item_bin_string)item_result_field(所有“item_func.h”“item_subselect.h”“item_sub.h”类)item_copy_string item_cache(item_cache_int,item_cache_real,item_cache_str,item_cache_row)item_type_holder item_row
没有正式的子类分类,但主要的区别是通过使用(字段,参数,函数)和数据类型(num,字符串)。
那么,MySQL如何使用物品?您发现几乎每个.cc中的/ sql目录中的每个.cc程序都会使用项目类及其子类,因此此程序列表仅部分且非常一般:
sql_parse.cc:在add_field_to_list()item_sum.cc中制作新项目创建LEX可能使用的项目item_subselect.cc:子查询是另一种类型的函数mysqld.cc:当main()结束时,它使用special_up()for items opt_range.cc:使用字段,比较条件和值子类过程。CC:注意过程*具有指向物品列表协议的指针:使用send_fields()将项目值传递给用户sys_var.cc:系统变量具有Item关联,它具有sql_base.cc:特定于find_field_in_table()的线程特定项搜索者sql_class.cc:查看cleanup_after_query()sql_delete.cc:这个(如sql_insert.cc等)的字段引用sql_error.cc:sql_error.cc的众多例子之一是sql_lex.cc的使用示例之一:注意“添加... to_list“函数sql_select.cc:使用项目的最大程序,显然是Udf_example.cc:这个程序中的评论很广泛
每当需要对站点进行分配、比较、聚合、接受、发送或验证的SQL操作时,您就会发现MySQL对Item及其子类的使用。