MYSQL查询表的主键

MYSQL查询表的主键,第1张

SELECT

t.TABLE_NAME,

t.CONSTRAINT_TYPE,

c.COLUMN_NAME,

c.ORDINAL_POSITION

FROM

INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,

INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c

WHERE

t.TABLE_NAME = c.TABLE_NAME

AND t.TABLE_SCHEMA = 'test'

AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'

测试执行结果如下:

mysql>SELECT

-> t.TABLE_NAME,

-> t.CONSTRAINT_TYPE,

-> c.COLUMN_NAME,

-> c.ORDINAL_POSITION

->FROM

-> INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,

-> INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c

->WHERE

-> t.TABLE_NAME = c.TABLE_NAME

-> AND t.TABLE_SCHEMA = 'test'

-> AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'

->LIMIT 3

+------------+-----------------+-------------+------------------+

| TABLE_NAME | CONSTRAINT_TYPE | COLUMN_NAME | ORDINAL_POSITION |

+------------+-----------------+-------------+------------------+

| mr_dept| PRIMARY KEY | dept_id |1 |

| order | PRIMARY KEY | id |1 |

| tab| PRIMARY KEY | id |1 |

+------------+-----------------+-------------+------------------+

3 rows in set (0.06 sec)

设置主键的思路:业务字段做主键、自增字典做主键、手动赋值字段做主键。

多表查询:分散在多个不同的表里的数据查询出来的 *** 作。

外键:从表中用来引用主表中数据的那个公共字段。

连接有2种类型的连接:内连接(inner join)和外连接(outer join)

内连接:查询结果只返回符合连接条件的记录。

外连接:查询结果返回某一个表中的所有记录,以及另一个表中满足连接条件的记录。

其中左连接:left join,返回左表中的所有记录,以及右表中符合连接条件的记录。

右连接:right join,返回右表中的所有记录,以及左表中符合连接条件的记录。

在SYBASE的ASE和ASA中,可以使用如下的系统存储过程来获取主键:

exec

sp_pkeys

'table_name'

sql

server也是一样的!

至于mysql,我没这个环境,相信应该有类似的存储过程的!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5910827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存