SQL查询技巧汇总:数据表、权限与索引操作

需积分: 8 2 下载量 50 浏览量 更新于2024-10-03 收藏 11KB TXT 举报
本文档主要介绍了SQL(Structured Query Language)在数据库管理中的常用查询语句,适用于Oracle数据库环境。以下是一系列SQL查询示例,它们涵盖了用户权限、数据表、索引、对象信息以及特定条件下的统计分析。 1. 全表查询与字符串搜索: - `SELECT * FROM dictionary WHERE instr(comments, 'index') > 0;`:此查询用于查找comments字段中包含"index"的记录,常用于文本搜索或关键词检测。 2. 数据表列和元数据: - `SELECT column_name, comments FROM dict_columns WHERE table_name = 'USER_INDEXES';`:提取特定表(如USER_INDEXES)的相关列名和注释信息。 3. 用户账户信息: - `SELECT username, default_tablespace FROM user_users;`:获取用户的用户名和默认表空间。 - `SELECT * FROM user_role_privs;`:查看用户角色权限。 - `SELECT * FROM user_sys_privs;`:获取系统权限信息。 - `SELECT * FROM user_tab_privs;`:查看用户对表的访问权限。 4. 表和存储信息: - `SELECT * FROM user_tables WHERE instr(cache, 'Y') > 0;`:筛选出已缓存的数据表。 - `SELECT object_name, created FROM user_objects WHERE object_name = UPPER('&table_name');`:查询特定表名创建的时间。 - `SELECT sum(bytes)/(1024*1024) as "size(M)" FROM user_segments WHERE segment_name = UPPER('&table_name');`:计算表占用的存储空间以MB为单位。 5. 索引查询与统计: - `SELECT index_name, index_type, table_name FROM user_indexes ORDER BY table_name;`:列出所有索引及其类型和关联的表,按表名排序。 - `SELECT * FROM user_ind_columns WHERE index_name = UPPER('&index_name');`:查询指定索引的列信息。 - `SELECT sum(bytes)/(1024*1024) as "size(M)" FROM user_segments WHERE segment_name = UPPER('&index_name');`:同样用于计算索引占用的存储空间。 6. 序列查询: - `SELECT * FROM user_sequences;`:获取序列对象的详细信息,包括序列名称和最后更新的值。 7. 视图查询: - 文档未提供具体的视图查询示例,但可以推测会有类似的查询结构,例如:`SELECT view_name FROM user_views WHERE view_name LIKE '%your_view_pattern%'`,用于检索符合模式的视图名称。 这些SQL查询语句展示了在日常数据库管理中如何使用SQL进行数据检索、权限检查、性能分析等操作。熟练掌握这些查询将有助于更有效地管理和维护Oracle数据库。