ag娱乐平台
你好,游客 ag娱乐平台登录 注册
背景:
阅读新闻

MySQL视图基本操作

[日期:2019-04-14] 来源:Linux社区  作者:webDepOfQWS [字体: ]

1、准备工作

ag娱乐平台,  广东移动副总经理高志兴在“移动信息化论坛”上说,随着移动通信的发展,人们已不满足于“手机只能打电话”,移动通信网+互联网为人们打开了一个无限宽广的信息大世界,给我们提供了一个前所未有的信息大。

  搭建这种随需应变、集成式的基础设施是一个空前的挑战,同时也蕴含着巨大的。要实现这些目标,给企业带来灵活性,使它们能够快速改进并重组业务流程的软件至关重要。0胜7负!骑士本赛季已被西部列强打出心理阴影  上海交大日本研究中心主任王少普12日在接受《环球时报》记者采访时表示,皮尤的这个调查结果比较客观地反映了中国、韩国与日本关系的实际情况。王少普认为,日本政府在对历史的认识与德国相比有很大的差距,因此日本民众在历史问题上的认识,以用青年历史观的构筑等都有很大欠缺。王少普说,随着时间的流逝,日本国内那段历史的见证者越来越多离世,日本民众对侵略真相的了解也就越来越少,而安倍等政客在历史问题的言行以及针对历史教育的措施,使日本青年与历史真相渐行渐远。事实上,中国与韩国只是希望日本能直面历史真相,这不是宣传仇恨,而是让其吸取教训。【环球时报驻韩国、日本、德国记者 万宇 王刚 文玉 李珍 青木●记者 邱永峥】

在MySQL数据库中创建两张表balance(余额表)和customer(客户表)并插入数据。

create table customer(
    id int(10) primary key,
    name char(20) not null,
    role char(20) not null,
    phone char(20) not null,
    sex char(10) not null,
    address char(50) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

#外键为customerId
create table balance(
    id int(10) primary key,
    customerId int(10) not null,
    balance DECIMAL(10,2),
    foreign key(customerId) references customer(id) 

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

向客户表和余额表中各插入3条数据。

insert into customer values(0001,"xiaoming",'vip1','12566666','male','江宁区888号');
insert into customer values(0002,"xiaohong",'vip10','15209336760','male','建邺区888号');
insert into customer values(0003,"xiaocui",'vip11','15309336760','female','新街口888号');

insert into balance values(1,0001,900.55);
insert into balance values(2,0002,900.55);
insert into balance values(3,0003,10000);

2、视图简介

视图可以简单理解成虚拟表,它和数据库中真实存在数据表不同,视图中的数据是基于真实表查询得到的。视图和真实表一样具备相似的结构。真实表的更新,查询,删除等操作,视图也支持。那么为什么需要视图呢?

a、提升真实表的安全性:视图是虚拟的,可以只授予用户视图的权限而不授予真实表的权限,起到保护真实表的作用。
b、定制化展示数据:基于同样的实际表,可以通过不同的视图来向不同需求的用户定制化展示数据。
c、简化数据操作:适用于查询语句比较复杂使用频率较高的场景,可以通过视图来实现。
......

需要说明一点的是:视图相关的操作需要用户具备相应的权限。以下操作使用root用户,默认用户具备操作权限。

创建视图语法

create view <视图名称>  as <select语句>;

修改视图语法

修改视图名称可以先删除,再用相同的语句创建。

#更新视图结构
alter view <视图名称>  as <select语句>;
#更新视图数据相当于更新实际表,不适用基于多表创建的视图
update ....

注意:部分视图的数据是无法更新,也就是无法使用update,insert等语句更新,比如:

a、select语句包含多个表
b、视图中包含having子句
c、试图中包含distinct关键字
......

删除视图语法

drop view <视图名称>

3、视图的操作

基于单表创建视图

mysql> create view  bal_view 
    -> as
    -> select * from  balance;
Query OK, 0 rows affected (0.22 sec)

创建完成后,查看bal_view的结构和记录。可以发现通过视图查询到数据和通过真实表查询得到的结果完全一样。

#查询bal_view的结构
mysql> desc bal_view;
+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| id         | int(10)       | NO   |     | NULL    |       |
| customerId | int(10)       | NO   |     | NULL    |       |
| balance    | decimal(10,2) | YES  |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+
3 rows in set (0.07 sec)
#查询bal_view中的记录
mysql> select  * from bal_view;
+----+------------+----------+
| id | customerId | balance  |
+----+------------+----------+
|  1 |          1 |   900.55 |
|  2 |          2 |   900.55 |
|  3 |          3 | 10000.00 |
+----+------------+----------+
3 rows in set (0.01 sec)

通过创建视图的语句不难得出结论:当真实表中的数据发生改变时,视图中的数据也会随之改变。那么当视图中的数据发生改变时,真实表中的数据会变化吗?来实验一下,修改id=1的客户balance为2000。

mysql> update bal_view set balance=2000 where id=1;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0

来看一下真实表balance中的数据。

mysql> select  * from bal_view where id=1;
+----+------------+---------+
| id | customerId | balance |
+----+------------+---------+
|  1 |          1 | 2000.00 |
+----+------------+---------+
1 row in set (0.03 sec)

结论:视图表中的数据发生变化时,真实表中的数据也会随之改变。

基于多表创建视图

创建视图cus_bal,共两个字段客户名称和余额。

mysql> create view cus_bal
    -> (cname,bal)
    -> as
    -> select customer.name,balance.balance from customer ,balance
    -> where customer.id=balance.customerId;
Query OK, 0 rows affected (0.05 sec)
#查看cus_bal中的数据
mysql> select *  from  cus_bal;
+----------+----------+
| cname    | bal      |
+----------+----------+
| xiaoming |  2000.00 |
| xiaohong |   900.55 |
| xiaocui  | 10000.00 |
+----------+----------+
3 rows in set (0.28 sec)

修改视图

将cus_bal视图中的cname改成cusname。

mysql> alter view  cus_bal
    -> (cusname,bal)
    -> as
    -> select customer.name,balance.balance from customer ,balance
    -> where customer.id=balance.customerId;
Query OK, 0 rows affected (0.06 sec)
#查看修改后视图结构。
mysql> desc  cus_bal;
+---------+---------------+------+-----+---------+-------+
| Field   | Type          | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| cusname | char(20)      | NO   |     | NULL    |       |
| bal     | decimal(10,2) | YES  |     | NULL    |       |
+---------+---------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

修改基于多表创建的视图

mysql> insert into cus_bal(cusname,bal) values ("ee",11);
ERROR 1393 (HY000): Can not modify more than one base table through a join view 'rms.cus_bal'

删除视图

删除视图cus_bal

drop view cus_bal;
mysql> drop view cus_bal;
Query OK, 0 rows affected (0.00 sec)

Linux公社的RSS地址ag娱乐平台/wwwc0b7linuxidcc0b7com/rssFeed.aspx

本文永久更新链接地址ag娱乐平台/wwwc0b7linuxidcc0b7com/Linux/2019-04/158098.htm

linux
相关资讯       MySQL视图 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
紫光股份发布公告:董事长赵伟国因工作繁忙辞职 网易高管解读财报:在游戏研发上采取齐头并进策略 夫妻双双强行闯卡 妻子掌掴交警:我就打你咋地 俄媒:俄舰艇落后中国太多 建议俄买中国054A护卫舰 费德勒58分钟速扫对手 晋级印第安维尔斯赛16强 解放军能否停靠台湾军港或机场 台军称人道救援可以 全国首位“70后”省级常委有了新职(图) 人物-肖博文拒绝昙花一现:十年饮冰?难凉热血 腾讯世界AI赛星阵淘汰美国团队 决赛会师绝艺 白边22+13热火遭大逆转 老大回归篮网止3连败 一个中国人的伊拉克战后见闻:平静表象下的创伤 建筑工中5800万与妹平分 10天内2剧情神相似?
汶川10年救灾干部:5人升省部级 13人升地市领导 中国足坛名宿告诉你如何培养孩子对足球的兴趣 跑1小时多活7小时?跑步为什么会这么神奇 上海“独角兽”公司数量全国第二 大部分背后是BAT 有了这组卫星 你拨叫的用户不在服务区将成历史 经济萧条政治陷僵局 150万意大利人选择逃离 板门店出局 特朗普将在3天内公布“特金会”地点 写字楼保安让外卖员在烈日下等待? 管理方回应 中国铁塔据悉融资69亿美元 势为两年来全球最大IPO 美国航母卡尔-文森号抵达越南 将停靠岘港 三星收购人工智能搜索引擎公司Kngine 提升Bixb… 杭州即日起市区范围实施公证摇号售房
“中国芯”艰难突围路:武汉新芯十一年终扭亏 意甲-悍将破门蒙托利沃染红 AC米兰补时失球客平 7年跟他说了不超5个字!卡哇伊这已不能叫沉默 美国里根号航母完成为期2月巡航任务 返回横须贺 瓜达尔港开通集装箱班轮航线 连通巴基斯坦和中东 3巨头70分+全队16三分!这才是真正的争冠山东 朋友圈发照片要小心 你的私照有可能在网上被出售 新西兰央行行长:希望在加息前看到核心通胀升温 澳专家:贸易上美国应被孤立 而不是被迁就 京东获批首个国家级无人机物流配送试点企业 3场起步!新赛季处罚从严从重 将推新版纪律准则 全卖了!麦蒂狠批骑士 除了老詹只有1个非卖品 中农办主任解读一号文件:乡村振兴是长期历史任务 ag娱乐平台