解释 SQL 中表、视图和同义词之间的区别
dbmsdatabasebig data analyticsmysql
让我们了解结构化查询语言 (SQL) 中的表、视图和同义词是什么。
表、视图和同义词
表是数据的存储库,在表中它是一个物理实体。表物理上位于数据库中。
视图不是数据库物理表示的一部分。它是预编译的,因此数据检索速度更快,并且还提供了安全的可访问性机制。
同义词是分配给表、视图、序列或程序单元的备用名称。
示例
创建表 employee (empID 整数主键、name varchar2(30)、skill varchar2(30)、salary number(20)、DOB datetime)。
假设有一种情况,即薪水不显示给一组用户,可以创建一个视图来显示允许的信息。
创建视图 emp_some_details as (select empID,name,skill,DOB from employee);
程序
下面给出了一个程序,用于在上述示例的 SQL 中创建表、视图和同义词 −
create table employee (empID integer primary key, name varchar2(30), skill varchar2(30), salary number(20), DOB datetime); insert into employee values(100,'AAA','JAVA',30000,2020-08-20); insert into employee values(101,'BBB','PHP',35000,2020-07-02); select * from employee; create view [salary_hide] as select empID,name,skill,DOB from employee ; select * from salary_hide;
输出
你将得到以下输出 −
100|AAA|JAVA|30000|1992 101|BBB|PHP|35000|2011 100|AAA|JAVA|1992 101|BBB|PHP|2011
视图的优点
使用视图的优点如下 −
它可以访问一个表、多个表、视图、多个视图或这些的组合中的数据。
视图连接到其基表的数据。
提供安全的数据可访问机制。
可以使用 CREATE OR REPLACE VIEW 语句更新视图。
语法如下 −
sql create or replace view view-name As SELECT column1, column2, ... FROM table_name WHERE condition;
要删除视图,我们可以使用 drop view 命令 −
DROP view view-name;
同义词用作分配给表或视图的替代名称。它可用于隐藏实际实体的原始名称和所有者。它通过允许公共访问同义词来扩展表的范围。