设为首页 加入收藏

TOP

全面掌握Mysql知识点及select支持的运算操作(四)
2015-11-21 02:05:44 来源: 作者: 【 】 浏览:5
Tags:全面 掌握 Mysql 知识点 select 支持 运算 操作
5.6\share\charsets\ |
+--------------------------+-----------------------------------------+

#修改编码方式
mysql> set names 'utf8';
mysql> show variables like 'character%';
+--------------------------+-----------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\MySQL\MySQLServer5.6\share\charsets\ |
+--------------------------+-----------------------------------------+

11)DML语句(select、insert、update、delete),简称CRUD

#插入
mysql> insert into test01(type_name,description) values('综艺','最近更新');

#更新
mysql> update test01 set type_name='电影' where type_name='综艺';

#查询(由于select支持的查询语句非常广,所以后面会单独拿出一篇来写)
mysql> select * from test01 where Id=1;
#查询test01表中有几行记录
mysql> select count(*) from test01;
#注意:count(*)和count(1)时统计包括null的, 而count(列名)不包含null值,且经试验得出count(1)的速度最快(Oracle中也是如此)。

#删除(单删、全删)
mysql> delete from test01 where Id=1 and type_name='电影';
mysql> delete from test01;

#清空数据:Id从1开始
mysql> truncate table user;/*清除user表中所有数据*/

12)注释方式:#、--、/**/


13)表中数据的导入、导出

#查看表test01的数据
mysql> select * from test01;
+----+-----------+-------------+
| Id | type_name | description |
+----+-----------+-------------+
| 1 | 综艺 | 最近更新 |
| 2 | 电影 | 精彩预告 |
+----+-----------+-------------+
#导出:将表test01中的记录导出到f盘的test.txt文件中
mysql> select * from test01 into outfile 'f:\\test.txt';
#导出数据后,清空表test01中的数据
mysql> truncate table test01;
#可以看到,test01表中当前无数据
mysql> select * from test01;
Empty set (0.00 sec)


#导入:将f盘的test.txt文件中备份的数据导入到表test01中
mysql> load data infile 'f:\\test.txt' into table test01;
#可以看到,数据已被导入到表test01中
mysql> select * from test01;
+----+-----------+-------------+
| Id | type_name | description |
+----+-----------+-------------+
| 1 | 综艺 | 最近更新 |
| 2 | 电影 | 精彩预告 |
+----+-----------+-------------+

14)数据库的导入、导出

#导出数据库:-d导出表结构,-t导出数据,不加是导出整个数据库
mysql> mysqldump -uroot -p [-d|-t] dbname [tab_name]>e:\mybk.sql

#导入数据库:
mysql> mysql -uroot -p new_dbname

15)视图View

视图的工作机制: 当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容并没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。从视图的工作机制可以看出:视图是一种虚拟的表,它并没有保存内容,只是引用数据。一般在要经常需要某个查询结果做子查询的时候会使用到视图,注意运行创建/删除视图的语句需要用户具有创建/删除视图的权限。创建视图的语法:create view 视图名 as select 查询语句; 实例说明如下:

mysql> select * from goods;
+----------+------------+------------+--------+
| goods_id | goods_name | shop_price | cat_id |
+----------+------------+------------+--------+
| 1 | 苹果 | 8.80 | 2 |
| 2 | 西瓜 | 2.98 | 2 |
| 3 | 香蕉 | 6.80 | 2 |
| 4 | 白菜 | 1.80 | 1 |
| 5 | 韭菜 | 2.80 | 1 |
| 6 | 茄子 | 1.80 | 1 |
| 7 | 哈密瓜 | 3.80 | 2 |
+----------+------------+------------+--------+

如果要频繁查询某个种类下面的商品平均价格:mysql> select cat_id, avg(shop_price) from goods group by cat_id;
那么我们可以创建针对这种平均价格的视图:mysql> create view avgPrice as select cat_id, avg(shop_price) from goods group by cat_id;
然后我们就可以通过普通的查询语句来简化查询了:
mysql> select * from avgPrice;
+--------+-----------------+
| cat_id | avg(shop_price) |
+--------+-----------------+
| 1 | 2.133333 |
| 2 | 5.595000 |
+--------+-----------------+

可以看到,通过视图我们可以简化查询操作,视图还有一个好处就是可以进行权限控制。比如:对于goods表,我们不想让别人看到我们的销售价格,这时候我们就可以把查看goods表的权限封闭,创建一张视图:mysql> create view base

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

评论

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