MySQL学习笔记3索引、存储过程_MySQL
bitsCN.com
MySQL索引 索引分类: 索引两种存储类型:B型树(BTREE)索引和哈希(HASH)索引,其中B型树为系统默认索引方法。MySQL的索引包括普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引。
注意:只有MyISAM类型的数据表支持FULLTEXT全文索引,其他类型的数据表不支持全文索引。当用户在建立全文索引的时候,返回“ERROR 1283 (HY000): Column 'number' cannot be part of FULLTEXT index”的错误,则说明用户操作的当前数据表不支持全文索引,即不为MyISAM类型的数据表。
只有MyISAM类型表支持空间索引。而且,索引字段必须有非空约束。创建索引 在建立数据表时创建索引
语法结构如下:
create table table_name(
属性名 数据类型 [约束条件],
属性名 数据类型 [约束条件],
^……
属性名 数据类型
[UNIQUE | FULLTEXT | SPATIAL ] INDEX }KEY
[别名](属性名1 [(长度)] [ASC | DESC]) 创建多列索引
触发多列索引的条件是用户必须使用索引的第一字段,如果没有用到第一字段,则索引不起任何作用,用户想要优化查询速度,可以应用该类索引形式。在已建立的数据表中创建索引 基本命令结构如下:
CREATE [UNIQUE | FULLTEXT |SPATIAL ] INDEX index_name
ON table_name(属性 [(length)] [ ASC | DESC]); 修改数据表结构添加索引 基本结构如下:
ALTER TABLE table_name ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX index_name(属性名[(length)] [ASC | DESC]);注意:
从功能上看,修改数据表结构添加索引与在已存在数据表中建立索引所实现功能大体相同,二者均是在已经建立的数据表中添加或创建新的索引。 删除索引 基本命令如下:
DROP INDEX index_name ON table_name; MySQL存储过程 创建存储过程和存储函数 创建存储过程
基本形式:CREATE PROCEDUER sp_name ([proc_parameter [,...]]) [characteristic ...] routine_body
存储过程调用方法:call 存储过程名;注意:MySQL中默认的语句结束符为分号; 存储过程中的SQL语句需要分号来结束,为了避免冲突,首先,用“DELIMITER // ”将MySQL的结束符设置为//。最后用“DELIMITER;”来将结束符恢复成分号。这与触发器的创建是一样的。创建存储函数
基本形式:CREATE FUNCTION sp_name ([func_parameter[,...]])
RETURNS types
[characteristic ...] routine_body变量的应用
MySQL存储过程中的参数主要有局部参数和会话参数两种,又可被称为局部变量和会话变量。局部变量只在定义该局部变量的begin……end范围内有效,会话变量在整个存储过程范围内均有效。
局部变量以关键字declare声明,后跟变量名和变量类型,例如 declare a int
也可以用关键字default为变量指定默认值,例如declare a int default 10MySQL中的会话变量不必声明即可使用,会话变量在整个过程中有效,会话变量名以字符“@”作为起始字符。为变量赋值 用DECLARE关键字定义变量:DECLARE var_name[,...] type [default value]使用SET关键字为变量赋值:SET var_name=expr[, var_name=expr]...SELETC col_name [ ,...] INTO var_name [, ...] FROM table_name where condition
示例:select tel into customer_tel from studentinfo where name='LeonSK';注意:上述赋值语句必须存在于创建的存储过程中,且需要将赋值语句放置在BEGIN……END之间。若脱离此范围,该变量将不能使用或被赋值。光标的运用
声明光标
光标必须声明在处理程序之前,且声明在变量和条件之后。
语法:DECLARE cursor_name CURSOR FOR select_statement
select 子句中不能包含INTO子句,并且光标只能在存储过程或存储函数中使用。打开光标
语法:OPEN info_of_student使用光标
使用FETCH...INTO语句来读取数据,语法如下:
FETCH cursor_name INTO var_name[, var_name]...关闭光标
语法:CLOSE curso_name
对于以关闭的光标,在其关闭之后则不能使用FETCH来使用光标,光标在使用完毕后一定要关闭。查看存储过程和函数 SHOW STATUS语句
SHOW {PROCEDUER | FUNCTION} STATUS[LIKE 'pattern' ]SHOW CREATE语句
SHOW CREATE { PROCEDUER | FUNCTION } sp_name;SHOW STATUS语句只能查看存储过程或函数所操作的数据库对象,如存储过程或函数的名称、类型、定义者、修改时间等信息,并不能查询存储过程或函数的具体定义。如需要查看详细定义,需要使用SHOW CREATE语句。修改存储过程和函数 语法如下:
ALTER {PROCEDUER | FUNCTION} sp_name [characteristic ...]
characteristic:
{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
bitsCN.com
热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。在机器学习中,一个基础的概念就是如何判断两个样本之间的差异,从而能够评价两个样本之间的相似性和类别等信息。而判断这种相似性的度量就是两个样本在特征空间内的距离。根据数据特征的不同,度量方法有很多种。一般而言,对两个数据样本x,y,定义一个函数d(x,y),如果定义其为两个样本之间的距离,那么d(x,y)则需要满足以下几条基本性质:非负性:d(x,y)>=0同一性:d(x,y)=0 ⇔ x=y对

众所周知,如果系统安装完成后占用系统盘太大,可能会导致系统运行卡顿、延迟,甚至是文件丢失。因此大家在安装win11系统之前,需要了解升级win11需要多大C盘空间,下面就跟着小编一起来看看吧。升级win11需要多大C盘空间:答:升级win11需要20-30GB的C盘空间。1、根据微软的win11配置要求可以看到,win11安装需要64GB的硬盘空间。2、但其实一般来说是不需要这么大的空间的。3、根据已经安装win11的用户反馈,win11升级大概需要20-30GB的C盘空间。4、但是如果我门只有

c盘剩余空间50-80G比较合适。由于系统在日后使用当中会产生垃圾文件,缓存文件等因此建议至少预留50GB-80GB的空间给C盘;如果您不习惯在安装软件时选择路径,日常也不是经常清理电脑,那么至少需要100GB。

交换空间在Linux系统中扮演着重要角色,特别是在系统内存不足时。它充当着一个备用的内存存储空间,可以帮助系统平稳运行,即使在负载高的情况下也能保持稳定性。本文为您提供了在Ubuntu22.04LTS上添加交换空间的详细指南,以确保您的系统性能得到优化并能应对各种工作负载。了解交换空间交换空间提供虚拟内存,用于补充系统的物理RAM。当系统的RAM不足时,内核会将数据交换到磁盘,以防止内存不足和系统崩溃。Linux系统常用交换空间来处理这种情况。同时运行多个内存密集型应用程序处理非常大的文件或数据

Xbox游戏机有大量可供下载和玩的游戏。再加上Microsoft的Xbox游戏通行证订阅,乐趣无穷无尽的游戏收藏永远不会停止。但是,存在可用于游戏的空间问题,XboxSeriesS为356GB,XboxSeriesX为850GB。虽然这在以前的游戏版本中很好,游戏的最大大小可能在20到45GB之间,这不是最近的游戏。最近可用的游戏最终占用了磁盘上的大量空间,从而使我们下载其他游戏的空间更少。ForzaHorizon5和Halo5Guardians等

MySQL是一种常见的关系型数据库,是许多网站和应用程序的核心组件。随着数据量越来越大,如何优化MySQL的性能就变得尤为重要。其中一个关键领域是数据表的压缩,在本文中我们将介绍MySQL中的数据表压缩技术。压缩表和非压缩表MySQL中有两种类型的数据表:压缩表和非压缩表。非压缩表是MySQL默认的表类型,它使用固定长度的行格式,对数据进行存储。这意味着数据

如果您使用的是iPhone15或iPhone15ProMax,iOS17.2允许您录制空间视频,以便在Apple即将推出的VisionPro耳机上的照片应用程序中查看。这是你如何做到的。Apple的VisionPro耳机预计将于2024年<>月左右发布。在那之前,您可以为此做好准备的一种方法是使用iPhone以一种称为空间视频的特殊格式录制视频,该格式可在Apple的耳机上观看。在iPhone上观看时,空间视频显示为普通视频,但它们在VisionPro上提供了近乎三维

云存储已经成为我们日常生活和工作中不可或缺的一部分。随着文件数量的不断增加,云存储空间的需求也日益凸显。作为国内领先的云存储服务提供商,百度云凭借其强大的存储功能和便捷的操作体验,赢得了广大用户的青睐。但是很多用户们可能都在使用过程中遇到过空间不足的困扰,那么这篇教程就为大家带来详细的解决扩充容量办法,希望能帮助到大家!1.在百度云中登录自己的账号。(可以使用百度账号登录,也可以使用QQ账号登录)2.登录后点击百度云左侧的“免费领取2048G容量”。3.下载百度云的手机客户端,安卓手机的点击下载
