数据库查询视图
- 格式:doc
- 大小:53.50 KB
- 文档页数:3
常⽤查询Oracle的表,视图,存储过程,⽤户等SQL命令有时候需要导出某⽤户下的所有table、view、sequence、trigger等信息,下⾯的SQL可以将这些信息select出来:select * from user_tables;select * from user_views;select * from user_sequences;select * from user_triggers;查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看⽤户下所有的表 SQL>select * from user_tables;1、⽤户 查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显⽰当前会话所具有的权限 SQL>select * from session_privs; 显⽰指定⽤户所具有的系统权限 SQL>select * from dba_sys_privs where grantee=’GAME’;2、表 查看⽤户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,’LOG’)>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper(‘&table_name’); 查看某表的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&table_name’); 查看放在ORACLE的内存区⾥的表 SQL>select table_name,cache from user_tables where instr(cache,’Y')>0;3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper(‘&index_name’); 查看索引的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&index_name’);4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences;5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩ SQL>select text from user_views where view_name=upper(‘&view_name’);6、同义词 查看同义词的名称 SQL>select * from user_synonyms;7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper(‘&table_name’); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper(‘&table_owner’) and c.table_name = upper(‘&table_name’) and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type=’FUNCTION’; SQL>select object_name,status from user_objects where object_type=’PROCEDURE’; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper(‘&plsql_name’);。
oracle查询视图sql语句Oracle数据库查询视图(Views)是一种可以把一张表中的数据提取出来并根据不同的筛选条件进行展示的功能。
它是Oracle数据库及其他大多数关系型数据库管理系统的主要功能之一。
视图可以用来查询数据库中的数据,提供更加清晰、方便的结果。
本文将从视图的定义和用处、构建视图的SQL语句构造和使用步骤四个方面来讲解Oracle查询视图的SQL语句。
一、视图的定义和用处视图是一种通过单独的一条SQL语句从表中提取数据的一种特殊方式,它可以看作一个虚拟表,是Oracle数据库中一种重要的功能,它可以安全而有效地把多张表中的数据汇总到一张表或视图中,使得数据存取更加方便、快捷。
视图带来了便利:1、可以给用户提供更合理的数据存取界面,可以把复杂的表和表之间的关系转化成一个简单的视图或表。
2、可以保证安全,可以利用视图的特性保证基本表的安全,视图可以按照设计者的要求隐藏部分数据,提高数据的安全性。
3、可以提供表的相关性,可以通过创建视图来查看数据库中不同表之间的数据细节,从而帮助我们了解数据库中不同表之间的相关活动。
二、构建视图的SQL语句构造1、用SQL命令 CREATE VIEW建视图,CREATE VIEW句的格式为: CREATE VIEW view_name ASSELECT column1,column2…FROM table_nameWHERE [condition];2、用SQL语句 DROP VIEW除视图,DROP VIEW句的格式为:DROP VIEW view_name;3、用SQL语句 ALTER VIEW改视图,ALTER VIEW句的格式为: ALTER VIEW view_name ASSELECT column1,column2…FROM table_nameWHERE [condition];三、使用步骤在使用 Oracle询视图SQL语句时,可以按照以下步骤进行:1、利用CREATE VIEW语句创建一个视图,并为其设置标准名称。
实验四数据库的查询和视图T4.1 数据库的查询1.目的与要求(1)掌握select语句的基本语法;(2)掌握子查询的表示(3)掌握连接查询的表示(4)掌握select语句的group by子句的作用和使用方法(5)掌握select语句的order by子句的作用和使用方法2 实验准备(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUPBY子句的作用和使用方法;(6)了解SELECT语句的ORDERBY子句的作用;3实验内容SELECT语句的基本使用。
①对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在查询分析器中输入如下语句并执行:USEYGGLGOSELECT *FROM Employees【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。
用SELECT语句查询Employees表中每个雇员的地址和电话。
新建一个查询,在查询分析器中输入如下语句并执行:Use YGGLGOSELECT Address PhoneNumberFROM Employees【思考与练习】a.用SELECT语句查询Deparments和Salary表的一列或若干列。
b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。
c.查询EmployeeID为000001的雇员的地址和电话。
Use YGGLGOSELECT Address PhoneNumberFROM EmployeesWHERE EmployeeID=’000001’【思考与练习】a.查询月收入高于2000元的员工号码。
b.查询1970年以后出生的员工的姓名和住址。
c.查询所有财务部的员工的号码和姓名。
查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
oracle查询视图sql语句在Oracle数据库中,查询视图SQL语句可以帮助我们快速查询出符合条件的数据。
它可以实现检索出表中所有字段或者指定字段,筛选出满足条件的数据,有助于我们快速查找所需数据,更有助于数据分析和报表制作。
本文将介绍Oracle查询视图SQL语句的语法及具体应用,以及相关技巧,从而帮助读者更好的使用Oracle查询视图的SQL语句。
一、Oracle查询视图的SQL语句1.法Oracle查询视图的SQL语句的基本语法为:SELECT [字段列表]FROM图名[WHERE件][GROUP BY段][HAVING件][ORDER BY段][LIMIT数][OFFSET移量]①字段列表:SELECT子句中使用有逗号分隔的字段名称,如果为空,表示查询出所有字段②视图名:包含有查询视图的名称,多个视图可使用JOIN关键字进行连接③WHERE条件:查询条件,可以使用各种比较运算符和逻辑运算符进行条件组合④GROUP BY字段:分组字段,使用逗号分隔多个字段⑤HAVING条件:分组条件,和WHERE条件一样,也可以使用各种比较运算符和逻辑运算符进行组合⑥ORDER BY字段:排序字段,使用有逗号分隔的字段名称或字段序号,DESC表示降序,ASC表示升序⑦LIMIT行数:限制返回行数,指定查询结果的最大行数⑧OFFSET偏移量:偏移量,指定返回结果从查询结果的第几行开始2.体应用(1)索表中所有字段:SELECT * FROM图名;(2)索指定字段:SELECT段1,段2,段3 FROM图名;(3)选数据:SELECT段1,段2,段3 FROM图名 WHERE件;(4)组统计:SELECT段1,段2,合函数(字段3) FROM图名 GROUP BY段1,段2;(5)合筛选:SELECT段1,段2,合函数(字段3) FROM图名 WHERE 件 GROUP BY段1,段2 HAVING件;(6)序:SELECT段1,段2,段3 FROM图名 ORDER BY段1 ASC,段2 DESC;(7)页:SELECT段1,段2,段3 FROM图名 LIMIT 10 OFFSET 20;三、Oracle查询视图的技巧1.化复杂查询通过JOIN和子查询,可以将复杂的查询变得简单并提高查询性能。
第二章数据的查询的视图
实验指导书
实验目标:
查询语句的编写和视图的创建。
第一部分练习指导(50分钟)
联系1:测试ROWID和ROWNUM伪列
问题:
用户表没有建立主键约束而插入了重复的记录,为了解决数据冗余问题,必须删除表中的重复记录,用户应用程序之、只关心查询结果集中的一部分,需要限制查询返回的行数。
分析:
Oracle 的RowID伪列可以唯一地标识表中的一行,可以利用ROWID删除表中重复的记录。
ROWNUM伪列返回查询结果集中行的序号,可以通过ROWNUM限制查询返回的行数。
解决方案:
(1)启动 SQL *Plus,并登录到数据库。
(3)测试ROWID伪列。
可以看到每个行的ROWID值都是不同的。
现在删除第三行。
在次执行查询语句,就可以看到第三条记录已经被删除。
由此可见,即使不定义主键,Oracle也可以唯一区分表中的行,因为ROWID可以当作表的主键。
(4)测试ROWNUM伪列。
上述命令返回两条记录。
可以看出,使用ROWNUM 伪列可以实现类似SQL SERVER 中的TOP N功能。
练习2:使用select语句创建表
问题:
假如scott用户下的表emp要做比较大的调整。
Select语句可以与其它表中的重要的记录做一个副本。
分析:
Select 语句可检索存储在数据库中的数据。
Select 语句还可以与其它的DDL 和DML语句一起使用来执行各种操作,如创建表、插入记录和指定列的别名等。
解决方案:
(1)创建表emp表的副本,但不包含表中的记录。
(2)使用select 语句选择记录并插入到另一个表中。
练习3: 使用子查询
问题
编写sql语句,查询出工资比blake高的员工的信息。
解决方案
(1)先查询出blake的工资。
(2)利用where条件筛选出比blake的工资高的员工的信息。
(3)在sql提示符下输入一下命令,查看结果。
select * from emp where sal > (select sal from emp where ename='BLAKE');
第二部分练习(50分钟)
1.使用上一次练习中创建的三个表,查询出所有数学考试成绩都在60分以上的学生的名字和所在班级。
分析:
(1)在成绩表中查询出数学成绩在60分以上的学生。
(2)利用where语句在学生信息表中筛选出这些学上的信息。
2.利用学生信息表创建一个视图,只显示学生的姓名和年龄。
3.创建一个视图,显示学生的姓名和平均成绩,并按照分数升序排列。
提示:使用 A VG 函数和 ORDER BY 子句.
4. 编写语句以显示vendor_master表中vencode,venname 和venadd列,如果veradd列问空,则该语句显示venadd1,否则显示veradd2.
提示:使用NVL2函数
第三部分作业
1.按照第二部分练习1的要求创建一个视图。
2.编写一个sql语句,查询出所有平均分数在70和80分之间的学生信息。
3.编写一个sql语句,查询出某一个班所有课程的平均分数。
编写语句以显示order_master表中的订单的orderno,同时要显示系统日期与该订单的del_date的月份数差值,将该值四舍五入显示月份数。