表示索引为唯一性索引。指索引的长度,必须是字符串类型才可以使用。如果在创建索引时没写索引名称,MySQL会自动用字段名作为索引名称。其中table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以在同时创建多个索引。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。......
2023-10-29
创建多列索引是在表的多个字段上创建一个索引。
实例:创建一个名为index5的数据表,在表中的name和sex字段上建立名为index5_ns的多列索引。
(1) 创建多列索引的SQL代码如下:
在提示符窗口中查看MySQL创建多列索引的操作效果,如图7.10所示。
图7.10
从上图中可以看出,代码的执行结果显示index5_ns索引创建成功。
(2) 使用SHOW CREATE TABLE语句查看index5数据表的结构,如图7.11所示。
图7.11
从上图中可以看出,name和sex字段上已经建立了一个名为index5_ns的多列索引。
(3) 多列索引中,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用。先在index5数据表中添加一些数据记录,然后使用EXPLAIN语句可以查看索引的使用情况。
(www.chuimin.cn)
如果只是使用name字段作为查询条件进行查询,如图7.12所示。
图7.12
从上图中可以看出,possible_keys和key的值都是index5_ns。Extra(额外信息)显示正在使用索引。这说明使用name字段进行索引时,索引index5_ns已经被使用。
(4) 如果只使用sex字段作为查询条件进行查询。
查询结果如图7.13所示。
图7.13
从上图中可以看出,possible_keys和key的值都是NULL。Extra(额外信息)显示正在使用where条件查询,而未使用索引。
使用多列索引时一定要特别注意,只有使用了索引中的第一个字段时才会触发索引。如果没有使用索引中的第一个字段,那么这个多列索引就不会起作用。因此,在优化查询速度时,可以考虑优化多列索引。
有关MySQL数据库设计与实现的文章
表示索引为唯一性索引。指索引的长度,必须是字符串类型才可以使用。如果在创建索引时没写索引名称,MySQL会自动用字段名作为索引名称。其中table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以在同时创建多个索引。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。......
2023-10-29
如下语法可用于创建存储过程:而如下语法用于创建存储函数:例如,来创建一个返回静态字符串的简单存储过程:仅此而已。请继续阅读,了解创建复杂的存储过程还有哪些选项。例如,能够使用PHP、Perl和Python语言创建存储过程,这意味着过程的功能只受所使用语言的限制。在编写本书时,此特点对存储过程的功能没有影响。......
2023-10-29
图5—9“设计表”窗口④在“设计表”窗口中选择要创建索引的字段“成绩”,右键点击打开快捷菜单。图5—10“索引/键”对话框⑥在“索引/键”对话框中单击“添加”按钮,系统将自动创建索引。......
2023-11-24
当创建表时,必须指定表名、列名及数据类型。图4.5创建表stuinfo创建完表以后可使用show tables命令来查看当前数据库中可用的表。图4.7创建表item在图4.7中创建了一个名为item的表。在字段other中,null表示允许该列为空,若没有特别指定该列为null或not null,默认情况下该列允许为空。图4.8查看表item的表结构要查看注释标识可通过show create table命令。......
2023-10-29
数组是由同一类型数据元素组成的大小可变的集合。图3-16 数组的创建第1步2)将需要的有效数据对象拖入数组框,切记此要点,如果不分配数据类型,该数组将显示为带空括号的黑框。图3-17 数组创建第2步在数组框图的左端或左上角为数组的索引值,显示在数组左边方框中的索引值对应数组中第一个可显示的元素,通过索引值的组合可以访问到数组中的每一个元素。......
2023-11-07
如果出现提示使用MySQL 5.1.6之前的版本,则需要SUPER权限才能创建触发器;而从5.1.6开始,账户有TRIGGER权限就可以创建触发器。关于这个前缀及类似前缀的更多信息,请参见补充内容“触发器命名约定”。触发器命名虽然没有要求,但为触发器采用某种命名约定是一个好主意,这样可以更快地确定每个触发器的作用。例如,可以考虑为每个触发器加上如下字符串作为前缀,触发器创建示例中就采用了这种做法。au,在UPDATE查询发生之后执行触发器。......
2023-10-29
创建视图是通过CREATE VIEW语句实现的。当视图指定为TEMPTABLE时,将在创建视图的同时创建相应的TEMPORARY表。如果为视图指定了UNDEFINED算法,当查询指示其结果和视图结果是一对一关系时,MySQL将选择TEMPTABLE。DEFINER子句确定在视图执行时将检查哪个用户账户的权限来确定是否有适当的权限执行这个视图。......
2023-10-29
在MySQL已经成功启动的前提下,输入以下命令:这样一个名为shop的数据库就创建成功了。图4.1查看系统内数据库在图4.1中,第一个数据库information_schema是MySQL自带的,该数据库存储了所有MySQL服务器管理的数据库信息,比如数据库名、数据库的表、表的数据类型及访问权限等。图4.2非法的数据库名如果要创建的数据库名字在MySQL中已经存在,也会发生错误。......
2023-10-29
相关推荐