首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在SQL中检索列信息(复合键)

在SQL中检索列信息(复合键),可以使用以下方法:

  1. 使用INFORMATION_SCHEMA.KEY_COLUMN_USAGE表查询:
代码语言:sql
复制
SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, POSITION_IN_UNIQUE_CONSTRAINT
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'your_table_name' AND CONSTRAINT_NAME = 'your_constraint_name';
  1. 使用INFORMATION_SCHEMA.TABLE_CONSTRAINTSINFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE表查询:
代码语言:sql
复制
SELECT tc.CONSTRAINT_NAME, tc.TABLE_NAME, ccu.COLUMN_NAME, ccu.ORDINAL_POSITION, ccu.POSITION_IN_UNIQUE_CONSTRAINT
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
ON tc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME
WHERE tc.TABLE_NAME = 'your_table_name' AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY';
  1. 使用sp_pkeys存储过程查询:
代码语言:sql
复制
EXEC sp_pkeys 'your_table_name';

其中,your_table_name是要查询的表名,your_constraint_name是要查询的约束名。

在查询结果中,COLUMN_NAME列表示复合键中的列名,ORDINAL_POSITION列表示列在复合键中的位置,POSITION_IN_UNIQUE_CONSTRAINT列表示列在唯一约束中的位置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《Oracle Concept》第三章 - 2

是一组能让你创建索引的或者表达式的集合。尽管索引和键值经常互换使用,但他们二者,还是有些区别的。索引是存储在数据库的结构,用户用SQL语句就能管理他们。...参考: 《Oracle Database SQL Language Reference》了解CREATE INDEX的语法和语义。 复合索引 复合索引,也叫组合索引,他是一个基于表的索引。...复合索引应该按顺序出现在检索条件,才能最大化检索不相邻行的数据。 复合索引能提高WHERE条件引用了复合索引中所有或者前导部分列的SELECT语句的检索速度。...因此复合索引的顺序就很重要了。通常,经常用到的应该放在复合索引的前面。 例如,假设应用经常检索employees表的last_name,job_id和salary。...示例,不访问last_name检索,不会用到索引。 注意: 一些场景,例如当前导的cardinality值很低,数据库可能会选择索引跳跃扫描(参考“Index Skip Scan”)。

44910
  • 数据库索引的作用和长处缺点

    一般来说,应该在这些 上创建索引,比如: 常常须要搜索的列上,能够加快搜索的速度; 作为主键的列上,强制该的唯一性和组织表数据的排列结构; 常常常使用在连接的列上,这 些主要是一些外...这是由于,由于这些的取值非常少,比如人事表的性别查询的结果,结果集的数据行占了表数据行的非常大比 例,即须要在表搜索的数据行的比例非常大。添加�索引,并不能明显加快检索速度。...唯一性索引保证索引的所有数据是唯一的,不会包括冗余数据。假设表已经有一个主键约束或者唯一性约束,那么当创建表或者改动表时,SQL Server自己主动创建一个唯一性索引。...当创建唯一性索引 时,应该认真考虑这些规则:当在表创建主键约束或者唯一性约束时,SQL Server自己主动创建一个唯一性索引;假设表已经包括有数据,那么当创建索引时,SQL Server检查表已有数据的冗余性...当创建复合索引时,应该考虑 这些规则:最多能够把16个合并成一个单独的复合索引,构成复合索引的的总长度不能超过900字节,也就是说复合的长度不能太长;复合索引,所 有的必须来自同一个表,不能跨表建立复合

    94810

    【数据库】MySQL进阶二、索引简易教程

    这是因为,由于这些的取值很少,例如人事表的性别查询的结果,结果集的数据行占了表数据行的很大比例,即需要在表搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。...唯一性索引保证索引的全部数据是唯一的,不会包含冗余数据。如果表已经有一个主键约束或者唯一性约束,那么当创建表或者修改表时,SQL Server自动创建一个唯一性索引。...当创建唯一性索引时,应该认真考虑这些规则:当在表创建主键约束或者唯一性约束时,SQL Server自动创建一个唯一性索引; 如果表已经包含有数据,那么当创建索引时,SQL Server检查表已有数据的冗余性...当创建复合索引时,应该考虑 这些规则:最多可以把16个合并成一个单独的复合索引,构成复合索引的的总长度不能超过900字节,也就是说复合的长度不能太长; 复合索引,所有的必须来自同一个表,不能跨表建立复合...; 为了使查询优化器使用复合索引,查询语句中的WHERE子句必须参考复合索引第一个;当表中有多个关键时,复合索引是非常有用的;使用复合索引可以提高查询性能,减少一个表中所创建的索引数量。

    1.4K90

    关于sql索引的优缺点(面试常考)

    这是因为,由于这些的取值很少,例如人事表的性别查询的结果,结果集的数据行占了表数据行的很大比例,即需要在表搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。...唯一性索引保证索引的全部数据是唯一的,不会包含冗余数据。如果表已经有一个主键约束或者唯一性约束,那么当创建表或者修改表时,SQL Server自动创建一个唯一性索引。...当创建唯一性索引时,应该认真考虑这些规则:当在表创建主键约束或者唯一性约束时,SQL Server自动创建一个唯一性索引;如果表已经包含有数据,那么当创建索引时,SQL Server检查表已有数据的冗余性...当创建复合索引时,应该考虑这些规则:最多可以把16个合并成一个单独的复合索引,构成复合索引的的总长度不能超过900字节,也就是说复合的长度不能太长;复合索引,所有的必须来自同一个表,不能跨表建立复合...;为了使查询优化器使用复合索引,查询语句中的WHERE子句必须参考复合索引第一个;当表中有多个关键时,复合索引是非常有用的;使用复合索引可以提高查询性能,减少一个表中所创建的索引数量。

    3.3K10

    数据库创建索引的条件和注意事项

    一般来说,应该在下面这些列上创建索引 经常搜索的列上创建索引,能够加快搜索的速度; 作为主键的列上创建索引,需要强制该的唯一性和组织表数据的排列结构; 经常被用在连接的列上(主要是外)建立索引...当创建唯一性索引时,应认真考虑如下规则 当在表创建主键约束或者唯一性约束时,SQL Server会自动创建一个唯一性索引; 如果表已经包含有数据,那么创建索引时,SQL Server会检查表已有数据的冗余性...; 每当使用插入语句或者修改语句时,SQL Server都会检查数据的冗余性;如果有冗余值,那么SQL Server将会取消该语句的执行,并且返回一个错误信息; (确保表的每一行都有一个唯一值,这样逻辑上可以确保每一个实体都可以唯一确认...当创建复合索引时,应该考虑以下规则 最多可以把16个合并成一个单独的复合索引,构成符合索引的总长度不能超过900字节,也就是说复合索引的长度不能太长; 复合索引,所有的都必须来自同一个表,不能跨表建立复合索引...; 复合索引的排列顺序是非常重要的(影响查询性能),因此仔细斟酌的排列顺序。

    2.7K20

    mysql复合索引、普通索引总结

    所以说创建复合索引时,应该仔细考虑的顺序。对索引的所有执行搜索或仅对前几列执行搜索时,复合索引非常有用;仅对后面的任意执行搜索时,复合索引则没有用处。...如:建立 姓名、年龄、性别的复合索引。 ? 复合索引的建立原则: 如果您很可能仅对一个多次执行搜索,则该应该是复合索引的第一。...包含多个的主键始终会自动以复合索引的形式创建索引,其的顺序是它们表定义中出现的顺序,而不是主键定义中指定的顺序。考虑将来通过主键执行的搜索,确定哪一应该排在最前面。...请注意,创建复合索引应当包含少数几个,并且这些经常在select查询里使用。复合索引里包含太多的不仅不会给带来太多好处。...创建复合索引时,每一都定义了升序或者是降序。

    2.8K20

    SQL岗位30个面试题,SQL面试问题及答案「建议收藏」

    数据库的表和字段是什么? 表是具有和行的模型设计的数据集合。,指定了数称为字段,但未定义行数称为记录。 什么是数据库? 数据库是有序形式的一组信息,用于访问、存储和检索数据。...· DQL(数据查询语言) – 所有命令都在SQL,用于检索DQL的数据。 · TCL(事务控制语言) – 用于管理DML所做的更改。 SQL的视图是什么?...Join用于从相关的行和检索数据。它在两个或多个表之间工作,并且它从两个表返回至少一个匹配。...· ForeignKey(外)——一个表定义主键并在另一个表定义字段的被标识为外。...系统内存执行SQL语句时,会创建一个临时工作区,称为“游标”。select语句中,游标存储了信息。游标可以使用多行,但一次只能处理一行。这组行称为活动集。

    4.4K31

    30个精选SQL面试问题Q&A集锦

    数据库的表和字段是什么? 表是具有和行的模型设计的数据集合。,指定了数称为字段,但未定义行数称为记录。 3. 什么是数据库? 数据库是有序形式的一组信息,用于访问、存储和检索数据。...DQL(数据查询语言) - 所有命令都在SQL,用于检索DQL的数据。 TCL(事务控制语言) - 用于管理DML所做的更改。 6. SQL的视图是什么?...什么是SQL的Joins(连接)? Join用于从相关的行和检索数据。它在两个或多个表之间工作,并且它从两个表返回至少一个匹配。...ForeignKey(外)——一个表定义主键并在另一个表定义字段的被标识为外。...系统内存执行SQL语句时,会创建一个临时工作区,称为“游标”。select语句中,游标存储了信息。游标可以使用多行,但一次只能处理一行。这组行称为活动集。

    1.4K10

    数据库 PostgreSQL 常用命令

    一个数据库的表看起来像一个简单的电子表格。 : 一(数据元素) 包含了相同的数据, 例如邮政编码的数据。 **行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。...一个数据表只能包含一个主键。你可以使用主键来查询数据。 **外:**外用于关联两个表。 复合复合(组合)将多个列作为一个索引,一般用于复合索引。...**索引:**使用索引可快速访问数据库表的特定信息。索引是对数据库表中一或多的值进行排序的一种结构。类似于书籍的目录。 参照完整性: 参照的完整性要求关系不允许引用不存在的实体。...全文检索:通过 Tsearch2 或 OpenFTS,8.3版本内嵌 Tsearch2。...插入数据 update [表名] set [目标字段名]=[目标值] where [该行特征] 修改表的某行某的数据 delete from [表名] where [该行特征]; delete

    2.1K40

    数据库 PostgreSQL 常用命令

    一个数据库的表看起来像一个简单的电子表格。 : 一(数据元素) 包含了相同的数据, 例如邮政编码的数据。 **行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。...一个数据表只能包含一个主键。你可以使用主键来查询数据。 **外:**外用于关联两个表。 复合复合(组合)将多个列作为一个索引,一般用于复合索引。...**索引:**使用索引可快速访问数据库表的特定信息。索引是对数据库表中一或多的值进行排序的一种结构。类似于书籍的目录。 参照完整性: 参照的完整性要求关系不允许引用不存在的实体。...全文检索:通过 Tsearch2 或 OpenFTS,8.3版本内嵌 Tsearch2。...插入数据 update [表名] set [目标字段名]=[目标值] where [该行特征] 修改表的某行某的数据 delete from [表名] where [该行特征]; delete

    2.3K30

    Mysql优化-索引

    单一索引是指索引列为一的情况,即新建索引的语句只实施上; 用户可以多个列上建立索引,这种索引叫做复合索引(组合索引); 禁用缓存 因为我们要测试添加索引的效果,所以就先禁用缓存,防止影响测试结果...; 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: 复合索引的主字段,要是使用较高选择性的字段; 复合索引的几个字段是否经常同时以...复合索引,索引第一位的column很重要,只要查询语句包含了复合索引的第一个条件,基本上就会使用到该复合索引(可能会使用其他索引)。我们在建符合索引的时候应该按照column的重要性从左往右建。...最佳左前缀法则 索引列上做任何操作(计算、函数、(手动或自动)类型转换),会导致索引失效而转向全表扫描 存储引擎不能使用索引范围条件右边的 ,not in ,!...rows 这里是执行计划估算的扫描行数,不是精确值。 Extra 关于MYSQL如何解析查询的额外信息

    1.3K50

    SQL数据库之索引优缺点

    SQL数据库之索引使用原则及利弊 索引是对数据库表中一或多的值进行排序的一种结构,使用索引可快速访问数据库表的特定信息。 优点 通过创建唯一性索引,可以保证数据库表每一行数据的唯一性。...使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 通过使用索引,可以查询的过程,使用优化隐藏器,提高系统的性能。...每个索引都有统计信息,索引越多统计信息越多。 更新开销,一旦一个数据改变,并且改变的比较多,可能会引起好几个索引跟着改变。...创建索引 经常需要搜索的列上,可以加快搜索的速度; 作为主键的列上,强制该的唯一性和组织表数据的排列结构; 经常用在连接的列上,这 些主要是一些外,可以加快连接的速度; 经常需要根据范围进行搜索的列上创建索引...单一索引路径选择问题,即SQL条件包含多时,即时每个对应一个索引,执行也只能沿着一个索引的执行路径, 而其它之能作为筛选条件。

    1.1K10

    《MySQL入门很轻松》第3章:数据库的创建与操作

    不过,也可以将数据存储文件,但是文件读写数据的速度相对较慢。...每又称为一个字段,每的标题称为字段名;每一行包括 若千信息,一行数据称为一个元组或一条记录,它是有一定意义的信息组合,代表一个实体或联系;一个数据库表由一条或多条记录组成,没有记录的表称为空表。...(4)复合:复合(组合)将多个列作为一个索引,一般用于复合索引。 (5)索引:使用索引可快速访问数据库表的特定信息。索引是对数据库表中一或多的值进行排序的一种结构,类似于书籍的目录。...(4)值(value):行的具体信息,每个值必须与该的数据类型相同。 (5)(key):的值在当前列具有唯一性。...(2) mysql:这个数据库是MySQL的核心数据库,类似于SQL Server的master表,主要负责存储数据库的用户、权限设置、关键字等,还有mysql自己需要使用的控制和管理信息

    1.3K30

    夜维执行慢的原因探究

    首先通过user_indexes和user_ind_columns视图可以得到索引及对应的字段信息,这里看到: (1) 包含r_date有两个索引 索引1:r_date, a, b, c,这里是4个字段组成的一个复合主键...,默认包含一个复合索引,r_date是前导。...执行慢的用了INDEX SKIP SCAN,我们知道索引跳跃扫描(9i以上)的使用是有前提条件的,这种扫描方式是为了让查询条件不是复合索引前导的情况下,依旧能使用复合索引,但不是任何时候都是高效的,只有当这个复合索引的前导...distinct值较小的前提下,使用这种扫描方式才会相对有效,因为他的检索方式相当于索引(B*Tree)遍历所有前导值的二叉树,再定位非前导的条件字段,因此如果前导distinct值较大,那么其实花费的成本也会很大...之所以SQLID找到的执行计划和F5得到的执行计划不同,根本原因是F5得到的执行计划实际是封装了EXPLAIN PLAN命令,其未真正执行这条SQL,而SQLID是真正执行的SQL缓存的ID,因此是真正执行了的

    58530

    mysql数据库基本概念

    关系型数据库:是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库的数据。现实世界的各种实体以及实体之间的各种联系均用关系模型来表示。...标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库数据的检索和操作。...一个数据库的表看起来像一个简单的电子表格。 : 一(数据元素) 包含了相同的数据, 例如邮政编码的数据。 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。...一个数据表只能包含一个主键。你可以使用主键来查询数据。 外:外用于关联两个表。 复合复合(组合)将多个列作为一个索引,一般用于复合索引。 索引:使用索引可快速访问数据库表的特定信息。...索引是对数据库表中一或多的值进行排序的一种结构。类似于书籍的目录。 参照完整性: 参照的完整性要求关系不允许引用不存在的实体。

    64120

    MySQL从删库到跑路_高级(六)——索引

    二、索引的分类 1、单列索引 单列索引只包含单个,但一个表可以有多个单列索引。 A、普通索引 普通索引允许定义索引的插入重复值和空值。...2、复合索引 的多个字段组合上创建的索引,只有查询条件中使用了组合的多个字段的左边字段时,索引才会被使用,使用复合索引时遵循最左前缀集合。...B、使用短索引 C、索引排序 因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个的排序,如果需要最好给这些创建复合索引。...type:指定本数据表和其他数据表之间的关联关系,表中所有符合检索值的记录都会被取出来和从上一个表取出来的记录作联合。...ref:给出关联关系另一个数据表数据的名字。 rows:MySQL执行查询时预计会从数据表里读出的数据行的个数。 extra:提供与关联操作有关的信息

    1.2K20

    SQL Server之索引解析(二)

    1.2.2 非聚集索引 非聚集索引索引表数据结构 根节点(root nodes)、中间节点(page nodes)结构:2字节系统信息+非聚集索引键值+ChildPage(4字节)+Key 叶子节点...避免聚集索引查找 最大数为 16,最大索引大小为 900 字节 过滤索引 索引tree是否包含部分数据。一部分不需要建立索引,减少索引层数。...复合索引顺序:索引,索引的顺序主要由索引的每一个列确定,因此,对于复合索引,索引顺序是很重要的,应该优先把数据密度大,选择性,存储空间小的放在索引的前面。...3.3 跟踪代码生成的SQL语句 Sql Profiler 用于跟踪程序生成的语句。...resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' use master go --检索死锁进程

    85730

    面试官:不会sql优化?出门右转顺便带上门,谢谢!

    之前的多次面试中最常遇到的一个问题的sql优化,不论是大厂还是小厂。...SQL执行计划(以MySQL为例) 1、如何查看sql的执行计划 需要执行的查询SQL前添加一个关键字“EXPLAIN” ?...rows 估算找到所需数据需读取的行数 filtered 查询的表行占表的百分比 extra 包含不适合在其他展示但异常重要的信息,比如是使用索引排序还是文件排序 2、EXPLAIN (1)...(3)eq_ref 唯一性索引扫描,对于每个索引,表只有一条记录与之匹配。常见于主键或唯一索引扫描。...需要注意的是:1、char字段一个字符utf8编码下最多占3个字节,可变长字段需要额外的两个字节记录长度,外加需要存入一个null值,一个null是一个字节 2、复合索引有最左前缀的特性,如果复合索引能全部使用上

    83620

    mysql索引的类型和优缺点

    索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。...JOIN操作(需要从多个数据表提取数据时),MySQL只有主键和外的数据类型相同时才能使用索引。...如果查询操作只需要用到columnA数据列上的一个索引,就可以使用复合索引INDEX(columnA, columnB)。不过,这种用法仅适用于复合索引中排列在前的数据组合。...比如说,对于一个INTEGER数据的索引,这个字节长度将是4。如果用到了复合索引,key_len数据里还可以看到MySQL具体使用了它的哪些部分。...最后,extra数据提供了与JOIN操作有关的更多信息,比如说,如果MySQL执行这个查询时必须创建一个临时数据表,就会在extra看到 using temporary字样。

    2.4K70
    领券