创建索引
CREATE TABLE table_name [col_name data_type] [UNIQUE|FULLTEXT|SPATIAL] [INDEX|KEY] [index_name] (col_name [length]) [ASC | DESC]
CREATE TABLE book
(
bookid INT NOT NULL,
bookname VARCHAR(255) NOT NULL,
authors VARCHAR(255) NOT NULL,
info VARCHAR(255) NULL,
comment VARCHAR(255) NULL,
year_publication YEAR NOT NULL,
INDEX(year_publication)
);
SHOW CREATE table book \G
//在已经创建好的表上加上索引
ALTER TABLE book ADD UNIQUE INDEX UniqidIdx ( bookId );
SHOW INDEX FROM book \G
SHOW index from book \G
使用explain语句查看索引是否在使用;
explain select * from book where year_publication=1990 \G
删除索引
1.使用ALTER TABLE删除索引 ALTER TABLE table_name DROP INDEX index_name;
2.使用DROP INDEX语句删除索引 DROP INDEX index_name ON table_name;
创建存储过程
创建存储过程
DELIMITER //----->设置以//结束整个语句
CREATE PROCEDURE 函数名()
BEGIN
逻辑语句 SQL语句
END //
存储过程的调用
CALL 函数名;
select 函数名;
创建储存函数
DELIMITER //----->设置以//结束整个语句
CREATE FUNCTION函数名(...)
RETURNS
RETURN 逻辑语句 SQL语句
END //
存储函数的调用
select 函数名;
两者区别 :都能完成同一个功能 做大的区别就是存储函数有返回值
查看存储过程和函数
SHOW STATUS语句查看存储过程和函数的状态
SHOW CREATE语句查看存储过程和函数的定义
从information_schema.Routines表中查看存储过程和函数的信息