外键

python使用mysql

橙三吉。 提交于 2020-02-08 04:33:48
昨日内容: 一. 外键的变种 (*************) 唯一索引 unique('name') : 此列是不能重复的 联合唯一索引: unique('name', 'age') : 这两列的值不能重复 一对多 department: id depart_name 1 公关部 2 xxx 部 user: id username depart_id (外键的约束) 1 root 1 2 root2 2 3 root3 1 一对一 看业务的需求 user: id username depart_id (外键的约束) 1 root 1 2 root2 2 3 root3 1 blog: id url user_id (唯一 + 外键约束) 1 /root/ 1 2 /root3/ 3 多对多 user: id username 1 root 2 root2 3 root3 host: id hostname 1 c1.com 2 c2.com 3 c3.com user2host: id uid hid (联合唯一 + 外键) 1 1 1 2 1 2 3 3 1 4 3 3 二. 数据行的详细操作 增: insert into t1 (name, age) values ('lxxx', 12); insert into t1 (name, age) values ('lxxx',

市政道桥表结构设计

前提是你 提交于 2020-02-08 02:46:31
智慧道桥监管平台数据库设计说明书 引言 编写目的 为了完成系统的数据结构设计,为下一步的开发做好准备,编写本文档。由于本系统目前是产品的第一个版本,而与竞争产品相比,系统在灵活配置、业务覆盖范围等方面会做比较大的改进。 本文档预期的读者是产品设计、开发人员和测试人员。 背景 产品名称:智慧道桥监管平台 任务提出者:北京数字政通科技股份有限公司 任务开发者:数据服务产品部 第一用户:城管局、市政处 术语定义 设计规范 数据库表规范 (1)表名格式:模块名_表含义名,如 认证中心人员表:auth_human;如果系统功能简单,没有划分为模块,则可以以系统英文名称的缩写作为前缀,否则以各模块的英文名称缩写作为前缀 (2)不再使用tc_,to_,tr_前缀 (3)表的名称必须易于理解,使用能表达功能的英文单词或缩写英文单词,词间以_分割 (4)在命名表时,用单数形式表示名称。例如,使用auth_human,而不是auth_humans (5)表名用小写 (6)表名称长度不能超过30个字符(几种数据库中Oracle要求最高) (7)职责相近的表,命名规则应该相同 数据库字段规范 (1)业务表须要有主键,例如自增主键 (2)字段名称必须易于理解,使用能表达功能的英文单词或缩写英文单词,词间以_分割 (3)字段名用小写,且需要加入中文注释 (4)字段名称长度不能超过30个字符

SQL的主键和外键约束

左心房为你撑大大i 提交于 2020-02-08 01:43:59
SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。 (4)更新主键记录时,同样有级联更新和拒绝执行的选择。 简而言之,SQL的主键和外键就是起约束作用。 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。 比如: 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键; 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键; 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以,学号和课程号的属性组是一个主键。 成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键;同理,成绩表中的课程号是课程表的外键。 定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 一、主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 外键用于与另一张表的关联

DDL/DML/DCL区别概述

橙三吉。 提交于 2020-02-05 09:04:48
https://www.cnblogs.com/kawashibara/p/8961646.html DDL DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:Create创建数据表,Alter可以更改该表的字段,Drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操作。 DDL的主要语句(操作) Create语句:可以创建数据库和数据库的一些对象。 Drop语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。 Alter语句:修改数据表定义及属性。 DDL的操作对象(表) 表的概念 表的创建就是用来存放数据用的,由于我们存放的数据的不通,所以我们需要定义些数据类型,以方便管理。 表的属性 主键属性:主键就是主键约束,只不过起的名字不同了,主键的起名偏向于虚的(就是描述描述这件事),主键约束起名偏向于实得(就是描述操作的实施),描述的都是同一件事,主键约束就是表中的一个属性;在一个表中最多可以有一个主键

DDL DML DCL

一世执手 提交于 2020-02-05 09:03:12
1、DDL 1-1、DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:Create创建数据表,Alter可以更改该表的字段,Drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操作。 1-2、DDL的主要语句(操作) Create语句:可以创建数据库和数据库的一些对象。 Drop语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。 Alter语句:修改数据表定义及属性。 1-3、DDL的操作对象(表) 1-3-1、表的概念 表的创建就是用来存放数据用的,由于我们存放的数据的不同,所以我们需要定义些数据类型,以方便管理。 1-3-2、表的属性 主键属性:主键就是主键约束,只不过起的名字不同了,主键的起名偏向于虚的(就是描述描述这件事),主键约束起名偏向于实的(就是描述操作的实施),描述的都是同一件事,主键约束就是表中的一个属性;在一个表中最多可以有一个主键;一个主键可以定义在一个或多个字段;主键使一个或多个字段的值必须唯一且不为空

数据库设计中的12个技巧

不问归期 提交于 2020-02-04 10:43:13
数据库设计中的12个技巧 1.原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张 原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一 张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。 明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情 况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。 2.主键与外键 一般而言,一个实体不能既无主键又无外键。在E—R图中,处于叶子部位的实体,可 以定义主键,也可以不定义主键(因为它无子孙),但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成 以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就 是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为: 主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。 3.基本表的性质 基本表与中间表、临时表不同,因为它具有如下四个特性: (1)原子性。基本表中的字段是不可再分解的。 (2)原始性。基本表中的记录是原始数据(基础数据)的记录。 (3)演绎性

数据库设计中的13个技巧

 ̄綄美尐妖づ 提交于 2020-02-04 10:27:06
1.原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。 2.主键与外键 一般而言,一个实体不能既无主键又无外键。在E—R图中,处于叶子部位的实体,可以定义主键,也可以不定义主键(因为它无子孙),但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。 3.基本表的性质 基本表与中间表、临时表不同,因为它具有如下四个特性: (1)原子性。基本表中的字段是不可再分解的。 (2)原始性。基本表中的记录是原始数据(基础数据)的记录。 (3)演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。 (4

数据库设计中的14个关键技巧

爷,独闯天下 提交于 2020-02-04 10:24:56
1. 原始单据与实体之间的关系  可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。   〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。  2. 主键与外键  一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。   主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。  3. 基本表的性质   基本表与中间表、临时表不同,因为它具有如下四个特性:    (1) 原子性。基本表中的字段是不可再分解的。    (2) 原始性。基本表中的记录是原始数据(基础数据)的记录。    (3) 演绎性

主外键多表查询demo

南楼画角 提交于 2020-02-04 03:13:44
https://www.cnblogs.com/DragonFire/p/6949767.html mySQL练习-主外键多表查询 MySQL练习-主外键多表查询 练习: 1.建立表关系: 请创建如下表,并创建相关约束 创建表并建立表关系 表数据 补充联合唯一 2.操作练习: 1、自行创建测试数据 测试失败数据 2、查询“生物”课程比“物理”课程成绩高的所有学生的学号; 多表嵌套查询 3、查询平均成绩大于60分的同学的学号和平均成绩; HAVING用法 4、查询所有同学的学号、姓名、选课数、总成绩; 多表查询 5、查询姓“李”的老师的个数; 1 SELECT count(*) as a from teacher where tname LIKE '李%' 6、查询没学过“叶平”老师课的同学的学号、姓名; 多表查询 7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; 多表查询 8、查询学过“叶平”老师所教的所有课的同学的学号、姓名; 乱七八糟一大堆 9、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; 多表嵌套查询 10、查询有课程成绩小于60分的同学的学号、姓名; 1 SELECT a. sid ,a. sname FROM student a , score b 2 WHERE a.sid = b.student_id AND