外键

MYSQL学习笔记一

和自甴很熟 提交于 2019-12-05 12:25:54
MYSQL学习笔记一 安装MYSQL服务以及安装图形界面软件 数据库基础知识 数据库定义 数据表 模式 关系数据库 关系数据库的特点 二维表 行 列 数据类型 主键 外键 MYSQL数据库管理系统 MYSQL视图 MYSQL存储过程 安装MYSQL服务以及安装图形界面软件 因为MYSQL和Navicat for SQL的安装已经有了相应的教程了,这里就不需要再次描述,不过当第一次用root用户登录MYSQL的时候需要马上更改密码,不然会一直提示要求更改密码的。改密码的方法有很多,这里仅在图1展示在DOS界面下修改密码的其中一种方式。 图1.修改密码 不过要注意在最后要加上分号再按回车。 数据库基础知识 数据库定义 数据库的话我认为有两种定义,第一种数据库是一个存储,组织,管理数据的仓库。第二种数据库是一些关联表的集合。 图2.数据库 数据表 数据表是一种结构化的文件,可用来存储某种特定类型的数据。是数据库的组成元素。 图3.数据表 模式 关于数据库和表的布局及特性的信息称为该数据库的模式。 关系数据库 关系数据库是建立在关系模型基础上的数据库。 关系数据库的特点 1.数据以表格的形式出现。 2.每行为各种记录名称。 3.每列为记录名称所对应的数据域。 4.许多的行和列组成一张表单。 5.若干的表单组成database。 二维表 关系数据库的数据表称为二维表。 行 在图3的数据表中

SQL的主键和外键约束

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

MySQL入门笔记1

☆樱花仙子☆ 提交于 2019-12-05 11:34:51
SQL语句基本用法: 1. SQL语句分类: 1.1 数据定义语言 : 简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter(修 改),drop(删除)等 ; 1.2 数据操作语言:(重点掌握) 简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update 等; 1.3 数据控制语言: 简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户; 1.4 数据查询语言:(重点掌握) 简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等。 2.SQL通用语法: 2.1 语法格式: (1)SQL语句可以单行或多行书写,需以英文分号结尾; (2) 可使用空格、缩进、折行来增强语句的可读性(由于SQL语句只以分号作为结尾,所以原则上可以无限制空格 折行); (3)MySQL数据库的SQL语句不区分大小写,关键字建议使用大写,变量名使用小写,例如:SELECT * FROM user。 (4)SQL通用注释: 单行注释:--空格+注释内容 多行注释:/* 注释内容*/ (注:多行注释不能嵌套)

ORM表之间高级设计

穿精又带淫゛_ 提交于 2019-12-05 11:29:22
ORM表之间高级设计 一、表的继承 # db_test1 # 一、基表 # Model类的内部配置Meta类要设置abstract=True, # 这样的Model类就是用来作为基表 # 多表:Book,Publish,Author,AuthorDetail class BaseModel(models.Model): # 实现表公共字段的继承 create_data = models.DateTimeField(auto_now_add=True) is_delete = models.BooleanField(default=False) class Meta: # 基表必须设置abstract,基表就是给普通Model类继承使用的 # ,设置了abstract就不会完成数据库迁移完成建表,这张表不会被创建 abstract = True class Book(BaseModel): # 书 name = models.CharField(max_length=49) price = models.DecimalField(max_digits=5, decimal_places=2) class Publish(BaseModel): # 出版社 name = models.CharField(max_length=50) address = models.CharField

MySQL学习之基本语法

故事扮演 提交于 2019-12-05 11:15:43
MySQL学习笔记之数据库、数据表的基本操作 MySQL是一种小型关系型数据库管理系统 1.SQL语言的分类 数据定义语言(DDL): DROP、CREATE、ALTER等语句 数据操作语言(DML): INSERT、UPDATE、DELETE 数据查询语言(DQL): SELECT 数据控制语言(DCL): GRANT、REVOKE、COMMIT、ROLLBACK等语句 <!--more--> <br/> 2.数据库访问接口 ODBC(ODBC,开放数据库互连) ADO.NET(.NET) PDO(PHP) JDBC(JAVA) 用于Java应用程序连接数据库的标准方法,是一种用户执行SQL语句的Java API,可以为多种关系数据库提供统一访问,他是由一组用Java语言编写的类和接口组成。 <br/> 3.MySQL数据库的登录和访问 1. Windows 启动MySQL服务: net start MySQL 关闭MySQL服务: net stop MySQL 注意: 以上命令中 MySQL 是你MySQL服务的名称(Windows服务管理器,在搜索框中输入 services.msc ), 比如:你在服务管理器中看到你的MySQL服务名称是: mysql ,那么,你的命令就应该改为: 启动: net start mysql 关闭: net stop mysql 2. Linux

MYSQL学习笔记

隐身守侯 提交于 2019-12-05 11:13:47
MYSQL学习笔记   关于MYSQL的入门,主要参考 菜鸟教程 。本篇主要记录一些补充说明。 一、创建数据表 CREATE TABLE IF NOT EXISTS `runoob_tbl` ( `runoob_id` INT UNSIGNED AUTO_INCREMENT , `runoob_title` VARCHAR ( 100 ) NOT NULL , `runoob_author` VARCHAR ( 40 ) NOT NULL , `submission_date` DATE , PRIMARY KEY ( `runoob_id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 ;    此段代码中,ENGINE=InnoDB 表示存储引擎。mysql存储引擎参考 Mysql 存储引擎的区别和比较 。CHARSET表示编码。 二、UNIQUE、PRIMARY KEY与FOREIGN KEY   UNIQUE 约束唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。同时PRIMARY KEY不可以有NULL值。   简单理解

Django-rest Framework(五)

柔情痞子 提交于 2019-12-05 11:12:42
把十大接口做完了才能更好的了解后面的视图类 1.(重点)二次封装Response;自定义APIResponse继承Response,重写 ____init____方法 from rest_framework.response import Response #导入Response类 class APIResponse(Response): #继承Response类 def __init__(self,status=0,msg='ok',results=None,http_status=None,headers=None,exception=None,**kwargs): #重写__init__方法 data = { 'status':status, 'msg':msg } if results is not None: data['result'] = results data.update(**kwargs) #接收其他多余参数 # 再使用父类的__init__方法 super().__i 2.(正常)在orm的模型表中,设置了abstract为True的模型类,称之为基类,这样的模型类是专门作为基类来提供公有属性的(基类不会参与数据迁移) class BaseModel(models.Model): #继承基础模型类 is_delete = models

Mysql存储引擎

笑着哭i 提交于 2019-12-05 11:10:58
一、什么是存储引擎 关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel 的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于 MySQL 来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用 MySQL 强大的功能。这篇博文将总结和分析各个引擎的特点,以及适用场合,并不会纠结于更深层次的东西。我的学习方法是先学会用,懂得怎么用,再去知道到底是如何能用的。下面就对 MySQL 支持的存储引擎进行简单的介绍。 二、mysql 存储引擎 1 、 mysql 5.5 之前默认 存储引擎 是 MyISAM , mysql 5.5 之后改为 InnoDB (支持事务,最常用) 2 、使用以下命令可以查看MySQL 支持的引擎 show engines; 三、mysql 常用存储引擎的特点 1 、MyISAM MyISAM 表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM 存储引擎。 MyISAM 存储引擎特别适合在以下几种情况下使用: (1 )选择密集型的表。 MyISAM

第四阶段:DRF day79 DRF--DRF中通过ModelSerializer实现单查单增群查群改等操作

a 夏天 提交于 2019-12-05 07:32:55
目录 一、昨日内容复习 二、今日内容学习 三、今日练习 练习A 练习B 一、昨日内容复习 """ 1、新建django项目、注册drf、设置国际化、配置数据库(修改数据库操作模块)、自定义Model类(设置文件类型字段和选项字段)、配置media及开放media资源接口 2、继承Serializer类的基础序列化类,可以将对象序列化成前台所需数据 3、继承Serializer类的基础反序列化类,可以指定一系列前台提供的数据的校验规则,确保数据安全 4、重点掌握整合序列化与反序列为一体的继承ModelSerializer类的序列化类 设置序列化与反序列化字段,并进行区分 提供自定义序列化字段以及自定义反序列化字段 设置系统校验规则、局部钩子校验规则与全局钩子校验规则 """ 二、今日内容学习 """ 1、(重点)二次封装Response:自定义APIResponse继承Response,重写__init__方法 {'status':0,'msg'ok','results':{}} class APIResponse(Response): def __init__(self, status, msg, ..., **kwargs): # status+msg+kwargs => data super().__init__(data, ...) 2、(正常

关于数据库主键和外键

删除回忆录丶 提交于 2019-12-05 06:45:41
关于数据库主键和外键(终于弄懂啦) 一、什么是主键、外键: 关系型 数据库 中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键 成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键 同理 成绩表中的课程号是课程表的外键 定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。 身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。 比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。 二、 主键、外键和索引的区别 主键、外键和索引的区别? 主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的,