网站首页 > 文章中心 > 其它

mysql怎么看外键数据

作者:小编 更新时间:2023-09-21 07:38:01 浏览量:330人看过

mysql 如何查看某个库中的一个表是哪些表的外键?

#查看数据库所有表

SELECT tba.TABLE_NAME FROM information_schema.TABLES tba WHERE tba.TABLE_SCHEMA= '你要查的数据库名字'

#查看某个库中的一个表是哪些表的外键

SELECT TABLE_NAME FROM KEY_COLUMN_USAGE WHERE CONSTRAINT_NAME='FK_PRODUCT_ID' AND REFERENCED_TABLE_NAME ='表的名字'AND REFERENCED_TABLE_SCHEMA='表的的数据名字'

求采纳良心sql啊

information_schema数据库又称为信息架构,数据表保存了MySQL服务器所有数据库的信息.如数据库名,数据库的表,表栏的数据类型与访问权限等.

performance_schema数据库主要用于收集数据库服务器性能参数,以便优化mysql数据库性能.

mysql数据库是存储着已MySQL运行相关的基本信息等数据管理的数据库.

SQL数据库的、外键和查询

增加外键

创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) references 外部表(主键字段)

在新增表之后增加外键:修改表结构,使用alter table 表名 add [constraint 外键名字] foreign key(外键字段) references 父表(主键字段);

修改外键删除外键

alter table 表名 drop foreign key 外键名;

外键条件

外键要存在,首先必须保证表的存储引擎是innodb

列类型必须与父表的主键类型一致

一张表中的外键名字不能重复

增加外键的字段数据已经存在,必须保证数据与父表主键要求对应

外键约束

有三种约束模式

district:严格模式(默认的)

cascade:级联模式

set null:置空模式

语法:foreign key(外键字段) references 父表(主键字段) on delete 模式 on update 模式;

联合查询

基本语法:

select 语句1

union [union 选项]

union 选项

all:保留所有,不管重复

distinct:去重,默认的

子查询(sub query)

按位置分类

from子查询

where子查询

exists子查询

按结果分类

标量子查询

列子查询

行子查询

表子查询

子查询

=any等价于in; -- 其中一个即可

any等价于some; -- 二者是一样的

=all为全部

-- 创建外键

create table my_foreign1(

idint primary key auto_increment,

'学生姓名',

c_idint comment'班级id',

-- 增加外键

foreign key(c_id)references

my_class(id)

-- 创建表

c_idint comment'班级id'? -- 普通字段

-- 指定外键的名字

constraint student_class_1? -- 可以指定多个外键 但是名字不能相同

-- 指定外键的字段

foreign key(c_id)

-- 引用父表主键

references my_class(id);

-- 删除外键

alter table my_foreign1drop

foreign key my_foreign1_ibfk_1;? -- my_foreign1_ibfk_1 通过外键的名字来删

-- 插入数据;外键字段在父表不存在

null,'项羽',1);

-- 更新父表的记录

-- mysql中添加外键约束遇到一下情况:

-- cannot add foreign key constraint

-- 出现这个问题的原因是,外键的使用:

-- 1. 外键字段不能为该表的主键;

-- 插入数据

insert into my_foreign1values (

);

alter table my_foreign1add

-- 创建外键,指定模式;删除置空;更新级联

c_idint,

foreign key (c_id)

-- 引用表

references my_class(id)

-- 指定删除模式

on delete set null

-- 指定更新模式

on update cascade

null,'刘备',1),

(null,'曹操',1),

(null,'孙权',1),

foreign key student_class_1;

-- 更新父表主键

-- 删除父表主键

-- 联合查询

select * from my_class

union? -- 默认去重

select * from my_class;

union all? -- 不去重

select id,c_name,roomfrom my_class

select name,number,idfrom my_student;

-- 需求;男生升序;女生降序(年龄)

(select * from my_student

where sex='男'

union

where sex='女'

select * from my_studentwhere

c_id=(

-- 标量子查询

select idfrom my_classwhere

insert into my_classvalues (1,

-- 列子查询

c_idin(select idfrom my_class);

-- any,some,all

c_id=any(select idfrom my_class);

c_id=some(select idfrom my_class);

c_id=all(select idfrom my_class);

c_id!=any(select idfrom my_class);? -- 所有结果(null除外)

c_id!=some(select idfrom my_class);? -- 所有结果(null除外)

age=(select max(age)from

my_student)

and

height=(select max(height))from

my_student);

-- 行子查询

select * from my_student

-- (age,height)称之内为行元素

where (age,height)=(select max(

age),max(height)from my_student);

where name='王五';

select * from my_studentorder by

agedesc,heightdesc limit1;

heightdesc;

-- 表子查询

select * from my_studentgroup by

c_idorder by heightdesc;? -- 每个班选出第一个学生再按身高排序

select * from (select * from

my_studentorder by heightdesc)

as studentgroup by student.c_id;

mysql怎么定义外键

定义外键的方法和详细的操作步骤如下:

①.、第一步,创建一个主从表,如下图所示,然后进入下一步.

以上就是土嘎嘎小编为大家整理的mysql怎么看外键数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章