外键

Mysq基本操作--DDL

故事扮演 提交于 2020-02-26 03:29:33
1.显示所有数据库 show databases; 2.选择数据库 use dbname; 3.显示当前数据库下所有的表 show tables; 4.创建数据库语句 create database 库名; 例子: 创建besttest数据库 create database besttest CHARSET=utf8 5.查看besttest数据库的信息 show create database besttest; 6.删除数据库besttest drop database besttest; 7.创建数据库中的表 例子: create table 表名 ( school_id int(10) not null auto_increment primary key //非空 自增 主键) 8.主键必须是唯一的,不能为空,一个表里只能有一个主键。 外键可以重复的,可以为空,一个表可以有多个外键,表的外键又是其他表的主键。 9.常见的约束: primary key 主键。unique 唯一。 not null 非空。auto_increment 整数列的自增。CHARACTER SET name 指定字符集,仅限于字符串。 10.desc 表名 查看表的结构信息。/show create table 表名 查看表的结构信息 11.修改表名 alter table 旧表名 rename

mysql外键操作

一世执手 提交于 2020-02-25 22:34:47
增加外键 msyql中提供了两种方式增加外键 方案1:在创建表的时候增加外键(类似主键) 基本语法:在字段后增加一条语句 [constraint`外键名`] foreign key(外键字段) references 主表(主键) create table my_foreign ( id int primary key auto_increment , name varchar ( 10 ) not null , -- 关联班级my_class class_id int , foreign key ( class_id ) references my_class ( class_id ) ) ; mul:多索引,外键本身是一个索引,外键要求外键本身也是一种普通索引 方案2:在创建表后增加外键 alter table 从表 add [constraint外键名`] foreign key() -- 修改my_student表,将class_id设为外键字段 alter table my_student add constraint ` student_class_ibfk_1 ` foreign key ( class_id ) references my_class ( class_id ) ; 修改&删除外键 外键不允许修改,只能先删除后增加 基本语法:alter table 从表

sql - 主键、外键

旧巷老猫 提交于 2020-02-25 16:50:40
一、主键 1.定义 主键(primary key) 一列(或一组列) , 其值能够唯一区分表中的每个行。 唯一标识表中每行的这个列(或这组列)称为主键。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只设计相关的行。 2.充当主键的条件 任何两行都不具有相同的主键值。 每个行都必须具有一个主键值(主键列不允许 NULL值)。 3.创建、增加、删除主键 (1)新建表时直接创建主键 CREATE TABLE table_test( id INT NOT NULL, name VARCHAR(20) NOT NULL, address VARCHAR(20), PRIMARY KEY(id) ); (2)新建表时创建复合键(主键字段不能包含NULL)。 CREATE TABLE table_test( user_id INT NOT NULL, user_name VARCHAR(20) NOT NULL, user_address VARCHAR(20), PRIMARY KEY (user_id, user_name) ); (3)为已建好的表创建主键(主键列必须不能为NULL) CREATE TABLE table_test( id INT NOT NULL, name VARCHAR(20) NOT NULL, address VARCHAR(20) ); ALTER

【自然框架】元数据的数据库结构的详细说明和示例(一):项目描述部分

女生的网名这么多〃 提交于 2020-02-25 00:33:48
自然框架在线演示: http://pthuanyu.com/ 【自然框架】PowerDesigner 格式的元数据的表结构 自然框架的源码、Demo、数据库、说明文档的下载,还是老地方: 自然框架的源代码、Demo、数据库、配置信息管理程序下载(2010.02.21更新)  1、  Manage_Function( 节点信息 )    字段名 中文名 类型 大小 默认值 说明 FunctionID 节点ID int 4 1 主键 ParentID 父节点ID int 4 1 员工姓名 ParentIDPath 父节点ID的路径 nvarchar 30 _ 添加、修改时使用 NoteTitle 节点名称 nvarchar 100 _ 节点名称 PowerMark 权限标识 nvarchar 50 _ 一般情况下等于FunctionID NoteLevel 级数 int 4 1 第几级节点 IsShowNote 节点是否显示 bit 1 1 功能节点里面是否显示 IsShowPower 角色是否显示 bit 1 1 角色选择是否显示 Sort 排序 int 4 1 排序。全部节点的总排序 WebURL 网址 nvarchar 100 _ 打开网页的网址 Target 目标 nvarchar 10 _ 目标 这个表就是元数据的“支柱”了。记录了一个项目里都有哪些功能,功能对应的页面

MySQL外键的学习总结

一曲冷凌霜 提交于 2020-02-24 10:49:19
MySQL外键的学习 外键的作用:保证数据统一性 创建外键条件:关联的外键必须是父表的主键 上图: option_model的device_name字段已经关联了option_name的device_name字段,且该字段为主键,然后我们创建了第三个表想用第三个表中的device_model字段关联option_model中的device_model字段,发现不成功,这是因为再option_model表中device_model字段不是主键,我们把option_model中的device_model字段改为主键后又执行了相同操作,执行成功! 来源: CSDN 作者: weixin_45919968 链接: https://blog.csdn.net/weixin_45919968/article/details/104471749

MySQL ----数据库操作

我的梦境 提交于 2020-02-24 10:03:35
SQL语法组成 • DML( Data Manipulation Language数据操作语言 查询、插入、删除和修改数据库中的数据; SELECT、INSERT、 UPDATE 、DELETE等; • DCL( Data Control Language数据控制语言) ——用来控制存取许可、存取权限等; ——GRANT、REVOKE 等; • DDL( Data Definition Language数据定义语言) ——用来建立数据库、数据库对象和定义其列 ——CREATE TABLE 、DROP TABLE、ALTER TABLE 等 • 功能函数 ——日期函数、数学函数、字符函数、系统函数等 可以添加BINARY关键字让 MySQL执行区分大小写的比较。 mysql 连接数据库 mysql -h host_name -u user_name –ppassword 导入数据库 mysql –u root –p --default-characterset=latin1 dbname < backup.sql 导出数据库 mysqldump –u root –p tmpdb > backuptmp.sql 创建数据库 mysqladmin –u root –p create newdb 删除数据库 mysqladmin –u root –p drop newdb 更改密码

drf序列化高级、自定义只读只写、序列化覆盖字段、二次封装Response、数据库查询优化(断关联)、十大接口、视图家族、自动补全图片链接

混江龙づ霸主 提交于 2020-02-24 09:40:35
目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 序列化类其他配置(了解) 十大接口 BaseSerializer初始化方法 十大接口序列化总结 单查群查 单增群增 单删群删 单整体改/群整体改 单局部改/群局部改 群增群改配置 十大接口小结 字段提供就校验,不提供拉到 DjangoORM内置优化机制:一次最多查21条数据 models.py response.py serializers.py urls.py 视图家族 视图基类 APIView、GenericAPIView 基于GenericAPIView的十大接口 视图工具类:mixins包 工具视图类 generics工具包:继承指定类 工具 基于generics包下工具视图类的六大基础接口 视图集(开发常用,最高级) 路由组件(繁琐,可以自定义映射关系) 路由组件(简化) 视图组件 views.py 重写删除方法:destroy 群删接口 视图级使用总结 自定义路由组件(了解) 上传文件接口 图片自动补全后台图片链接 自定义只读 自定义只读:Model类中 @property def 字段(self): return "字段值" models.py class Book(BaseModel): name = models

HIbernate 一对多 多对多

烂漫一生 提交于 2020-02-23 21:42:26
一、一对多关系 1.概念 ​   一对多关系是关系型数据库中两个表之间的一种关系。通常在数据库层级中,两表之间是有主外键关系的。在ORM中,如何通过对象描述表之间的关系,是ORM核心。 2.Hibernate的一对多关联映射【重点】 2.1表关系的分析 MySql语句 CREATE TABLE `t_category` ( `cid` int(11) NOT NULL AUTO_INCREMENT, `cname` varchar(255) DEFAULT NULL, PRIMARY KEY (`cid`) ); ​ CREATE TABLE `t_product` ( `pid` int(11) NOT NULL AUTO_INCREMENT, `pname` varchar(255) DEFAULT NULL, `price` double DEFAULT NULL, `cid` int(11) DEFAULT NULL, PRIMARY KEY (`pid`), KEY `FKq8yr5sflwtcj3jqp58x0oy7lx` (`cid`), CONSTRAINT `FKq8yr5sflwtcj3jqp58x0oy7lx` FOREIGN KEY (`cid`) REFERENCES `t_category` (`cid`) ); 2.2创建持久化类 Category

JPA的多表设计

拟墨画扇 提交于 2020-02-23 13:31:44
表之间关系的划分 数据库中多表之间存在着三种关系,如图所示。 从图可以看出,系统设计的三种实体关系分别为:多对多、一对多和一对一关系 。注意:一对多关系可以看为两种: 即一对多,多对一。所以说四种更精确。 明确: 我们今天只涉及实际开发中常用的关联关系,一对多和多对多。而一对一的情况,在实际开发中几乎不用。 1 在 JPA 框架中表关系的分析步骤 在实际开发中,我们数据库的表难免会有相互的关联关系,在操作表的时候就有可能会涉及到多张表的操作。而在这种实现了 ORM 思想的框架中(如 JPA ),可以让我们通过操作实体类就实现对数据 库表的操作。所以今天我们的学习重点是:掌握配置实体之间的关联关系。 第一步:首先确定两张表之间的关系。 如果关系确定错了,后面做的所有操作就都不可能正确。 第二步:在数据库中实现两张表的关系 第三步:在实体类中描述出两个实体的关系 第四步:配置出实体类和数据库表的关系映射(重点) 2 JPA 中的一对多 2.1 示例分析 我们采用的示例为客户和联系人。 客户:指的是一家公司,我们记为 A 。 联系人:指的是 A 公司中的员工。 在不考虑兼职的情况下,公司和员工的关系即为一对多。 2.2 表关系建立 在一对多关系中,我们习惯把一的一方称之为主表,把多的一方称之为从表。在数据库中建立一对多的关系,需要使用数据库的外键约束。 什么是外键? 指的是从表中有一列

DRF之子序列化、model类(四)

会有一股神秘感。 提交于 2020-02-23 00:49:51
一、二次封装Resonse responses.py from rest_framework.response import Response class APIResponse(Response): def __init__(self, status=None, msg=None, http_status=None, *args, **kwargs): data = { 'status': status, 'msg': msg, } if kwargs: data.update(kwargs) super().__init__(status=http_status,data=data) 二、数据库关系分析 ''' 1.相互有关系的两张表,增删改操作会相互影响,导致效率低下,查询操作就是正常的连表操作 2.相互有关的两张表,断开外键关系,但从代码逻辑层面保持原来的联系 - 这样一来,每个表都可以单独操作,提高了增删改查的效率,在开发中要避免由此带来的脏数据,事务 + 代码层面的逻辑约束 - 由于数据没有发生变化,查询的连表操作不会受到影响 3. django的orm支持断关联操作关系表,且所有的操作方式和没有断开关联的操作是一致的(在django2.0以上默认不进行级联更新) ''' 三、orm操作关系 ''' 外键位置: 1.一对多的外键关系,FK毫无疑问建立在多的乙方