设为首页 加入收藏

TOP

全面掌握Mysql知识点及select支持的运算操作(五)
2015-11-21 02:05:44 来源: 作者: 【 】 浏览:6
Tags:全面 掌握 Mysql 知识点 select 支持 运算 操作
Goods as select goods_id,goods_name from goods;
mysql> select * from baseGoods;
+----------+------------+
| goods_id | goods_name |
+----------+------------+
| 1 | 苹果 |
| 2 | 西瓜 |
| 3 | 香蕉 |
| 4 | 白菜 |
| 5 | 韭菜 |
| 6 | 茄子 |
| 7 | 哈密瓜 |
+----------+------------+
这样就可以不出现销售价格列了。当然我们也可以修改视图,修改视图也比较简单:alter view 视图名 as select语句,比如对于avgPrice视图,我们还想看到商品名称:

mysql> alter view avgPrice as select cat_id,goods_name, avg(shop_price) from goods group by cat_id;
mysql> select * from avgPrice;
+--------+------------+-----------------+
| cat_id | goods_name | avg(shop_price) |
+--------+------------+-----------------+
| 1 | 白菜 | 2.133333 |
| 2 | 苹果 | 5.595000 |
+--------+------------+-----------------+

删除视图:mysql> drop view avgPrice;

16)索引index

索引分单列索引组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引是一个索引包含多个列。
对字段建立索引可以大大提高查询速度。假如我们创建了一个mytable表:
mysql> desc mytable;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID | int(11) | NO | | NULL | |
| username | varchar(16) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
MySQL索引类型包括:
(1)普通索引,这是最基本的索引,它没有任何限制。它有以下几种创建方式:
-- 创建索引
CREATE INDEX indexName ON mytable(username(10)); -- 单列索引
-- CREATE INDEX indexName ON mytable(username(10),Id(11)); -- 组合索引
-- indexName为索引名,mytable表名,username和Id为列名, 如果是CHAR,VARCHAR类型,前缀长度可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定前缀长度。

#实例演示:创建普通索引
mysql> create index indexName on mytable(username(10));
mysql> desc mytable;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID | int(11) | NO | | NULL | |
| username | varchar(16) | NO | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
#修改索引
mysql> alter table mytable add index indexName (username(10));
mysql> desc mytable;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID | int(11) | NO | | NULL | |
| username | varchar(16) | NO | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
#删除索引
mysql> drop index indexName on mytable;
mysql> desc mytable;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID | int(11) | NO | | NULL | |
| username | varchar(16) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+

?

(2)唯一索引:它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式(仅仅在创建普通索引时关键字 INDEX 前加 UNIQUE

#创建唯一索引
mysql> create unique index indexName on mytable(username(10));
#修改唯一索引
mysql> alter table mytable add unique index indexName (username(10));
#删除唯一索引
mysql> drop index indexName on mytable;

?

(3)主键索引:它是一种特殊的唯一索引,不允许有空值。在建表的时候同时创建的主键即为主键索引。主键索引无需命名,一个表只能有一个主键。主键索引同时可是唯一索引或者全文索引,但唯一索引或全文索引不能共存在同一索引。
#通过修改表结构来创建主键索引
mysql> alter table mytable add primary key(ID);
mysql> desc mytable;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | NULL | |
| username | varchar(16) | NO | | NULL | |
+----------+-------------+------+-----+---------+---

首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇搞定linux上MySQL编程(一):lin.. 下一篇【解决】Mysql字符集问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: