mysql常见的数据对象
database/schema
table
index
view/trigger/function/procedure
多database用途
业务的隔离
资源的隔离:一个database中有很多表,开表会很慢
索引--数据库中数据的目录
索引和数据是两个对象
索引主要是用来提高数据库的查询效率
数据库中数据变更同样需要同步索引数据的变更
创建索引
1. create [unique|fulltext|spatial] index index_name [index_type] on tbl_name (index_col_name,...) [index_option] [algorithm_option | lockoption]
index_col_name: col_name[(length)] [asc|desc]
index_type: using{BTREE|HASH}
fulltext--全文检索
spatial--地理位置检索
2. alter table add [column] (col_name) add{indexkey} [index_name]
约束
唯一约束
对一张表的某个字段或者某几个字段设置唯一建约束
唯一约束是一种特殊的索引,可以使用唯一约束提高查询性能
唯一约束可以是一个或者多个字段
唯一约束可以在建表的时候建好,也可以后面再补
主键也是一种唯一约束
添加主键
alter table `order` add primary key(id);
添加唯一索引
alter table `order` add unique key inx_uk_orderid(orderid);
外键约束
两张表的数据通过某种条件联系起来
alter table `order` add CONSTRAINT constarint_uid FOREIGN KEY (userid) REFERENCES `user` (`userid`)
注意事项
必须是innodb表,myisam和其他引擎不支持外键
相互约束的字段类型和字符编码必须要一样
主表的约束字段要求有索引
约束名称必须要唯一,即便不在一张表上
View
视图将一组查询语句构成的结果集,是一种虚拟结构,并不是实际数据
视图能简化数据库的访问,能够将多个 查询语句结构化为一个虚拟结构
视图可以隐藏数据库后端表结构,提高数据库的安全性
创建视图
create view order_view as select * from `order` where status=1;