精华内容
下载资源
问答
  • 数据表视图中可以进行字段的编辑、添加、删除,记录的删除和数据查找等操作,但使用“数据表”视图建立的表结构,只说明了表中字段名,却没有说明每个字段的数据类型和属性值,也无法修改。相关介绍:视图是从...

    b51a940571e495c911d058635c4b792a.png

    在数据表视图中不能进行的操作是什么?

    在数据表视图中不能进行的操作是修改字段的类型。

    在“数据表”视图中可以进行字段的编辑、添加、删除,记录的删除和数据查找等操作,但使用“数据表”视图建立的表结构,只说明了表中字段名,却没有说明每个字段的数据类型和属性值,也无法修改。

    相关介绍:

    视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。

    视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

    视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。

    视图看上去非常像数据库的物理表,对它的操作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。

    相关推荐:《mysql教程》

    展开全文
  • 简单的联结两个表时,我们只需要使用两个表中的公用字段 另外种外联结,全外联结 左外联结 我们已经知道,如果我们想显示所有订单编号,以及其对应的顾客id,我么可以直接用内联结来实现 SELECT customers.cust_...

    外联结
    两种基本的外联结形式,左外联结和右外联结
    在简单的联结两个表时,我们只需要使用两个表中的公用字段
    另外一种外联结,全外联结

    左外联结
    我们已经知道,如果我们想显示所有订单编号,以及其对应的顾客id,我么可以直接用内联结来实现

    SELECT customers.cust_id,
    		 orders.order_num
    FROM customers,orders
    WHERE customers.cust_id = orders.cust_id
    ORDER BY customers.cust_id;
    

    实现结果如下
    在这里插入图片描述
    我们明显可以发现在cust_id这里,我们缺少了没有下过订单的顾客

    如果我们想显示在orders表中值为null的顾客,我们需要怎么做呢?

    这个时候,我们需要使用外联结

    SELECT customers.cust_id,
    		 orders.order_num,
    		 COUNT(order_num) AS order_times
    FROM customers
     LEFT OUTER  JOIN orders ON customers.cust_id = orders.cust_id
    GROUP BY customers.cust_id;
    

    这段代码和上面的有什么不同之处呢?

     LEFT OUTER  JOIN orders ON customers.cust_id = orders.cust_id
    

    关键字LEFT OUTER JOIN实现了工作关联两个表中没有关联行的的那些行

    customers表中的某位cust从未下过订单,因此在orders表中就没有这位cust的数据,内联无法将这两个表中两行不关联的信息关联起来

    但是使用外联结就可以
    在这里插入图片描述

    我们使用LEFT指定一个在包括其所有行的表单

    在orders表中没有的值,在结果中自动添加上null值代替

    同时我们还在语句中加入聚集函数,统计每个cust的下单总数

    同理,我们也可以使用右外联结

    SELECT customers.cust_id,
    		 orders.order_num
    FROM customers
     RIGHT OUTER JOIN orders ON customers.cust_id =  orders.cust_id;
    

    输出
    在这里插入图片描述

    左外联结和右外联结之间唯一的区别是做关联的表的顺序。或者说,调整from子句和where子句在表中的顺序,左外联结就可以转换成右外联结

    我们来试一下把右外联结变成左外联结

    SELECT customers.cust_id,
    		 orders.order_num
    FROM orders
     LEFT OUTER  JOIN customers ON orders.cust_id = customers.cust_id
    ;
    

    他们的输出是一模一样的
    在这里插入图片描述

    知识记录:在哪里判断左右?
    right指的是在outer join右边的表
    left值得是在outer join左边的表
    ATTENTION!
    总是需要提供联结条件否则会出现笛卡尔积

    组合查询
    UNION关键字

    一些小规则

    使用union必须由两条及其以上的select语句组成,语句之间用关键字union分隔

    union的每个查询必须包含相同的列、表达式或者是聚集函数

    列数据的类型必须兼容

    ATTENTION
    如果结果中由重复的行,在union后将彼此合并,只返回一行

    如果我们想要将查询到的所有行一五一十全部返回,这个时候我们又应该怎么做呢?

    UNION ALL关键字,它可以让数据库返回查询到的所有行,而不消去重复的行

    下面是一个生动的例子

    将两个select语句结合起来,一边从orderitems中检索出产品prod_id和quantity。其中,一个select语句过滤数量为100的行,另一个select语句过滤ID以BNBG开头的产品。按产品ID对结果进行排序。

    SELECT prod_id,
    		 quantity
    FROM orderitems
    WHERE quantity = 100
    UNION 
    SELECT prod_id,
    		 quantity
    FROM orderitems
    WHERE prod_id LIKE 'BNBG%'
    ORDER BY prod_id;
    

    上述语句用在where子句处做修改也可以实现相同的功能

    在这里插入图片描述

    特别需要注意的是,在对union结果进行排序时,能且只能在union的最后一条select语句中进行order by
    如果在多条select语句中进行order by ,查询将会报错

    插入数据
    简单的记录下格式

    insert into [table] 
    values(value1,
    	   value2,
    	   value3);
    
    INSERT INTO customers(cust_id,
    							 cust_name,
    							 cust_address,
    							 cust_city)
    							 VALUES('1000000007',
    							 		  'Alice',
    							 		  'qingyang road 3nd',
    							 		  'chengdu');
    

    更加安全的格式是

    insert into [table](col1,
    					col2,
    					col3,
    					col4)
    values(value1,
    	   value2,
    	   value3,
    	   value4);
    

    这样即使你的表单中列的名字发生变化,语句还是能正常插入数据

    更进一步

    INSERT SELECT将数据添加到一个已经存在的表中

    insert into table1(col1,
    				   col2,
    				   col3)
    select(col1,
           col2,
           col3)
    from table2;
    

    这样操作的前提是table1的结构于table2完全相同

    假设某列不存在与table1中,这样操作无法将table2中某列完全复制到table1 中

    CREATE SELECT将一个表的内容复制到一个全新的表当中

    create table custcopy as select * from custmoers;
    

    更新与删除数据

    UPDATE更新数据表中某行的某些数据

    update table
    set col1=***
    where col* = ***; 
    

    DELETE删除数据表中的某一行或者几行

    delete from table
    where col* = ***;
    

    如果漏写了where子句,将会删除数据表中的每一行

    而除了使用delete语句,使用turncate,drop语句也可以达到相同的效果

    在这里贴上链接做一个记录

    Turncate用法详解

    在删除数据时,如果删除的数据中的主键是另外某张表的外键,则会删除失败
    在这里插入图片描述

    如果坚持删除,需要将两张表中的数据一起删除,则会使用到联级删除

    或者在定义外键时,对update和delete选项进行修改,直接改成CASCADE

    Set NULL : Sets the column value to NULL when you delete the parent table row.
    CASCADE : CASCADE will propagate the change when the parent changes. If you delete a row, rows in constrained tables that reference that row will also be deleted, etc.
    RESTRICT : RESTRICT causes you can not delete a given parent row if a child row exists that references the value for that parent row.
    NO ACTION : NO ACTION and RESTRICT are very much alike. when an UPDATE or DELETE statement is executed on the referenced table, the DBMS verifies at the end of the statement execution that none of the referential relationships are violated. in short child row no concern if parent row delete or update.

    这里还有一种办法
    戳这里--------->外键唯一性检验

    CREATE TABLE
    简单地把格式记录下俩

    create table table1
    (
    	col1 int(4)   not null,
    	col2 char(32) not null,
    	col3 char(50) not null
    );
    

    ALTER TABLE
    简单地自我熟悉下格式

    添加列

    alter table table1
    add col1 char(38);
    

    删除列

    alter table table1
    drop column col1;
    

    视图

    视图的规则与限制

    视图必须唯一命名
    视图可以嵌套
    创建视图必须拥有足够的权限

    一个最常见的视图的应用是隐藏复杂的sql,这些复杂的sql通常涉及到联结

    下面来看下语句

    create view view1 as
    select.......
    from  .......
    where .......
    ;
    
    展开全文
  • 视图中字段就是来自一个或多个数据库中的真实的中的字段。您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的一样。SQL CREATE VIEW 语法CR...

    视图是可视化的表。

    本章讲解如何创建、更新和删除视图。

    SQL CREATE VIEW 语句

    在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

    视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

    您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

    SQL CREATE VIEW 语法

    CREATE VIEW view_name AS

    SELECT column_name(s)

    FROM table_name

    WHERE condition

    注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。

    SQL CREATE VIEW 创建实例

    样本数据库 Northwind 拥有一些被默认安装的视图。

    视图 "Current Product List" 会从 "Products" 表列出所有正在使用的产品(未停产的产品)。这个视图使用下面的 SQL 创建:

    CREATE VIEW [Current Product List] AS

    SELECT ProductID,ProductName

    FROM Products

    WHERE Discontinued=No

    我们可以像这样查询上面这个视图:

    SELECT * FROM [Current Product List]

    Northwind 样本数据库的另一个视图会选取 "Products" 表中所有单位价格高于平均单位价格的产品:

    CREATE VIEW [Products Above Average Price] AS

    SELECT ProductName,UnitPrice

    FROM Products

    WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

    我们可以像这样查询上面这个视图:

    SELECT * FROM [Products Above Average Price]

    Northwind 样本数据库的另一个视图会计算在 1997 年每个种类的销售总数。请注意,这个视图会从另一个名为 "Product Sales for 1997" 的视图那里选取数据:

    CREATE VIEW [Category Sales For 1997] AS

    SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales

    FROM [Product Sales for 1997]

    GROUP BY CategoryName

    我们可以像这样查询上面这个视图:

    SELECT * FROM [Category Sales For 1997]

    我们也可以向查询添加条件。现在,我们仅仅需要查看 "Beverages" 类的销售总数:

    SELECT * FROM [Category Sales For 1997]

    WHERE CategoryName='Beverages'

    SQL 更新视图

    您可以使用下面的语法来更新视图:

    SQL CREATE OR REPLACE VIEW 语法

    CREATE OR REPLACE VIEW view_name AS

    SELECT column_name(s)

    FROM table_name

    WHERE condition

    现在,我们希望向 "Current Product List" 视图添加 "Category" 列。我们将通过下列 SQL 更新视图:

    CREATE VIEW [Current Product List] AS

    SELECT ProductID,ProductName,Category

    FROM Products

    WHERE Discontinued=No

    SQL Server

    ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]

    [ WITH [ ,...n ] ]

    AS select_statement

    [ WITH CHECK OPTION ] [ ; ]

    ::=

    {

    [ ENCRYPTION ]

    [ SCHEMABINDING ]

    [ VIEW_METADATA ]

    }

    schema_name: 视图所属架构的名称。

    view_name: 要更改的视图。

    column: 将成为指定视图的一部分的一个或多个列的名称(以逗号分隔)。

    SQL 撤销视图

    您可以通过 DROP VIEW 命令来删除视图。

    SQL DROP VIEW 语法

    DROP VIEW view_name

    展开全文
  • 《MysqL数据库MysqL中视图的使用及多表INNER JOIN的技巧分享》要点:本文介绍了MysqL数据库MysqL中视图的使用及多表INNER JOIN的技巧分享,...建立数据表时,如果一个表与多个表联接,那么这一个字段必须是...

    《MysqL数据库MysqL中视图的使用及多表INNER JOIN的技巧分享》要点:

    本文介绍了MysqL数据库MysqL中视图的使用及多表INNER JOIN的技巧分享,希望对您有用。如果有疑问,可以联系我们。

    删除视图

    代码如下:

    DROP VIEW view_name

    以下是其它网友的补充:

    查询数据.

    半角标点符号,单词之间留一半角空格;

    在建立数据表时,如果一个表与多个表联接,那么这一个表中的字段必须是“数字”数据类型,而多个表中的相同字段必须是主键,而且是“自动编号”数 据类型.否则,很难联接成功.

    代码嵌套快速方法:如,想连接五个表,则只要在连接四个表的代码上加一个前后括号(前括号加在FROM的后面,后括号加在代码的末尾即可),然后 在后括号后面继续添加“INNER JOIN 表名X ON 表1.字段号=表X.字段号”代码即可,这样就可以无限联接数据表了.

    连接两个数据表的用法:FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

    连接三个数据表的用法:FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号

    连接四个数据表的用法:FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号

    连接五个数据表的用法:FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号

    总结

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    展开全文
  • 新手带你学之SQL 视图(Views)的创建、更新和删除

    千次阅读 多人点赞 2019-07-19 16:03:38
    下面针对SQL视图的创建、更新和删除进行简单...视图中字段就是来自一个或多个数据库中的真实的中的字段。 您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的...
  • 视图中字段就是来自一个或多个数据库中的真实的中的字段。 您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的一样。 SQL CREATE VIEW 语法 CREATE VIEW view_...
  • MySQL视图的创建、修改与删除

    千次阅读 2018-03-30 14:09:31
    视图中字段就是来自一个或多个数据库中的真实的中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的。注释:数据库的设计和结构不会受到视图中的...
  • SQLVIEW(视图

    2018-05-10 09:15:47
    视图中字段就是来自一个或多个数据库中的真实的中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的。注释:数据库的设计和结构不...
  • MySQL视图

    2019-07-16 17:44:48
    视图是种为了安全考虑的策略,对于部分字段不想被看到,就在视图中去掉这个字段。 视图的特点: 视图的列可以来自不同的 视图是基本的抽象 视图的建立和删除不影响原 视图内容更新影响原 当视图...
  • 视图中字段就是来自一个或多个数据库中的真实的中的字段。 您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的一样。 SQL CREATE VIEW 语法 CREATE VIEW ...
  • 更新视图是指通过视图,来更新、插入、删除基本中的数据因为,视图是一个虚拟,其中没有数据,所以,当通过视图更新数据时,其实,是更新基本中的数据,如果对视图中数据进行增加,或者删除操作时,实际上...
  • 我们操作一个数据库时,有些字段的值我们不想让别人看到,比如工资,以及一些隐私内容。这时候视图就应运而生了。视图就是一个存在数据库的虚拟。 二、视图的创建 create view view_name as select 语句;...
  • 今天遇到一个很棘手的问题,想临时存起来一部分数据,然后再读取。我记得学数据库理论课老师...A、临时再断开于mysql的连接后系统会自动删除临时表中数据,但是这只限于用下面语句建立的:1)定义字段CREATE TE...
  • 今天遇到一个很棘手的问题,想临时存起来一部分数据,然后再读取。我记得学数据库理论课老师...A、临时再断开于mysql的连接后系统会自动删除临时表中数据,但是这只限于用下面语句建立的:1)定义字段CREATE TE...
  • mysql 视图

    2018-06-13 19:06:50
    视图中字段就是来自一个或多个数据库中的真实的中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的。注释:数据库的设计和结构不会受...
  • MySQL更新视图

    万次阅读 2017-07-29 23:58:44
    是指通过视图,来更新、插入、删除基本中的数据因为,视图是一个虚拟,其中没有数据,所以,当通过视图更新数据时,其实,是更新基本中的数据,如果对视图中数据进行增加,或者删除操作时,实际上是对其...
  • mysql-视图

    2017-06-08 22:23:00
    视图视图从已经存在的表中导出,还可以从已经存在的视图导出,数据库只保存视图的定义,而没有存放... 如果需要经常查询多个的制定字段数据可以在这些上建立一个视图。 MySQL的视图不支持输入参数...
  • 视图中字段一个或多个数据库中真实中的字段。您可以添加 SQL 函数,哪里添加,并将语句连接到视图,或者您可以呈现数据,就像数据来自单个一样。CREATE VIEW 语法CREATE VIEW view_na...
  • phpMyAdminMySQL和MariaDB上支持多种操作,可以直接用户界面执行常用操作,如:浏览/删除/创建/复制/删除/重命名和更改数据库、视图字段和索引,管理MySQL用户帐户和权限等,也可以直接执行SQL语句。...
  • sql 视图

    2012-04-13 16:12:20
    视图中字段就是来自一个或多个数据库中的真实的中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的。 注释:数据库的设计和结构不会受到视
  • 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和...
  • 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和...
  • 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和...
  • 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和...
  • SQL 如何创建视图

    2017-08-10 11:28:14
    视图是可视化的。 本章讲解如何创建、更新...视图中字段就是来自一个或多个数据库中的真实的中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的
  • 视图中字段就是来自一个或多个数据库中的真实的中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的。 数据库的设计和结构不会受到视图中的函数、...
  • SQL 视图(Views)

    2020-12-31 00:42:24
    视图中字段就是来自一个或多个数据库中的真实的中的字段。 您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的一样。 SQL CREATE VIEW 语法 CREATE VIEW ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 293
精华内容 117
关键字:

在数据表视图中可以删除一个字段