当前位置: 首页 > news >正文

学科专业网站建设免费模板网站都有什么

学科专业网站建设,免费模板网站都有什么,泗洪网站建设,徐州seo关键词目录 1.视图的含义与作用 2.视图的创建与查看 1.创建视图的语法形式 2、查看视图#xff1a; 1.使用DESCRIBE语句查看视图基本信息 2.使用SHOW TABLE STATUS语查看视图基本信息查看视图的信息 3.使用SHOW CREATE VIEW语查看视图详细信息 4.在views表中查看视图详细信息…目录 1.视图的含义与作用 2.视图的创建与查看 1.创建视图的语法形式 2、查看视图 1.使用DESCRIBE语句查看视图基本信息 2.使用SHOW TABLE STATUS语查看视图基本信息查看视图的信息 3.使用SHOW CREATE VIEW语查看视图详细信息 4.在views表中查看视图详细信息 3.视图的修改与更新 1.使用CREATE OR REPLACE VIEW语句修改视图MYSQL中如果要修改视图 2.使用ALTER语修改视图 1、使用UPDATE语句更新视图view_t 2、使用INSERT语句在基本表t中插入一条记录 3、使用DELETE语删除视图view_t2中的一条记录 4.删除视图 5.练习题 1.视图的含义与作用 数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的行和列数据。 行和列数据来自由定义视图查询所引用的表并且在引用视图时动态生成。 在视图中用户可以使用SELECT语查询数据以及使用INSERT、UPDATE和DELETE修改记录。 从MySOL 5.0开始可以使用视图视图可以使用户操作方便而且可以保障数据库系统的安全。 视图的含义 视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样在数据库中再存储一份 通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样可以 对其进行查询、修改和删除。当对通过视图看到的数据进行修改时相应的基本表的数据也要发生变化;同时若基本表的数据发生变化则这种变化也可以自动地反映到视图中。 下面有个student表和stu_info表在student 表中包含了学生的id 号和姓名stu_info 表中包含了学生的id 号、班级和家庭住址而现在公布分班信息只需要id 号、姓名和班 级这该如何解决?通过学习后面的内容就可以找到完美的解决方案。 表设计如下: CREATE TABLE student ( s_id INT, name VARCHAR(40) ); CREATE TABLE stu_info ( s_id INT, glass VARCHAR(40), addr VARCHAR(90) ); 通过 DESC 命令可以查看表的设计可以获得字段、字段的定义、是否为主键、是否 为默认值和扩展信息。 视图提供了一个很好的解决方法创建视图的信息来自表的部分信息只取需要的信息。 这样既能满足要求也不破坏表原来的结构。 视图的作用 与直接从数据表中读取相比视图有以下优点: 1.简单化 看到的就是需要的。视图不仅可以简化用户对数据的理解也可以简化他们的操作。那些被经常使用的查询可以被定义为视图从而使得用户不必为以后的操作每次指定全部的条件 2.安全性 通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见 也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上 但不能授权到数据库特定行和特定的列上。通过视图用户可以被限制在数据的不同 子集上: (1)使用权限可被限制在基表的行的子集上。 (2)使用权限可被限制在基表的列的子集上。 (3)使用权限可被限制在基表的行和列的子集上。 (4)使用权限可被限制在多个基表的连接所限定的行上。 (5)使用权限可被限制在基表中的数据的统计汇总上。 (6)使用权限可被限制在另一视图的一个子集上或是一些视图和基表合并后的子集上 3.逻辑数据独立性 视图可帮助用户屏蔽真实表结构变化带来的影响。 2.视图的创建与查看 1.创建视图的语法形式 创建视图使用CREATE VIEW语句基本语法格式如下: CREATE [OR REPLACE] [ALGORITHM { UNDEFINED | MERGE | TEMPTABLEI] VIEW view_name [ (column list)] AS SELECT_statement [ WITH [CASCADED | LOCAL ] CHECK OPTION] 其中CREATE表示创建新的视图REPLACE表示替换已经创建的视图: ALGORITHM表示视图选择的算法;view_name 为视图的名称 column_list 为属性列;SELECT_statement表示SELECT语句 WITH [CASCADED | LOCAL] CHECK OPTION 参数表示视图在更新时保证在视图的权限 范围之内。 ALGORITHM的取值有3个分别是UNDEFINED|MERGE | TEMPTABLE ,UNDEFINED表示 MySOL将 自动选择算法:MERGE表示将使用的视图语句与视图定义合并起来使得视图定义的某 一部分取代语句对应的部分;TEMPTABLE 表示将视图的结果存入临时表然后用临时表来执行语句。 CASCADED与LOCAL 为可选参数CASCADED 为默认值表示更新视图时要满足所有 相关视图和表的条件; LOCAL表示更新视图时满足该视图本身定义的条件即可。该语句要求具有针对视图的 CREATE VIEW权限以及针对由SELECT语选择的每一列上的某些权限。对于在SELECT 语句中其他地方使用的列必须具有SELECT 权限。如果还有ORREPLACE子句必须在视图上具有DROP权限。 视图属于数据库。在默认情况下将在当前数据库创建新视图。要想在给定数据库中明确创建视图 创建时应将名称指定为db_name.view_name。 在单表上创建视图,MySQL可以在单个数据表上创建视图. 举例 在t表格上创建一个名为view_t的视图代码如下 create table t (qty int, price int); /*创建基本表t*/ insert into t values(3, 50); /*插入记录*/ create view view_t as select qty, price, qty *price from t; /*创建视图view_t*/ select * from view_t; 默认情况下创建的视图和基本表的字段是一样的 也可以通过指定视图字段的名称来创建视图。 举例2在t表格上创建一个名为view_t2的视图代码如下 create view view_t2(qty, price, total ) as select qty, price, qty *price from t; select * from view_t2; 可以看到view_t2和view_t两个视图中字段名称不同但数据却是相同的。 因此在使用视图的时候可能用户根本就不需要了解基本表的结构更接触不到实际表中的数据从而保证了数据库的安全。 在多表上创建视图 MySOL中也可以在两个或者两个以上的表上创建视图可以使用CREATE VIEW语句实 现. 举例 在表student和表stu_info上创建视图stu_glass代码如下 create table student( id int, name char(50) );create table stu_info( id int, glass char(50), place char(50) );insert into student values(1,wanglin1),(2,gaoli),(3,zhanghai); insert into stu_info values(1, wuban,henan),(2,liuban,hebei), (3,qiban,shandong); create view stu_glass (id,name, glass) as select student.id,student.name,stu_info.glass from student,stu_info where student.idstu_info.id; select * from stu_glass; 这个例子就解决了刚开始提出的那个问题通过这个视图可以很好地保护基本表中的 数据。 这个视图中的信息很简单只包含了id、姓名和班级id 字段对应student 表中的s_id 字段 name字段对应student 表中的name 字段glass字段对应stu_info表中的glass 字段。 2、查看视图 查看视图是查看数据库中已存在的视图的定义。查看视图必须要有 SHOW VIEW的权 限MySQL 数据库下的 user 表中保存着这个信息。查看视图的方法包括:DESCRIBE、SHOW TABLE STATUS和SHOW CREATE VIEW本节将介绍查看视图的各种方法。 1.使用DESCRIBE语句查看视图基本信息 DESCRIBE可以用来查看视图具体的语法如下: DESCRIBE 视图名; 举例通过DESCRIBE语句查看视图view_t的定义代码如下 describe view_t; 结果显示出了视图的字段定义、字段的数据类型、是否为空、是否为主/外键、默认值 和额外信息。 DESCRIBE一般情况下都简写成DESC输入这个命的执行结果和输入DESCRIBE的执行 结果是一样的。 2.使用SHOW TABLE STATUS语查看视图基本信息查看视图的信息 可以通过SHOW TABLE STATUS 的方法具体的语法如下: SHOW TABLE STATUS LIKE ‘视图名’ 下面将通过一个例子来学习使用SHOW TABLE STATUS命令查看视图信息代码如下 show table status like view_t \G; show table status like t \G; 执行结果显示表的说明Comment 的值为 VIEW说明该表为视图其他的信息为NULI 说明这是一个虚表。 用同样的语句来查看一下数据表t的信息从查询的结果来看这里的信息包含了存储引擎、创建时间等 Comment 信息为空这就是视图和表的区别。 3.使用SHOW CREATE VIEW语查看视图详细信息 使用SHOW CREATE VIEW语可以查看视图详细定义语法如下: SHOW CREATE VIEW 视图名 ; 举例SHOW CREATE VIEW查看视图的详细定义代码如下 show create view view_t \G; 执行结果显示视图的名称、创建视图的语句等信息。 4.在views表中查看视图详细信息 在MySOL中information_schema数据库下的views 表中存储了所有视图的定义。 通过对 views表的查询可以查看数据库中所有视图的详细信息查询语句如下: select * from information_schema.views \G; 查询的结果显示当前以及定义的所有视图的详细信息在这里也可以看到前面定义的 3个名称为stuglass、viewt和view t2视图的详细信息。 3.视图的修改与更新 修改视图是指修改数据库中存在的视图当基本表的某些字段发生变化的时候 可以通过修改视图来保持与基本表的一致性。 MySOL 中通过CREATE OR REPLACE VIEW语和ALTER语句来修改视图。 1.使用CREATE OR REPLACE VIEW语句修改视图MYSQL中如果要修改视图 语法如下 CREATE [ OR REPLACE ] (ALGORITHM {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS SELECT_statement [WITH [CASCADED | LOCAL ] CHECK OPTION ] 可以看到修改视图的语句和创建视图的语句是完全一样的。当视图已经存在时 修改语句对视图进行修改;当视图不存在时创建视图。下面通过一个实例来说明。 修改视图view_t代码如下 desc view_t; create or replace view view_t as select * from t; desc view_t; 从执行的结果来看。相比原来的视图 view_t新的视图 view_t少了1行数据。 2.使用ALTER语修改视图 ALTER语句是MySOL提供的另外一种修改视图的方法语法如下: ALTER [ ALGORITHM { UNDEFINED | MERGE | EPTABLE}] TVIEW view_name[(column list)] AS SELECT_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 这个语法中的关键字和前面视图的关键字是一样的这里就不再介绍 具体操作举例 使用ALTER语句修改视图view_t代码如下 desc view_t; alter view view_t as select quantity from t; desc view_t; 通过ALTER语句同样可以达到修改视图 view_t的目的 从上面的执行过程来看视图viewt只剩下1个qty字段修改成功。 更新视图 更新视图是指通过视图来插入、更新、删除表中的数据因为视图是一个虚拟表 其中没有数据。通过视图更新的时候都是转到基本表上进行更新的 如果对视图增加或者删除记录,实际上是对其基本表增加或者删除记录。 本节将介绍视图更新的3种方法:INSERT UPDATE和 DELETE。 1、使用UPDATE语句更新视图view_t 代码如下 select * from view_t; /*查看更新之前的视图*/ select * from t; /*查看更新之前的表*/ update view_t set qty5; /*更新视图*/ select * from t; /*查看更新之后的表*/ select * from view_t; /*查看更新之后的视图*/ select * from view_t2; 对视图view_t更新后基本表t的内容也更新了 同样当对基本表t更新后另外一个视图view_t2中的内容也会更新。 2、使用INSERT语句在基本表t中插入一条记录 代码如下 insert into t values(3,5); select * from t; select * from view_t2; 向表t中插入一条记录通过SELECT 查看表t和视图 view_t2可以看到其中的内容也 跟着更新 视图更新的不仅仅是数量和单价总价也会更新。 3、使用DELETE语删除视图view_t2中的一条记录 代码如下 delete from view_t2 where price5; DELETE FROM view_t2 WHERE price5; 执行结果如下: 在视图view_t2中删除price5的记录视图中的删除操作最终是通过删除基本表中相 关的记录实现的 查看删除操作之后的表 t和视图 view_t2可以看到通过视图删除其所依赖的基本表中 的数据。 当视图中包含有如下内容时视图的更新操作将不能被执行: (1)视图中不包含基表中被定义为非空的列。 (2)在定义视图的SELECT语后的字段列表中使用了数学表达式。 (3)在定义视图的SELECT语句后的字段列表中使用聚合函数 (4)在定义视图的SELECT 语中使用了 DISTINCTUNIONTOPGROUP BY HAVING子句。 4.删除视图 当视图不再需要时可以将其删除删除一个或多个视图可以使用 DROP VIEW 语 句语法如下: DROP VIEW [IF EXISTS] view_name[view_name] [RESTRICT | CASCADE] 其中view_name是要删除的视图名称可以添加多个需要删除的视图名称 各个名称之间使用逗号分隔开。删除视图必须拥有DROP权限。 restrict和casecade都是数据库外键约束但它们之间存在一定的区别 restrict是不允许删除或更新一条记录而casecade则是在删除或更新一条记录时 会同时删除或更新所有引用该记录的外键。 举例删除stu_glass视图代码如下 drop view if exists stu_glass; show create view stu_glass; 5.练习题 注意事项 疑问:MySQL中视图和表的区别以及联系是什么? 1.两者的区别 (1)视图是已经编译好的SOL语句是基于SOL语的结果集的可视化的表而表不是 (2)视图没有实际的物理记录而表有。 (3)表是内容视图是窗口。 (4)表占用物理空间而视图不占用物理空间视图只是逻辑概念的存在表可以及时对 它进行修改 但视图只能用创建的语句来修改。 (5)视图是查看数据表的一种方法可以查询数据表中某些字段构成的数据 只是一些 SQL语句的集合。从安全的角度来说视图可以防止用户接触数据表。 (6)表属于全局模式中的表是实表:视图属于局部模式的表是虚表。 (7)视图的建立和删除只影响视图本身不影响对应的基本表。 2.两者的联系 视图(view)是在基本表之上建立的表它的结构(即所定的列)和内容(即所有记录)都来 自基本表 它依据基本表存在而存在。一个视图可以对应一个基本表也可以对应多个基本表。 视图是基本表的抽象和在逻辑意义上建立的新关系。 练习题 (1)如何在一个表上创建视图? create table ts (qty int, price int); /*创建基本表ts*/ insert into ts values(4, 32); /*插入记录*/ create view view_ts as select qty,price,qty*price from ts;/*创建视图view_ts*/ select * from view_ts; /*查看视图 作用是 减少输入操作*/ 默认情况下创建的视图和基本表的字段是一样的 也可以通过指定视图字段的名称来创 建视图。 create view view_ts1(qty,price,total) as select qty,price,qty * price from ts;select * from view_ts1; (2)如何在多个表上建立视图? create table student( id int, name char(50) );create table stu_info( id int, glass char(50), place char(50) );insert into student values(1,wanglin1),(2,gaoli),(3,zhanghai); insert into stu_info values(1, wuban,henan),(2,liuban,hebei), (3,qiban,shandong); create view stu_glass (id,name, glass) as select student.id,student.name,stu_info.glass from student,stu_info where student.idstu_info.id; select * from stu_glass; (3)如何更改视图? 方法一 create or replace view stu_v_1 as select id,name,age from student where id 10; 方法二 alter view stu_v_1 select id,name from student ; (4)如何去查看视图的详细信息? 1.使用DESCRIBE语句查看视图基本信息 describe view_t; 2.使用SHOW TABLE STATUS语查看视图基本信息查看视图的信息 show table status like view_t \G; 3.使用SHOW CREATE VIEW语查看视图详细信息 show create view view_t \G; 4.在views表中查看视图详细信息 select * from information_schema.views \G; (5)如何更新视图的内容? select * from view_t; /*查看更新之前的视图*/ select * from t; /*查看更新之前的表*/ update view_t set qty5; /*更新视图*/ select * from t; /*查看更新之后的表*/ select * from view_t; /*查看更新之后的视图*/ select * from view_t2; 表结构 /*员工人事表*/ create table employee (emp_no char(5) Not null primary key check (emp_no LIKE E% AND LEN(emp_no)5),emp_name varchar(10) Not null,sex char(2) Not null check(sex IN(M,F)),dept varchar(4) Not null,title varchar(6) Not null,date_hired datetime Not null,birthday datetime Null,salary int Not null,addr varchar(50) null ); /*客户表*/ create table customer(cust_id char(5) Not null primary key,cust_name varchar(20) Not null, addr varchar(40) Not null, tel_no varchar(10) Not null, zip char(6) null );/*销售主表*/ create table sales( order_no int Not null primary key,cust_id char(5) Not null,sale_id char(5) Not null,tot_amt numeric(9,2) Not null, order_date datetime Not null,ship_date datetime Not null,invoice_no char(10) UNIQUE );/*销货明细表*/ create table sale_item(order_no int Not null,prod_id char(5) Not null,qty int Not null,unit_price numeric(7,2) Not null,order_date datetime null ); alter table sale_item add primary key(order_no,prod_id); /*产品名称表*/ create table product(prod_id char(5) Not null primary key,prod_name varchar(20) Not null ); 1、利用存储过程给Employee表添加一条业务部门员工的信息。 2、利用存储过程输出所有客户姓名、客户订购金额及其相应业务员的姓名。 3、利用存储过程查找某员工的员工编号、订单编号、销售金额。 4、编写存储过程完成插入一条员工记录判断员工编号是否存在。
http://www.pierceye.com/news/297467/

相关文章:

  • 安徽网站建设开发电话万网 网站模板
  • 网站响应式设计域名注册服务商
  • 焦作公司做网站小程序开发教程视频 推荐
  • php网站做代理服务器室内设计公司招聘
  • 做招标投标网站如何张家口专业做网站公司
  • 做网站广告中敏感词会涉及到工商彩票网站开发. 极云
  • 怎么做网站数据库东莞本地招聘网站有哪些
  • 网站维护中是不是关闭网站了无货源电商软件
  • 用英文字母做网站关键词flash网站建设个人简介
  • 百度做商务网站多少钱wordpress编辑器文字颜色
  • 乌市正规网站建设网站内页301重定向怎么做
  • 手机网站 跳转把开发的网站让外网能访问要怎么做
  • 网站优化建设扬州网站的不同类
  • 为什么做电影网站没有流量仙桃网站设计
  • 个人站长做哪些网站好开发app软件怎么挣钱
  • 求免费网站能看的2021建立网站要什么条件和多少钱
  • 温州网站推广优化wordpress实用的插件
  • 烟台做网站找哪家好企业网站建设品牌
  • 无备案网站做cdnwordpress ishome
  • 国外营销企业网站公司的网站建设服务费
  • 外包做网站的要求怎么写一站式网站建设平台
  • 太原做网站联系方式番禺人才网招聘网
  • 怎样推广一个网站东莞市建设工程检测中心网站
  • 哪个网站做招聘海报比较好搜索公众号
  • 外包给网站建设注意事项营销方法有哪些方式
  • 提供手机网站制作公司网站建设与域名建设
  • 网站建设计入哪个明细科目网站公众号建设工具
  • 自己做公司网站难吗域名备案管局审核要多久
  • 电子商务网站建设花费百度公司的业务范围
  • 虹口网站建设公司在线观看视频网站怎么做