一、簡單的存儲過程
1、無參存儲過程
(1)編寫
create procedure student()
begin
select * from student;
end;
(2)調用存儲過程
call student();
2、有參存儲過程
這個參數分爲:傳入參數、傳出參數
(1)編寫
create procedure study(
out l1 decimal(8,2),
out l2 decimal(8,2),
in l3 int
)
begin
select sum(uid) into l1 from student where order_name=l3;
select avg(uid) into l2 from student;
end;
注意:l1和l2是用來存儲要傳出去的值,而l3則是存儲傳入進存儲過程作爲條件的值
(2)調用有參存儲過程
call study(@stuSum,@stuAvg,1511010);
(3)查看存儲過程運行完的結果
select @stuSum,@stuAvg;
3、刪除存儲過程
drop procedure study;
二、索引的介紹
1、優點:提高MySQL的檢索速度,使之高效運行。
2、索引分類:
1)單列索引:一個索引只包含單個列
2)組合索引:一個索引包含多個列
3、索引本質:索引也是一張表,該表保存了主鍵與索引字段,並且指向實體表的記錄,索引應用在SQL查詢語句的條件中(where的條件)。
4、缺點:索引會降低表進行insert、update、delete的速度(需要對數據庫中的表和索引都進行對應的操作),索引文件會佔用磁盤空間,所以索引不能濫用,應該適當。
三、索引的使用
1、普通索引
1)創建索引(三種)
(1)最基本的索引(注意:char/varchar類型的字段,length可以小於字段實際長度;blob/text類型字段,必須指定length)
create index indexName on firstIndex(name(length));
(2)添加索引(修改表結構)
alter firstIndex add index [indexName] on(name(length));
(3)在創建表的同時創建索引(也稱指定索引)
create table firstIndex (id bigint not null,name varchar(16) not null,index[indexName] (name(length)));
2)刪除索引
drop index [indexName] on myfirstIndex;
2、唯一索引(索引列的值(或索引組合列的值)必須唯一)
1)創建索引(三種)
(1)直接創建索引
create unique index indexName on firstIndex(name(length));
(2)修改表結構時添加
alter table firstIndex add unique [indexName] (name(length));
(3)創建表時直接指定
create table firstIndex(id bigint not null,username varchar(16) not null,unique [indexName] (username(length)));
3、添加和刪除索引(使用alter進行添加的四種方式)
1)由於添加了主鍵,索引值必須是唯一的(NOT NULL)
alter table tbl_name add primary key(column_list);
2)創建索引的值必須是唯一的。
alter table tbl_name add unique index_name(column_list);
3)添加普通索引(索引值不唯一)
alter table tbl_name add index index_name(column_list);
4)索引爲fulltext(用於全文索引)
轉載:https://blog.csdn.net/tree_ifconfig/article/details/81449218