`
puppy117
  • 浏览: 52180 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

查找没有主键的表、没有索引的表

    博客分类:
  • SQL
 
阅读更多
-- 1、查找没有主键的表、没有索引的表

SELECT  so.name as '没有主键的表'
FROM sysobjects so
WHERE so.xtype = 'U'
    AND OBJECTPROPERTY(so.id , 'TableHasPrimaryKey' ) = 0
ORDER BY name

SELECT so.name as '没有索引的表'
FROM sysobjects so
WHERE so.xtype = 'U'
    AND OBJECTPROPERTY(so.id , 'TableHasIndex' ) = 0
ORDER BY name


--2、查看数据库用户表使用了哪些数据类型

select d.* , b.[name]   as '数据类型' from  ( select distinct a.xusertype  from syscolumns as a where a.id in
(select id from sysobjects where xtype='u' and status>0  ) )as d  left join systypes as b
on d.xusertype=b.xusertype

--3、看使用nvarchar类型的用户表名和字段名称  xusertype 具体数值看当前数据库中系统表systypes中的记录
select   sc.name as '字段名称' , so.name as '表名' from syscolumns sc  inner join
  sysobjects so on sc.id=so.id  where sc.id in
( select id from sysobjects where xtype='u' and status>0 )
and sc.xusertype=231 order by so.name ,sc.colid

--4、查看数据库中使用外键和被引用的表

SELECT so1.name AS '外键表', so2.name AS '引用表', sc1.name AS '外键字段',
      sc2.name AS '引用字段'
FROM sysforeignkeys sf INNER JOIN
      sysobjects so1 ON sf.fkeyid = so1.id INNER JOIN
      sysobjects so2 ON sf.rkeyid = so2.id INNER JOIN
      syscolumns sc1 ON sf.fkeyid = sc1.id AND sf.fkey = sc1.colid INNER JOIN
      syscolumns sc2 ON sf.rkeyid = sc2.id AND sf.rkey = sc2.colid
分享到:
评论

相关推荐

    数据库,索引,主键,约束,sql

    数据库管理系统(DBMS)在创建索引后,可以通过索引直接查找数据,而不是扫描整个表。常见的索引类型包括B树索引、位图索引和哈希索引,每种都有其适用场景和性能特点。 主键是表中的一个或一组字段,用于唯一标识...

    行业-67 基于主键的索引是如何设计的,以及如何根据主键索引查询?l.rar

    1. 直接定位:当使用主键进行等值查询时,数据库可以直接通过主键索引找到对应的数据行,无需扫描整个表,大大提高了查询速度。 2. 范围查询:对于B+树结构,由于键值有序,范围查询只需访问索引的一部分,而非全表...

    MySql练习4:创建学生表和成绩表索引并查看索引.zip

    - **主键索引(PRIMARY KEY)**:一个表只能有一个主键,它既是唯一索引也是非空索引。 - **普通索引(INDEX)**:最基础的索引,没有唯一性限制。 - **全文索引(FULLTEXT)**:适用于大文本字段,用于全文搜索...

    67 基于主键的索引是如何设计的,以及如何根据主键索引查询?l.pdf

    主键索引是一种特殊类型的索引,它能够确保表中每条记录都有一个唯一标识,并且主键索引可以快速定位数据行。 主键索引的设计,通常采用一种称为索引目录的数据结构,其目的是为数据库中的数据页建立一种快速查找的...

    MySQL索引之主键索引

    查询性能方面,InnoDB中主键索引通常比唯一索引更快,因为主键索引可以直接访问数据,而唯一索引需要额外的查找步骤。对于非主键索引,查询效率更低,因为它可能需要多次查找以确定所有匹配的记录。在测试中,对于...

    70 针对主键之外的字段建立的二级索引,又是如何运作的?l.pdf

    一个表中可以有多个索引,但主键索引是特别的,因为它是唯一的且不允许为空。除了主键索引之外,我们还可以创建二级索引,也就是所谓的辅助索引,来加速基于非主键字段的查询。 在InnoDB存储引擎中,默认创建了基于...

    oracle删除表空间出现”无法删除用于强制唯一主键的索引“解决方法[参照].pdf

    Oracle 删除表空间出现“无法删除用于强制唯一主键的索引”解决方法 在 Oracle 数据库中,删除表空间时可能会出现“无法删除用于强制唯一主键的索引”的错误。这种情况下,无法删除表空间,需要找到解决方法。在...

    ARTools.Oracle抽取指定库的主键、外键、索引

    另附以下功能 * 生成目录树 * 生成迁移脚本 * 查找所有System.out,.err * 批量替换多关键字 详情见 http://blog.csdn.net/amosryan/article/details/6684465

    MySql索引详解,索引可以大大提高MySql的检索速度

    打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到...

    数据库用索引为什么比不用索引更快

    主键索引不允许有空值,并且一个表只能有一个主键。 2. 唯一索引:与主键索引类似,它也确保索引字段的值唯一,但并不强制作为主键。 3. 普通索引(非唯一索引):允许索引字段的值重复,是最基础的索引类型。 4....

    数据库主键生成资料资源

    5. 效率:为了快速查找和访问,主键通常被设置为索引,因此选择合适的数据类型和设计可以提高查询性能。 数据库主键的生成方式多种多样,常见的包括: 1. 自动递增:在许多数据库系统中,如MySQL的`AUTO_INCREMENT...

    MySQL Innodb 索引原理详解

    - **非聚簇索引**:非主键索引是非聚簇索引,它们并不决定表中数据的物理存储顺序。 ##### 2.4 插入与删除 - **插入操作**:当向B+树中插入新的关键字时,如果当前节点已满,则需要进行分裂操作。B+树的分裂操作只...

    聚集索引与非聚集索引的区别

    - **非聚焦索引**:当表中有一列或多列的数据频繁用于作为查找条件时,考虑使用非聚焦索引。 #### 六、实践中的误区 - **误区一**:**主键等于聚焦索引**。虽然默认情况下主键上会建立聚焦索引,但这并不意味着...

    MySQL索引.xmind

    每个表都应该有一个主键索引,用于唯一地标识表中的每一行数据。主键索引可以加快数据检索的速度,并且强制数据的唯一性。 唯一索引(UNIQUE): 唯一索引确保索引列中的每个值都是唯一的。如果一个列上有唯一性约束...

    MySQL中主键索引与聚焦索引之概念的学习教程

    1. 查询性能:通过辅助索引进行查询时,可能需要两次查找,一次找到辅助索引,一次找到对应的主键索引。 2. 唯一索引在InnoDB中不同于主键索引,因为主键是聚集索引,而唯一索引不是。 **MyISAM存储引擎** 使用堆...

    mysql查询优化之索引优化

    - **InnoDB存储引擎的索引优化**:InnoDB支持行级锁定,其主键索引是聚簇索引,其他非主键索引是非聚簇索引。理解这些特性有助于更好地设计索引。 - **分区与分片**:对于超大型表,可以考虑使用分区或分片技术,将...

    索引

    主键索引则是表中的一个或多个列,它们的组合具有唯一性,并且不允许有NULL值。主键不仅提供索引,还用于标识表中的唯一记录。 在数据库优化过程中,我们还需要关注覆盖索引(Covering Index),这是一种特殊类型的...

    行业-70 针对主键之外的字段建立的二级索引,又是如何运作的?l.rar

    主键索引是数据库表中的一个特殊索引,确保每行数据的唯一性,并且通常具有最快的查询速度。然而,除了主键之外,针对其他字段建立的二级索引(也称为辅助索引)在数据库设计中同样扮演着关键角色。下面我们将深入...

    mysql快速获得库中无主键的表实例代码

    若要查找整个数据库中没有主键的表,可以使用以下查询: ```sql -- 查看无主键表 SELECT table_schema, table_name, TABLE_ROWS FROM information_schema.tables WHERE (table_schema, table_name) NOT IN ( ...

    SQLSEVER索引和索引调整向导

    SQL Server 索引和索引调整向导 SQL Server 索引是一种加快检索表中数据的方法,类似于书籍的索引。索引可以大大减少数据库管理系统查找...间接创建索引可以在表中定义主键约束或者唯一性键约束,同时也创建了索引。

Global site tag (gtag.js) - Google Analytics