数据库的 join 连接类型
9月 30, 2017
内连接 # 内连接为默认连接方式,只有两张表都匹配的行才显示。 SELECT * from a INNER JOIN b on a.name=b.name; 左(外)连接 # 左边的表不加限制,会全部显示出来,右边的只会显示符合搜索条件的记录,不匹配的记录会以 null 显示。 SELECT * from a LEFT JOIN b on a.name=b.name; 右(外)连接 # 右边的表 … ...
内连接 # 内连接为默认连接方式,只有两张表都匹配的行才显示。 SELECT * from a INNER JOIN b on a.name=b.name; 左(外)连接 # 左边的表不加限制,会全部显示出来,右边的只会显示符合搜索条件的记录,不匹配的记录会以 null 显示。 SELECT * from a LEFT JOIN b on a.name=b.name; 右(外)连接 # 右边的表 … ...
设计一个 Django 的软删除方案,要求数据库在删除的时候不能物理删除数据,同时尽量不要太侵入代码业务。 这里用到了 Django 的 Manager,它赋予了 Django Model 操作数据库的能力,每个 Model 都包含一个 Manager,比如我们常用的 objects 就是默认的 Manger。 这里我替换了默认的 manager,并重新实现了其 get_queryset 方法,这 … ...
最近又重新接触 DRF,翻看文档发现,当时很难理解的东西,如今一看就懂了,顺带看了源码,也比较容易理解,至少比 Django 的源码简单不少。下面开始从 DRF 的设计和源码两个方面,结合自己的看法,谈谈DRF。 APIView # APIView 是 DRF 概念体系中最基本类视图,它基于 Django 的 View,同时又实现了一层对自己创造的概念的封装,比 … ...
由于宿主机安装了 MySQL,为了避免安装 MariaDB 造成 MySQL 无法使用,所以在 Vagrant 中安装 Mariadb。 更换网易 apt-get 源 /etc/apt/sources.list 读取源软件列表 sudo apt update 更新软件版本 sudo apt upgrade 安装 MariaDB sudo apt install mariadb-server 安全性 … ...
从上个月开始在大连云匠实习,在公司做 Python 后端,一个月来收获了很多。 首先是开发的流程和规范方面,之前都是自己做东西,除了实现功能外并没有考虑过多的内容。比如完整的测试用例,软件的设计模式,框架的开发标准,数据的初始化与备份,这些都是很重要的东西,在团队协作的时候更能凸显出来,同时还有需要Git熟练使用,基本在公司做的每一步都需要足够的理由去解释为什么才可以这样去做,不像之前就是各种堆 … ...
做了一个Django小应用,主要内容是一个论坛,经过好几天的研究,也可以在服务器端运行了,以下所有代码中的操作都需要在命令行运行。 安装MySQL # apt-get update apt-get install mysql-server mysql-client 根据提示设置 MySQL root用户密码 MySQL设置中文utf8格式 # 一般在/etc/mysql下 [client]下添 … ...
代码添加按钮和按钮监听方法 // ViewController.m #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)tapButton:(UIButton *)sender{ NSLog(@"我 …
iOS 中 textFieldShouldReturn 方法定义在 UITextFieldDelegate 协议中 // ViewController.m #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { … ...
ListA()创建一个链表并插入一个元素,ListB()创建一个链表并删除两个数之间的元素。 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h> #define NULL 0 void listA(){ static int n; int …
练习2 # //从Detergent中继承产生一个新的类,覆盖scrub()并添加一个名为sterilize()的新方法。 class Cleanser{ private String s = "Cleanser"; public void append(String a ){ s+=a; } public void dilute(){ append(" …