索引:个人理解,其实就是选取原表中的某一个或几个列组成一个索引(可以大胆的认为是子表),方便以后更快速的查询。为什么更快的呢?因为是子表不需要再读取整个表;索引也是需要存储的,所以其缺点就是会比无索引来讲多占硬盘空间。
语法为:
创建索引:CREATE INDEX index_name ON table_name (column_name);
使用索引:SELECT column_name FROM index_name WHERE column_name='value';
删除索引:ALTER TABLE table_name DROP INDEX index_name;
举个例子:
创建索引:create index Persons_index ON persons(Firstname,Lastname);
使用索引:select * from Persons_index where Firstname like 'x%'; --查询表中以x开头的姓,在此基础上也查询该人的名
删除索引:ALTER TABLE persons DROP INDEX Persons_index;
视图:通俗来讲,视图就是存储在数据库中的查询语句。个人理解,视图就是一部分懒人在处理复杂查询的时候好不容易想出来一个查询语句,怕以后忘了就给了个名字记住喽。
语法为:
创建视图:CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition;
使用视图:SELECT * FROM view_name WHERE condition;
更新视图:CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
删除视图:DROP VIEW view_name;
举个例子:
创建视图:create view Persons_view as select * from Persons where SEX='M';
使用视图:select * from Persons_view where name like 'x%'
更新视图:create or replace view Persons_view as select * from Persons where SEX='F';
删除视图:DROP VIEW Persons_view;