当前位置: 首页 > wzjs >正文

用html制作网站流程上海网络营销公司

用html制作网站流程,上海网络营销公司,页面设计升级,仅仅建设银行网站打不开准备工作 安装MySQL 确保已安装MySQL,并启动服务。可以通过命令行或工具(如MySQL Workbench)操作。 创建数据库 sql 复制 CREATE DATABASE school; USE school;创建父表和子表 步骤 1:创建父表(students)…
  1. 准备工作
    安装MySQL
    确保已安装MySQL,并启动服务。可以通过命令行或工具(如MySQL Workbench)操作。

创建数据库

sql
复制
CREATE DATABASE school;
USE school;
  1. 创建父表和子表
    步骤 1:创建父表(students)
sql
复制
-- 父表:学生表(主键为 student_id)
CREATE TABLE students (student_id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE
) ENGINE=InnoDB;  -- 必须使用 InnoDB 引擎

步骤 2:创建子表(courses)并添加外键

sql
复制
-- 子表:课程表(外键关联学生表的 student_id)
CREATE TABLE courses (course_id INT PRIMARY KEY AUTO_INCREMENT,course_name VARCHAR(50) NOT NULL,student_id INT,  -- 外键字段CONSTRAINT fk_student  -- 外键约束名称FOREIGN KEY (student_id) REFERENCES students(student_id)  -- 关联父表的主键ON DELETE CASCADE  -- 级联删除ON UPDATE CASCADE  -- 级联更新
) ENGINE=InnoDB;

关键点解释:

ON DELETE CASCADE:当父表(students)中的某条记录被删除时,子表(courses)中关联的记录会自动删除。

ON UPDATE CASCADE:当父表的主键(student_id)更新时,子表的外键字段同步更新。

  1. 插入数据并测试外键约束
    步骤 1:向父表插入数据
sql
复制
INSERT INTO students (name, email) 
VALUES ('Alice', 'alice@example.com'),('Bob', 'bob@example.com');

步骤 2:向子表插入合法数据(外键存在)

sql
复制
-- 合法操作:student_id=1 存在于 students 表
INSERT INTO courses (course_name, student_id) 
VALUES ('Math', 1);

步骤 3:尝试插入非法数据(外键不存在)

sql
复制
-- 非法操作:student_id=3 不存在于 students 表
INSERT INTO courses (course_name, student_id) 
VALUES ('Physics', 3);

结果:MySQL 会抛出错误:
Cannot add or update a child row: a foreign key constraint fails

  1. 测试级联操作
    场景 1:删除父表数据
sql
复制
-- 删除 Alice(student_id=1)
DELETE FROM students WHERE student_id = 1;

– 查看 courses 表
SELECT * FROM courses;
结果:
所有 student_id=1 的课程记录会被自动删除(级联删除)。

场景 2:更新父表主键

sql
复制
-- 将 Bob(student_id=2)的 ID 更新为 100
UPDATE students SET student_id = 100 WHERE student_id = 2;

– 查看 courses 表
SELECT * FROM courses;
结果:
子表中 student_id=2 的记录会被自动更新为 student_id=100(级联更新)。

  1. 修改外键约束
    添加新外键(如课程表关联教师表)
sql
复制
-- 先创建教师表(父表)
CREATE TABLE teachers (teacher_id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50)
) ENGINE=InnoDB;-- 修改课程表,添加 teacher_id 外键
ALTER TABLE courses 
ADD COLUMN teacher_id INT,
ADD CONSTRAINT fk_teacher FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id);

删除外键

sql
复制
ALTER TABLE courses DROP FOREIGN KEY fk_teacher;
  1. 常见问题与排查
    问题 1:无法创建外键
    可能原因:

父表的主键字段与外键字段类型或长度不匹配。

父表未使用 InnoDB 引擎。

父表中不存在外键引用的数据。

问题 2:级联操作未生效
检查点:

确认外键定义时指定了 ON DELETE CASCADE 或 ON UPDATE CASCADE。

确保操作的是父表的主键字段。

  1. 总结
    通过这个示例,你学会了:

外键的创建与删除

级联操作的实际效果

外键约束的验证与错误处理

关键设计原则:

外键字段必须引用父表的唯一键(通常是主键)。

级联操作需谨慎使用,避免误删数据。

高频写入场景中,外键可能影响性能,需权衡利弊。

下一步练习
设计多对多关系
创建一个 student_course 中间表,关联学生和课程(需两个外键)。

测试 SET NULL 和 RESTRICT 约束
修改外键的 ON DELETE 行为,观察结果差异。

通过 ORM 操作外键
尝试在 Django 或 Flask-SQLAlchemy 中实现类似模型。

http://www.dtcms.com/wzjs/209466.html

相关文章:

  • 网页设计配色时可以用宁波seo排名优化价格
  • 个人搭建网站教程百度网页入口官网
  • 建设网站费用吗找合作项目app平台
  • 今日头条网站什么语言做的南宁网站建设公司
  • 网站建设时时彩百度查找相似图片
  • 深圳团购网站设计价格怎样做网络推广挣钱
  • 宿州做网站的公司微信营销典型案例
  • 沈阳做网站seo品牌公关公司
  • 企业商城网站建设开发网站收录提交入口
  • 如何制作学校网站百度首页网站推广多少钱一年
  • wordpress视屏站秦洁婷seo博客
  • 常用的建站软件有哪些上海热点新闻
  • 电商网站怎么做搜索电商数据网站
  • 做有源代码的网站有什么好处阿里指数网站
  • 网站的后台管理免费发布信息的网站平台
  • 公司官方网站建设网络营销外包公司
  • 东莞大型网站建设公司十个有创意的线上活动
  • 北京网站制作的公司网站网络营销推广
  • 内容分发网络CDN可以建设网站吗50个市场营销经典案例
  • 温州 网站优化网络舆情分析报告
  • 珠海做快照网站电话淘宝排名查询工具
  • wordpress建站教程jiuyou郑州做网站推广资讯
  • 丽江网络推广宁波好的seo外包公司
  • 湖北招聘网seo快速排名软件推荐
  • wordpress新建网站上海seo推广方法
  • 在什么网站做外贸seo运营招聘
  • 做网站的主要作用新闻热点大事件
  • 公司网站可直接购物支付设计公司网站模板
  • 建立网站需要多少钱萍畜湖南岚鸿首选小红书关键词排名
  • 花钱让别人做的网站版权是谁的软文范例大全500