SQLマルチテーブルリレーションシップの概要

SQLマルチテーブルリレーションシップの概要

  • (1)プロジェクト内の複数のテーブル
    1:実際の開発では、プロジェクトは複数のテーブルで構成されている必要があり、これらのテーブル間に関係があります
    。2:テーブル間の関係の分類:1対1、1対
    1多対多
    (2)1対1とは何ですか?
    テーブルAの行はテーブルBの行に対応し、その逆も同様です。このとき、2つのテーブルを1つのテーブルにマージできます。
    ここに画像の説明を挿入

(3)1対多とは何ですか?
テーブルAの行はテーブルBの複数の行に対応し、その逆は成り立ちません
ここに画像の説明を挿入

(4)多対多とは何ですか?
テーブルAの行はテーブルBの複数の行に対応し、テーブルBの行はテーブルAの複数の行に対応します
ここに画像の説明を挿入

マルチテーブル関係1対多関係

(1)データの初期化
(2)1対多の作成プロセス
ここに画像の説明を挿入

「マスターテーブル(カテゴリーテーブル)の
作成」「スレーブテーブル(製品テーブル)の作成
」「マスターテーブルとスレーブテーブルの間に外部キー制約を追加」「マスターテーブル
alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);
にデータを追加(随意に追加)
」「スレーブテーブルにデータを追加(データの追加が必要)メインテーブルに依存)
(3)1対多の特性
データの追加:メインテーブル:随意に追加、スレーブテーブル:マスターテーブルの制限に従って
データを削除します:マスターテーブル:データの行がスレーブテーブルに依存している場合、削除できません。 :
(4)アナロジー
州と市は自由に削除できます
ここに画像の説明を挿入

create database day13_2
use day13_2
》创建主表(分类表)
create table category(
	cid int primary key auto_increment,
	cname varchar(20)
)
》创建从表(商品表)
create table product(
	pid int primary key auto_increment,
	pname varchar(20),
	price double,
	cid int -- 外键 表示属于哪个分类
)
》给主表和从表之间添加外键约束 
`alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);`
alter table product add  foreign key (cid) references category(cid)
》给主表添加数据(随便添加)
insert into category value(null,'电子')
insert into category value(null,'服装')
》给从表添加数据(添加数据是必须依赖主表)
insert into product value(null,'联想',2000,1)
insert into product value(null,'华为',4000,1)	
insert into product value(null,'真维斯',100,2)	

複数テーブルの関係多対多の関係

  • (1)Excel分析を使用する
  • (2)多対多の作成プロセス
    「オーダーテーブル(メインテーブル)の
    作成」の順序「中間テーブル(スレーブテーブル)のクロスラインを
    作成」「中間テーブルの外部キー制約を作成(2回)
    」「オーダーテーブルにデータを追加」 (オプション)
    》》中間テーブルにデータを追加(制限付き)
    ここに画像の説明を挿入

ここに画像の説明を挿入

》》创建订单表(主表) order
create table orders(
	oid int primary key auto_increment,
	money double
)
》》创建中间表(从表) 保存交叉线
create table orders_product(
	oid int , -- 必须存在 外键
	pid int  -- 必须存在 外键
)
》》给中间表建立外键约束(2)
alter table orders_product add  foreign key (oid ) references orders(oid);
alter table orders_product add  foreign key (pid ) references product(pid);
》》给订单表添加数据(随意)
insert into product value(null,'LV',30000,2)
》》给中间表添加数据(受限)	
insert into orders_product value(3,6)

1対多の練習

(1)ProvinceテーブルとCityテーブル間の関係を分析する
(2)テーブルを作成する:1対多の関係(ProvinceテーブルとCityテーブル)
"Create master table(provinceテーブル)
" "Create slave table(city table)
" "Create external主な制約
「メインテーブルにデータ
追加」「スレーブテーブルにデータ追加
ここに画像の説明を挿入

# 练习1
》》 创建主表(省表)
create table province(
	pid int primary key auto_increment,
	pname varchar(20)
)
》》 创建从表(市表)
create table city(
	cid int primary key auto_increment,
	cname varchar(20),
	pid_fk int
)
》》建立外键约束
alter table city add  foreign key (pid_fk ) references province(pid);
》》给主表添加数据
》》给从表添加数据

多くの俳優と役割に多くの練習

  • (1)キャストテーブルとロールテーブルの関係を分析する
    ここに画像の説明を挿入
  • (2)テーブルの作成:多対多の関係(俳優テーブルと役割テーブル)
    ""キャストテーブルの作成(左側のメインテーブル)
    ""役割テーブルの作成(右側のメインテーブル)
    ""中間テーブルの作成(テーブルから)
    " 》外部キー制約の作成(2回)
    》》キャストテーブルへの
    データの追加
    》》ロールテーブルへのデータの追加》》中間テーブルへのデータの追加
》》 创建演员表(左侧主表)
create table users(
	uid int primary key auto_increment,
	uname varchar(20)
)
》》 创建角色表(右侧主表)
create table role(
	rid int primary key auto_increment,
	rname varchar(20)
)
》》 创建中间表(从表)
create table users_role(
	rid int , -- 数据必须在role存在
	uid int   -- 数据必须在users存在
)
》》建立外键约束(2)
alter table users_role add  foreign key (rid ) references role(rid);
alter table users_role add  foreign key (uid) references users(uid);
》》给演员表添加数据
》》给角色表添加数据
》》给中间表添加数据

運動役割表と許可表

  • (1)ロールと権限テーブルの関係を分析する
    ここに画像の説明を挿入
  • (2)テーブルを作成する:多対多の関係(ロールと権限)
    ここに画像の説明を挿入

》》許可テーブルの作成
》》 2番目の中間テーブル
》》外部キー制約の作成
》》許可テーブルにデータ
追加》》中間テーブルにデータ追加

》》 创建权限表
create table privilege(
	pid int primary key auto_increment,
	pname varchar(20)
)
》》 第二个中间表
create table privilege_role(
	pid_fk int , -- 外键
	rid_fk int -- 外键
)
》》建立外键约束
alter table privilege_role add  foreign key (pid_fk) references privilege(pid);
alter table privilege_role add  foreign key (rid_fk) references role(rid);
》》给权限表添加数据
》》给中间表添加数据

おすすめ

転載: blog.csdn.net/qq_37924905/article/details/108759663