Introducción a la relación de tablas múltiples SQL

Introducción a la relación de tablas múltiples SQL

  • (1) Múltiples tablas en el proyecto
    1: En el desarrollo real, el proyecto debe estar compuesto por múltiples tablas, y existe una relación entre estas tablas.2
    : La clasificación de la relación entre las tablas:
    una a una, una a una Muchos, muchos a muchos
    (2) ¿Qué es uno a uno?
    Una fila de la tabla A corresponde a una fila de la tabla B, y viceversa, en este momento, las dos tablas se pueden fusionar en una sola.
    Inserte la descripción de la imagen aquí

(3) ¿Qué es uno a muchos?
Una fila de la tabla A corresponde a varias filas de la tabla B, y lo contrario no es cierto
Inserte la descripción de la imagen aquí

(4) ¿Qué es de muchos a muchos?
Una fila de la tabla A corresponde a varias filas de la tabla B, y una fila de la tabla B corresponde a varias filas de la tabla A
Inserte la descripción de la imagen aquí

Relación de varias tablas: relación de uno a varios

(1) Inicializar datos
(2) Proceso de creación de uno a muchos
Inserte la descripción de la imagen aquí

"Crear tabla maestra (tabla de categorías)
" Crear tabla esclava (tabla de productos)
"Agregar restricciones de clave externa entre la tabla maestra y la tabla esclava
alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);
" Agregar datos a la tabla maestra (agregarlos a voluntad)
"Agregar datos a la tabla esclava (agregar datos es necesario Depende de la tabla principal)
(3) Características de uno a muchos
Agregar datos: tabla principal: agregar a voluntad, tabla esclava:
eliminar datos sujetos a las restricciones de la tabla maestra: tabla maestra: si una fila de datos depende de la tabla esclava, no se puede eliminar. : Puede eliminar
(4)
provincia y ciudad de analogía a voluntad
Inserte la descripción de la imagen aquí

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)	

Relación de varias tablas: relación de varios a varios

  • (1) Utilice el análisis de Excel
  • (2) Proceso de creación de varios a varios
    "Crear orden de tabla de orden (tabla principal)
    " "Crear tabla intermedia (tabla esclava) guardar línea cruzada
    " "Crear restricciones de clave externa para tabla intermedia (2 veces)
    " "Agregar datos a la tabla de orden (Opcional)
    》》 Agregar datos a la tabla intermedia (limitado)
    Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

》》创建订单表(主表) 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)

Practica uno a muchos

(1) Analizar la relación entre la tabla de provincia y la tabla de ciudad
(2) Crear una tabla: relación uno a muchos (tabla de provincia y tabla de ciudad)
"Crear tabla maestra (tabla de provincia)
" "Crear tabla esclava (tabla de ciudad)
" "Crear externa Restricciones clave
"Agregar datos a la tabla principal
" " Agregar datos a la tabla esclava
Inserte la descripción de la imagen aquí

# 练习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);
》》给主表添加数据
》》给从表添加数据

Práctica de muchos a muchos actores y roles

  • (1) Analizar la relación entre la tabla de reparto y la tabla de roles
    Inserte la descripción de la imagen aquí
  • (2) Crear una tabla: relación de muchos a muchos (tabla de actores y tabla de roles)
    "" crear una tabla de reparto (tabla principal izquierda)
    "" crear una tabla de roles (tabla principal derecha)
    "" crear una tabla intermedia (desde la tabla)
    " 》 Crear restricciones de clave externa (2 veces)
    》》 Agregar datos a la tabla de reparto
    》》Agregar datos a la tabla de roles
    》》Agregar datos a la tabla intermedia
》》 创建演员表(左侧主表)
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);
》》给演员表添加数据
》》给角色表添加数据
》》给中间表添加数据

Tabla de roles de ejercicio y tabla de permisos

  • (1) Analizar la relación entre roles y tablas de permisos
    Inserte la descripción de la imagen aquí
  • (2) Crear una tabla: relación de muchos a muchos (roles y permisos)
    Inserte la descripción de la imagen aquí

》》 Crear tabla de permisos
》》 Segunda tabla intermedia
》》 Crear restricción de clave externa
》》 Agregar datos a la tabla de permisos
》》Agregar datos a la tabla intermedia

》》 创建权限表
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);
》》给权限表添加数据
》》给中间表添加数据

Supongo que te gusta

Origin blog.csdn.net/qq_37924905/article/details/108759663
Recomendado
Clasificación