Python学习第二十四课——Mysql 外键约束
外键:主要是关联两个表的
举个栗子:在建表中创建外键
-- 添加外键例子 CREATE TABLE teacher(
id TINYINT PRIMARY KEY auto_increment,
name VARCHAR(25),
age int,
is_marryed boolean
); CREATE TABLE student(
id TINYINT PRIMARY KEY auto_increment,
name VARCHAR(25),
charger_id TINYINT,
FOREIGN KEY (charger_id) REFERENCES teacher(id)
); -- 建表示添加外键 外键一定要跟关联的数据类型保持一致 insert into student2(name,charger_id) values("小花",1),
("憨憨",2),
("玫玫",3),
("阿妹",4),
("小于",5),
("奶酪",3);
添加外键和删除外键:
--添加外键和删除外键 ALTER TABLE student2 ADD CONSTRAINT abc
FOREIGN KEY (charger_id)
REFERENCES teacher(id) ALTER TABLE 表名student ADD CONSTRAINTS abc外键名
FOREIGN KEY(charger_id)
REFERENCES teacher(id) ALTER TABLE student DROP FOREIGN KEY abc;
外键的其他:
FOREIGN KEY (charger_id) REFERENCES teacher(id)
ON DELETE CASCADE;-- 这样如果删除 1号 冰冰 的话 那么跟着1号的学生也都被删除了 FOREIGN KEY (charger_id) REFERENCES teacher(id)
ON DELETE SET NULL; -- 这样如果删除 1号 冰冰 的话 那么跟着1号的学生对应主键都变为NUll值
Python学习第二十四课——Mysql 外键约束的更多相关文章
- Python学习第二十五课——Mysql (多表查询)
多表查询: 内连接查询: 首先:创建两个表一个为tableA,一个为tableB,并且插入数据(代码省略) 同时查询两个表的记录: select * from tableA,tableB; 根据tab ...
- Python学习第二十二课——Mysql 表记录的一些基本操作 (增删改)
记录基本操作: 增:(insert into) 基本语法: insert into 表名(字段) values(对应字段的值): 例子1: insert into employee(id,name,a ...
- Python学习第二十八课——Django(templates)
templates 讲后台得到的数据渲染到页面上:话不多说,先看具体代码. urls: from django.conf.urls import url from django.contrib imp ...
- Python学习第二十八课——Django(urls)
Django框架中的urls配置: 首先通过pycharm创建一个Django项目: 例如要写blog的功能:则在digango_lesson中的urls代码如下: """ ...
- Python学习第二十六课——PyMySql(python 链接数据库)
Python 链接数据库: 需要先安装pymysql 包 可以设置中安装,也可以pip install pymysql 安装 加载驱动: import pymysql # 需要先安装pymysql 包 ...
- Python学习第十四课——面向对象基本思想part1
面向对象的基本思想 # 写法1 person1 = { 'name': 'hanhan', ', 'sex': '男' } def xue_xi(person): print('%s在学习' % pe ...
- 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击
风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...
- NeHe OpenGL教程 第二十四课:扩展
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 风炫安全web安全学习第二十八节课 CSRF攻击原理
风炫安全web安全学习第二十八节课 CSRF攻击原理 CSRF 简介 跨站请求伪造 (Cross-Site Request Forgery, CSRF),也被称为 One Click Attack 或 ...
随机推荐
- 转载:Bass management
https://kenrockwell.com/audio/bass-management.htm https://www.axiomaudio.com/blog/bassmanagement htt ...
- python 中模块的版本号
查看所使用的模块的版本号,以numpy为例 import numpy numpy.__version__ 查看help(numpy)时,信息太多,不想看了,如何退出,按q,即可.
- (BFS)1097: Yuchang and Zixiang ‘s maze
1097: Yuchang and Zixiang ‘s maze Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 863 Solved: 149 De ...
- Windows server 2012文件服务器配置
文件服务器的管理 Windows server 2012提供了易于使用的管理工具,让系统管理员更有效的管理服务器的资源. 安装文件服务器管理工具 添加角色-安装管理器 安装完成后直接可以在工具中打 ...
- 2019新生赛 %%%xxh
笔记.md ...
- echarts制作html和JavaScript的时钟和代码分析与注释
1.效果图 2.说明: 2.1 代码是大神制作的,我进行修改,感谢大神,原创属于他. 2.2 我对代码进行分析.注释.整理,增加代码的可读性. 2.3 通过上述自己的工作,自己也能熟悉相关的JavaS ...
- Java - Test - TestNG: testng.xml 元素 package
1. 概述 简介 package 元素 packages package exclude include 2. 背景 准备 自动生成了 testng.xml 文件 已经基本了解了 testng.xml ...
- 启动MySQL5.7时报错:initialize specified but the data directory has files in it. Aborting.
启动MySQL5.7时报错:initialize specified but the data directory has files in it. Aborting 解决方法: vim /etc/m ...
- Java:反射机制学习笔记
目录 一.反射机制 1.概述 2.优缺点 3.类加载的过程 二.获取Class对象的三种方式 1.Class.forName("全类名") 2.类名.class 3.对象.getC ...
- Flume基础学习
Flume是一款非常优秀的日志采集工具.支持多种形式的日志采集,作为apache的顶级开源项目,Flume再大数据方面具有广泛的应用 首先需要在Flume的解压目录中conf文件夹中将flume-en ...