首頁 資料庫 mysql教程 MySQL学习笔记3索引、存储过程_MySQL

MySQL学习笔记3索引、存储过程_MySQL

Jun 01, 2016 pm 01:26 PM
數據表 空間

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
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
機器學習基礎之數字上的距離:點在空間中的距離 機器學習基礎之數字上的距離:點在空間中的距離 Apr 11, 2023 pm 11:40 PM

本文轉載自微信公眾號「活在資訊時代」,作者活在資訊時代。轉載本文請聯絡活在資訊時代公眾號。在機器學習中,一個基礎的概念就是如何判斷兩個樣本之間的差異,以便能夠評估兩個樣本之間的相似性和類別等資訊。而判斷這種相似性的測量就是兩個樣本在特徵空間內的距離。根據資料特徵的不同,度量方法有很多種。一般而言,對兩個資料樣本x,y,定義一個函數d(x,y),如果定義其為兩個樣本之間的距離,那麼d(x,y)則需要滿足以下幾個基本性質:非負性:d(x,y)>=0同一性:d(x,y)=0 ⇔ x=y對

如何在 Ubuntu 上新增交換空間 22.04 LTS 如何在 Ubuntu 上新增交換空間 22.04 LTS Feb 20, 2024 am 11:12 AM

交換空間在Linux系統中扮演著重要角色,特別是在系統記憶體不足時。它充當一個備用的記憶體儲存空間,可以幫助系統平穩運行,即使在負載高的情況下也能保持穩定性。本文為您提供了在Ubuntu22.04LTS上新增交換空間的詳細指南,以確保您的系統效能經過最佳化並能應付各種工作負載。了解交換空間交換空間提供虛擬內存,用於補充系統的實體RAM。當系統的RAM不足時,核心會將資料交換到磁碟,以防止記憶體不足和系統崩潰。 Linux系統常用交換空間來處理這種情況。同時運行多個內存密集型應用程式處理非常大的檔案或數據

c盤剩餘空間多大合適 c盤剩餘空間多大合適 Jun 27, 2023 pm 02:51 PM

c盤剩餘空間50-80G比較適合。由於系統在日後使用當中會產生垃圾檔案,快取檔案等因此建議至少預留50GB-80GB的空間給C碟;如果您不習慣在安裝軟體時選擇路徑,日常也不是經常清理電腦,那麼至少需要100GB 。

升級win11需要的C盤空間介紹 升級win11需要的C盤空間介紹 Dec 23, 2023 am 08:57 AM

眾所周知,如果系統安裝完成後佔用系統碟太大,可能會導致系統運行卡頓、延遲,甚至是檔案遺失。因此大家在安裝win11系統之前,需要先了解升級win11需要多大C盤空間,下面就跟著小編一起來看看吧。升級win11需要多大C碟空間:答:升級win11需要20-30GB的C碟空間。 1.根據微軟的win11設定要求可以看到,win11安裝需要64GB的硬碟空間。 2、但其實一般來說是不需要這麼大的空間的。 3.根據已經安裝win11的用戶回饋,win11升級大概需要20-30GB的C碟空間。 4.但是如果我門只有

iOS 17.2:如何在 iPhone 15 Pro 上錄製空間視頻 iOS 17.2:如何在 iPhone 15 Pro 上錄製空間視頻 Dec 15, 2023 pm 01:09 PM

如果您使用的是iPhone15或iPhone15ProMax,iOS17.2允許您錄製空間視頻,以便在Apple即將推出的VisionPro耳機上的照片應用程式中查看。這是你如何做到的。 Apple的VisionPro耳機預計將於2024年<>月左右發售。在那之前,您可以為此做好準備的一種方法是使用iPhone以一種稱為空間視頻的特殊格式錄製視頻,該格式可在Apple的耳機上觀看。在iPhone上觀看時,空間視頻顯示為普通視頻,但它們在VisionPro上提供了近乎三維

MySQL中的資料表壓縮技術 MySQL中的資料表壓縮技術 Jun 16, 2023 am 08:16 AM

MySQL是一種常見的關聯式資料庫,是許多網站和應用程式的核心元件。隨著資料量越來越大,如何優化MySQL的效能就變得尤為重要。其中一個關鍵領域是資料表的壓縮,在本文中我們將介紹MySQL中的資料表壓縮技術。壓縮表和非壓縮表MySQL中有兩種類型的資料表:壓縮表和非壓縮表。非壓縮表是MySQL預設的表類型,它使用固定長度的行格式,對資料進行儲存。這意味著數據

如何釋放 Xbox Series S 或 Xbox Series X 上的空間 如何釋放 Xbox Series S 或 Xbox Series X 上的空間 Apr 19, 2023 pm 01:46 PM

Xbox遊戲機有大量可供下載玩的遊戲。再加上Microsoft的Xbox遊戲通行證訂閱,樂趣無窮無盡的遊戲收藏永遠不會停止。但是,有可用於遊戲的空間問題,XboxSeriesS為356GB,XboxSeriesX為850GB。雖然這在以前的遊戲版本中很好,遊戲的最大大小可能在20到45GB之間,這不是最近的遊戲。最近可用的遊戲最終佔用了磁碟上的大量空間,從而使我們下載其他遊戲的空間更少。 ForzaHorizo​​n5和Halo5Guardians等

網路空間安全中的人工智慧技術綜述 網路空間安全中的人工智慧技術綜述 Apr 11, 2023 pm 04:10 PM

1、引言由于当下计算机网络的爆炸式增长,随之而来的问题是数目急剧增长的网络攻击。我们社会的各种部门,从政府部门到社会上的各种关键基础设施,都十分依赖计算机网络以及信息技术。显然它们也很容易遭受网络攻击。典型的网络攻击就是使目标计算机禁用、使服务脱机或者访问目标计算机的数据。自上世纪九十年代以来,网络攻击的数量和影响已经显著增加。网络安全指的是一系列用来保护网络设备活动和措施的,能够使得它们免遭所有可能威胁的技术。在传统的网络安全技术中,大都是静态的访问管理,安全控制系统会根据预设的定义进行保护。

See all articles