数据库——视图view

view:
可以认为是一种虚拟表,它可以在多张表之间建立一个虚拟表。
作用:
方便操作数据库,简化SQL语句的编写。
假设:
商品列表:需要商品名字,价格,图片
use mybatis ;
select p.pid,p.pname,p.price.i,name from product p,imges i where p.pid=i.pid;

创建视图的方式:
Create view v_product_image
as
select p.pid,p.pname,p.price.i,name from product p,imges i where p.pid=i.pid;
查看视图结构
desc v_product_image;
要想查询和
select p.pid,p.pname,p.price.i,name from product p,imges i where p.pid=i.pid;
一样的数据,只需要:
select * from v_product_image

vie视图只是一张虚拟表,数据实际还是存储在原本的表内,同过视图修改数据,其实也就是将表中的的数据修改了。
update v_product_image set pid = 1005 where pid = 1001;
我们的v_product_image 视图中的pid来着product表,所以这条修改语句将会将product表中pid=1001的数据的pid改为1005;
所以,对视图进行修改操作,就会对对应的表修改,对表进行修改操作也会对对应的视图进行修改。

注意:
视图不可以进行删除操作。
视图不要用的太多,尽量少用。

### MySQL创建表 在MySQL里,创建表借助`CREATE TABLE`语句实现。基本语法如下: ```sql CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... table_constraints ); ``` - `table_name`:要创建的表的名称。 - `column1, column2, ...`:表中的列名。 - `datatype`:列的数据类型,如`INT`、`VARCHAR`、`DATE`等。 - `constraints`:列的约束条件,如`NOT NULL`、`PRIMARY KEY`、`UNIQUE`等。 - `table_constraints`:表级约束条件。 示例,创建一个名为`employees`的表: ```sql CREATE TABLE employees ( id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, hire_date DATE ); ``` 此表有`id`、`first_name`、`last_name`和`hire_date`四列,其中`id`为自增主键。 ### MySQL创建视图 视图是虚拟表,其内容由查询定义。创建视图使用`CREATE VIEW`语句,基本语法如下: ```sql CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition; ``` - `view_name`:要创建的视图的名称。 - `column1, column2, ...`:要在视图中显示的列。 - `table_name`:数据来源的表。 - `condition`:可选的筛选条件。 示例,基于`employees`表创建一个视图,仅显示员工的`id`和`first_name`: ```sql CREATE VIEW employee_names AS SELECT id, first_name FROM employees; ``` ### MySQL数据库创建视图 若需从不同数据库的表创建视图,可在查询里指定数据库名。示例如下: ```sql CREATE VIEW cross_db_view AS SELECT `u`.`id` AS `id`, `u`.`username` AS `username`, `o`.`name` AS `name` FROM (`tb_user` `u` LEFT JOIN `cloud_order`.`tb_order` `o` ON ((`o`.`user_id` = `u`.`id`))); ``` 此视图从`tb_user`表和`cloud_order`数据库中的`tb_order`表获取数据 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值