外键

笔记<一>

我怕爱的太早我们不能终老 提交于 2019-11-28 21:56:57
包含接口、异常、mysql、JDBC 1、接口不能被实例化 接口可以被继承 接口可以有多个实现类 接口中不能有私有成员 本身是抽象的,接口是方法特征的集合,但没有方法的实现 接口的全部方法都是抽象方法 接口不能定义变量,只能声明静态常量 接口中的方法没有方法体 一个接口可以继承多个接口:Interface3 Extends Interface0, Interface1, 抽象类单继承,接口多继承 2、SQL 1)MySQL设置表的默认字符集关键字是: 2)MySQL内连接 inner join 唯一索引:unique 3)数据类型:数值类型,日期和时间类型(DATETIME、DATE、TIMESTAMP、TIME和YEAR)字符串类型(CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET) 4)查看系统中可用的字符集命令:show character set 修改数据库级别的命令是:alter database edu character set utf-8 5)存储引擎:InnoDB引擎支持外键约束,支持事务。MyISAM不支持事务,不支持外键约束 6)port:客户端和服务器端的端口号;MySQL默认端口为3306 character_set_server:默认的内部操作字符集,服务器端默认字符集 character_set

14 个实用的数据库设计技巧

孤者浪人 提交于 2019-11-28 20:30:59
点击上方“ 后端技术精选 ”,选择“置顶公众号” 技术文章第一时间送达! 作者:echozh juejin.im/post/5d5b4c6951882569eb570958 原始单据与实体之间的关系 主键与外键 基本表的性质 范式标准 通俗地理解三个范式 要善于识别与正确处理多对多的关系 主键PK的取值方法 正确认识数据冗余 E--R图没有标准答案 视图技术在数据库设计中很有用 中间表、报表和临时表 完整性约束表现在三个方面 防止数据库设计打补丁的方法是“三少原则” 提高数据库运行效率的办法 1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。 2. 主键与外键 一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中

Django 基础一

核能气质少年 提交于 2019-11-28 20:19:24
目录 ORM关系建立 django请求生命周期流程图 urls.py 路由层 路由匹配 无名分组: 有名分组: 反向解析 第一种情况:路由中没有正则表达式 直接是写死的 第三种情况: 路由分发(******) 名称空间 伪静态 虚拟环境 视图层 ORM关系建立 先不考虑外键,先创基表 一对一 一般用在需要分级显示的情况(本来一张表可以的,被拆成了两张表,就成了一对一) 一对多 外键字段设在“多”的那张表里 多对多 需要建立一张单独的表来设置外键关系 图书管理系统之 作者表 from django.db import models # 先创建基表,暂不考虑外键 class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8, decimal_places=2) publish = models.Foreignkey(to='Publish') # to用来指代跟哪张表有关系 默认关联的就是表的主键字段 出版社表: class publish(models.Model): title = models.Charfield(max_length=32) age = models.EmailField() 作者表: class Author

django(一)

橙三吉。 提交于 2019-11-28 19:57:45
django 1. django的准备工作 django的下载 ​ pip install django==1.11.23 -i 国内源 django项目的创建 django-admin startproject 项目名 django项目的启动 python manage.py runserver 可以接ip地址 django app的创建 python manage.py startapp app名字 2. 配置 templates 模板 dirs[os.path.join(BASE_DIR,'templates')] DATABASES 数据库 暂时用mysql 相应的配置 INSTALLED_APPS=[ 'appname.apps.AppnameConfig'] app安装 STATIC_URL = '/static/' 静态文件别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ##之后使用的所有相关前端的文件,都放在static文件里,路径前加上/static/ * 这里的static是 STATIC_URL里面的/static/ 并不是你创建的static文件,即使你创建os.path.join(BASE_DIR,'lala') 你还是要使用/static/开头* ] 3. 使用数据库 创建数据库 在 _

存储引擎

时光怂恿深爱的人放手 提交于 2019-11-28 19:44:34
存储引擎 存储数据的的方式 # 存储引擎 -- 存储数据的方式 # 一张表 # 数据 # 表的结构 # 索引(查询的时候使用的一个目录结构) # 面试题 # 你了解mysql的存储引擎么? # 你的项目用了什么存储引擎,为什么? # innodb # 多个用户操作的过程中对同一张表的数据同时做修改 # innodb支持行级锁,所以我们使用了这个存储引擎 # 为了适应程序未来的扩展性,扩展新功能的时候可能会用到...,涉及到要维护数据的完整性 # 项目中有一两张xx xx表,之间的外键关系是什么,一张表的修改或者删除比较频繁,怕出错所以做了外键约束 数据的存储方式 -- 存储引擎engines innodb常用 myisam memory 使用不同的存储引擎,数据是以不同的方式存储的 show engines; 查看存储引擎 mysql支持哪些存储引擎? mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 最常见 Innodb Myisam Memory Innodb存储引擎 创建表的时候 # Innodb存储引擎(印欧db) mysql5.6之后的默认的存储引擎 #

MySQL 索引

最后都变了- 提交于 2019-11-28 18:22:42
[1]索引不是万能的! 索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。 [2]另外,索引还会在硬盘上占用相当大的空间。 因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。 从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。 1. InnoDB数据表的索引 与MyISAM数据表相比,索引对InnoDB数据的重要性要大得多。在InnoDB数据表上,索引对InnoDB数据表的重要性要在得多。在 InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。”数据行级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT…LOCK IN SHARE MODE、SELECT…FOR

sql数据库基础T-sql语句

只愿长相守 提交于 2019-11-28 18:10:51
注:示例中的表名以及字段名有一些不统一,若有看到的不要直接代入执行。参考语法结构即可。 1.创建数据库 /*创建数据库libraryDB*/ CREATE DATABASE libraryDB ON ( /*数据库文件的详细描述*/ name= 'libraryDB_mdf', --主数据库文件的逻辑名 filename = 'E:\library\libraryDB_mdf.mdf', --主数据文件的物理名 size = 3MB, --初始大小 maxsize=100,--最大值 fiegrowth= 20% --增长率 ) LOG ON ( /*日志文件的详细描述*/ NAME = 'libraryDB_ldf', --日志文件的逻辑名 FILENAME = 'E:\library\libraryDB_ldf.ldf', --日志文件的物理名 SIZE = 1MB, --初始大小 MAXSIZE = 15MB, --最大值 FILEGROWTH = 10% --增长率 ) GO 2.数据表(创建/修改/删除) --判断BookType表是否存在,存在则删除 if exists (select 1 from sysobjects where [name]='BookType') begin drop table BookType end --创建图书类型表:BookType

mysql索引1908

百般思念 提交于 2019-11-28 15:15:47
知识小结 添加中。。。 安装数据库 zip安装 (课下成功课上失败), 简易安装包方式 , 库操作 mysql-数据库操作-连接-创建-删除-修改编码-查询-切换 表操作 mysql-数据表的定义操作 查询操作 mysql-查询例题大全 子查询,https://blog.csdn.net/ifubing/article/details/99760027 mysql-自关联-未完成 - pyhui的python全栈技术博客 - CSDN博客 https://blog.csdn.net/ifubing/article/details/99758706 外键 mysql-外键操作-级联删除 - pyhui的python全栈技术博客 - CSDN博客 https://blog.csdn.net/ifubing/article/details/99865581 演练 mysql-数据库的设计三范示与ER模型,https://blog.csdn.net/ifubing/article/details/99760860 mysql-电商库演练1-创建数据-基本查询练习 https://blog.csdn.net/ifubing/article/details/99763135 mysql-电商库演练2-拆表-修改字段-添加外键 https://blog.csdn.net/ifubing

MySql学习笔记

孤街醉人 提交于 2019-11-28 13:04:13
原文: http://blog.gqylpy.com/gqy/473 置顶:来自一名75后老程序员的武林秘籍——必读 (博主推荐) 来,先呈上武林秘籍链接: http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我会画原理图,会画 PCB,会模拟,会数字!玩过 PLC,玩过单片机,会用汇编,会用 C!玩过 ARM,比如 PLC,STM32,和时下正在起飞的 NXP RT1052!搞过 DSP,比如 TMS320F28335!搞过 FPGA,不管 Xilinx 还是 Altera,也不管是 Verilog 还是 VHDL,或者直接画数字电路图!我懂嵌入式系统,比如 uCOS 和 Linux!我懂开源的硬件,比如 Arduino 和树莓派!我也搞软件,学了一堆上位机的语言C#,JAVA,Python,Kotlin,Swift!会写爬虫工具,又自学写APP,不管Android 还是 IOS! 可是这一切有什么用呢?土鸡瓦狗!不值一提!干技术的永远就是最苦逼的那个人! 我相信看到这里的你,应该是个 IT

MySQL外键+唯一索引

痴心易碎 提交于 2019-11-28 12:32:47
MySQL外键+唯一索引 2019-08-22 1.外键 是指一个表里的列与另一张表里的列进行关系连接,可用于使用简单的数字或字母替代复杂的数据结构,不仅可以节省空间,也拥有约束功能,可减少书写出错的机会。 1.1使用方式 constraint 变量名 foreign key (列名) references 表名2(列名2); 其中变量名是自己给定的,约定不可以有重复; 列名即需要连接外键的列; 表名2值指的是外键的表; 列名2是和表中连接对应的列; 1.2实例 例如下面两个表,表1是机器状态表,表2是机器信息表;将机器的四个状态通过1,2,3,4这4个值表示出来: create table machinestatus( status_id int auto_increment primary key, status_name char(20) )engine=innodb default charset=utf8; insert into machinestatus(status_name) values("待机"),("运行"),("故障"),("关机"); create table machineinfo( id int auto_increment primary key, identifier int not null, status int, constraint fk