大牛理会怎样快速进修MySQL数据库秘笈
查询功效中,假如必要对罗列办降序排序,可以行使DESC,这个要害字只能对其前面的列 举办降序分列。譬喻,要对多列都举办降序排序,必必要在每一列的列名后头加DESC要害字。 而DISTINCT差异,DISTINCT不能部门行使。换句话说,DISTINCT要害字应用于全部列而不 仅是它后头的第一个指定列。譬喻,查询3个字段s_id,f_name,f_price,假如差异记录的这3个字段的组合值都差异,则全部记录城市被查询出来。 17.ORDER BY可以和LIMIT殽杂行使吗?在行使ORDER BY子句时,应担保其位于FROM子句之后,假如行使LIMIT,则必需位 于ORDER BY之后,假如子句次序不正确,MySQL将发生错误动静。 18.什么时辰行使引号?在查询的时辰,会看到在WHERE子句中行使前提,有的值加上了单引号,而有的值未加。 单引号用来限制字符串,假如将值与字符串范例罗列办较量,则必要限制引号;而用来与数值进 行较量则不必要用引号。 19.在WHERE子句中必需行使圆括号吗?任何时辰利器具有AND和OR操纵符的WHERE子句,都应该行使圆括号明晰操纵次序。 假如前提较多,纵然能确定计较序次,默认的计较序次也也许会使SQL语句不易领略,因此使 用括号明晰操纵符的序次,是一个好的风俗。 20.更新可能删除表时必需指定WHERE子句吗?在前面章节中可以看到,全部的UPDATE和DELETE语句全都在WHERE子句中指定了条 件。假如省略WHERE子句,则UPDATE或DELETE将被应用到表中全部的行。因此,除非 确实规划更新可能删除全部记录,不然要留意行使不带WHERE子句的UPDATE或DELETE 语句。提议在对表举办更新和删除操纵之前,行使SELECT语句确认必要删除的记录,以免造 成无法挽回的功效。 21.索引对数据库机能云云重要,应该怎样行使它?为数据库选择正确的索引是一项伟大的使命。假如索引列较少,则必要的磁盘空间和维护开销 都较少。假如在一个大表上建设了多种组合索引,索引文件也会膨胀很快。而另一方面,索引较多 可包围更多的查询。也许必要试验多少差异的计划,才气找到最有用的索引。可以添加、修改和删 除索引而不影响数据库架构或应用措施计划。因此,应实行多个差异的索引从而成立最优的索引。 22.只管行使短索引。对字符串范例的字段举办索引,假如也许应该指定一个前缀长度。譬喻,假若有一个 CHAR(255)的列,假如在前10个或30个字符内,大都值是惟一的,则不必要对整个罗列办索引。 短索引不只可以进步查询速率并且可以节减磁盘空间、镌汰I/O操纵。 23. MySQL存储进程和函数有什么区别?在本质上它们都是存储措施。函数只能通过return语句返回单个值可能表工具;而存储进程 不应承执行return,可是可以通过out参数返回多个值。函数限定较量多,不能用姑且表,只能用表变量,尚有一些函数都不行用等等;而存储进程的限定相对就较量少。函数可以嵌入在SQL 语句中行使,可以在SELECT语句中作为查询语句的一个部门挪用;而存储进程一样平常是作为一个独立的部门来执行。 24.存储进程中的代码可以改变吗?今朝,MySQL还不提供对已存在的存储进程代码的修改,假如必必要修改存储进程,必需行使DROP语句删除之后,再从头编写代码,可能建设一个新的存储进程。 25.存储进程中可以挪用其他存储进程吗?存储进程包括用户界说的SQL语句荟萃,可以行使CALL语句挪用存储进程,虽然在存储 进程中也可以行使CALL语句挪用其他存储进程,可是不能行使DROP语句删除其他存储进程。 26.存储进程的参数不要与数据表中的字段名沟通。在界说存储进程参数列表时,应留意把参数名与数据库表中的字段名区别开来,不然将出 现无法预期的功效。 27.存储进程的参数可以行使中文吗?一样平常环境下,也许会呈现存储进程中传入中文参数的环境,譬喻某个存储进程按照用户的 名字查找该用户的信息,传入的参数值也许是中文。这时必要在界说存储进程的时辰,在后头加 上character set gbk,否则挪用存储进程行使中文参数会堕落,好比界说userInfo存储进程,代码 如下: ![]() 1.两者的区别:28.MySQL中视图和表的区别以及接洽是什么? (1)视图是已经编译好的SQL语句,是基于SQL语句的功效集的可视化的表,而表不是。 (2)视图没有现实的物理记录,而根基表有。 (3)表是内容,视图是窗口。 (4)表占用物理空间而视图不占用物理空间,视图只是逻辑观念的存在,表可以实时对它 举办修改,但视图只能用建设的语句来修改。 (5)视图是查察数据表的一种要领,可以查询数据表中某些字段组成的数据,只是一些SQL 语句的荟萃。从安详的角度来说,视图可以防备用户打仗数据表,因而用户不知道表布局。 (6)表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 (7)视图的成立和删除只影响视图自己,不影响对应的根基表。 2.两者的接洽: 视图(view)是在根基表之上成立的表,它的布局(即所界说的列)和内容(即全部记录) 都来自根基表,它依据根基表存在而存在。一个视图可以对应一个根基表,也 可以对应多个根基 表。视图是根基表的抽象和在逻辑意义上成立的新相关。 28.行使触发器时须出格留意。在行使触发器的时辰必要留意,对付沟通的表,沟通的变乱只能建设一个触发器,好比对 表account建设了一个BEFORE INSERT触发器,那么假如对表account再次建设一个BEFORE INSERT触发器,MySQL将会报错,此时,只可以在表account上建设AFTER INSERT可能 BEFORE UPDATE范例的触发器。机动的运用触发器将为操纵省去许多贫困。 29.实时删除不再必要的触发器。触发器界说之后,每次执行触发变乱,城市激活触发器并执行触发器中的语句。假如需求 产生变革,而触发器没有举办响应的改变可能删除,则触发器如故会执行旧的语句,从而会影响 新的数据的完备性。因此,要将不再行使的触发器实时删除。 30.应该行使哪种要领建设用户?(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |