09 2020 档案
摘要:备份方式 使用命令行实用程序mysqldump转储所有数据库内容到某个外部文件。在进行常规备份前这个实用程序应该正常运行,以便能正确地备份转储文件。 可用命令行实用程序mysqlhotcopy从一个数据库复制所有数据(并非所有数据库引擎都支持这个实用程序)。 可以使用MySQL的BACK
阅读全文
摘要:管理用户 MySQL用户账号和信息存储在名为mysql的MySQL数据库中 use mysql SELECT user FROM mysql mysql数据库有一个名为user的表,它包含所有用户账号。user 表有一个名为user的列,它存储用户登录名 创建用户 CREATE USER ben I
阅读全文
摘要:使用字符集和校对顺序 查看所支持的字符集完整列表,使用以下语句: SHOW CHARACTER SET; 为了查看所支持校对的完整列表,使用以下语句: SHOW COLLATION; 此语句显示所有可用的校对,以及它们适用的字符集。可以看到有的字符集具有不止一种校对。例如,latin1对不同的欧洲语
阅读全文
摘要:并非所有引擎都支持事务处理 MySQL支持几种基本的数据库引擎。正如本章所述,并非所有引擎都支持明确的事务处理管理。MyISAM和InnoDB是两种最常使用的引擎。前者不支持明确的事务处理管理,而后者支持。 事务处理(transaction processing)可以用来维护数据库的完整性,它保证成
阅读全文
摘要:触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句): DELETE; INSERT; UPDATE。 其他MySQL语句不支持触发器。 创建触发器 在创建触发器时,需要给出4条信息: 唯一的触发器名; 触发器关联的表;
阅读全文
摘要:由前几章可知,MySQL检索操作返回一组称为结果集的行。这组返回的行都是与SQL语句相匹配的行(零行或多行)。使用简单的SELECT语句,例如,没有办法得到第一行、下一行或前10行,也不存在每次一行 地处理所有行的简单方法(相对于成批地处理它们)。 有时,需要在检索出来的行中前进或后退一行或多行。这
阅读全文
摘要:默认的MySQL语句分隔符为;(正如你已经在迄今为止所使用的MySQL语句中所看到的那样)。mysql命令行实用程序也使用;作为语句分隔符。如果命令行实用程序要解释存储过程自身内的;字符,则它们最终不会成为存储过程的成分,这会使存储过程中的SQL出现句法错误。 解决办法是临时更改命令行实用程序的语句
阅读全文
摘要:存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。 为什么使用存储过程 通过把处理封装在容易使用的单元中,简化复杂的操作(正如前面例子所述)。 由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果所有开发人员和应
阅读全文
摘要:视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 下面是关于视图创建和使用的一些最常见的规则和限制。 与表一样,视图必须唯一命名(不能给视图取与别的视图或表相 同的名字)。 对于可以创建的视图数目没有限制。 为了创建视图,必须具有足够的访问权限。这些限制通常由数
阅读全文
摘要:重命名单个表 RENAME TABLE cust1 TO custnew; 重命名多个表 RENAME TABLE cust1 TO custnew, product TO products;
阅读全文
摘要:为更新表定义,可使用ALTER TABLE语句。但是,理想状态下,当表中存储数据以后,该表就不应该再被更新。在表的设计过程中需要花费大量时间来考虑,以便后期不对该表进行大的改动。 为了使用ALTER TABLE更改表结构,必须给出下面的信息: 在ALTER TABLE之后给出要更改的表名(该表必
阅读全文
摘要:InnoDB是一个可靠的事务处理引擎(参见第26章),它不支持全文本搜索; MEMORY在功能等同于MyISAM,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合于临时表); MyISAM是一个性能极高的引擎,它支持全文本搜索(参见第18章),但不支持事务处理。 混用引擎类型有一个大缺陷。外键
阅读全文
摘要:为了从一个表中删除(去掉)数据,使用DELETE语句。可以两种方式使用DELETE: 从表中删除特定的行; 从表中删除所有行。 **不要省略WHERE子句 ** 在使用DELETE时一定要注意细心。因为稍不注意,就会错误地删除表中所有行。 下面的语句从customers表中删除一行: DEL
阅读全文
摘要:为了更新(修改)表中的数据,可使用UPDATE语句。可采用两种方式使用UPDATE: 更新表中特定行; 更新表中所有行。 不要省略WHERE子句 在使用UPDATE时一定要注意细心。因为稍不注意,就会更新表中所有行。 基本的UPDATE语句由3部分组成,分别是: 要更新的表; 列名和
阅读全文
摘要:customers表 CREATE TABLE `customers` ( `cust_id` int NOT NULL AUTO_INCREMENT, `cust_name` char(50) NOT NULL, `cust_address` char(50) DEFAULT NULL, `cus
阅读全文
摘要:理解全文本搜索 并非所有的引擎都支持全文本搜索。两个最常使用的引擎为MyISAM和InnoDB,前者支持全文本搜索,而后者不支持 LIKE关键字,它利用通配操作符匹配文本(和部分文本)。使用LIKE,能够查找包含特殊值或部分值的行(不管这些值位于列内什么位置)。 用基于文本的搜索作为正则表达式匹配列
阅读全文
摘要:多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。 这些组合查询通常称为并(union)或复合查询(compound query)。 创建组合查询 可用UNION操作符来组合数条SQL查询。利用
阅读全文
摘要:外部联结 许多联结将一个表中的行与另一个表中的行相关联。但有时候会需要包含没有关联行的那些行。联结包含了那些在相关表中没有关联行的行。这种类型的联结称为外部联结。 在使用OUTER JOIN语法时,必须使用RIGHT或LEFT关键字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右边的表
阅读全文
摘要:无论何时对表进行联结,应该至少有一个列出现在不止一个表中(被联结的列)。标准的联结(内部联结)返回所有数据,甚至相同的列多次出现。自然联结排除多次出现,使每个列只返回一次。 怎样完成这项工作呢?答案是,系统不完成这项工作,由你自己完成它。 自然联结是这样一种联结,其中你只能选择那些唯一的列。这一般是
阅读全文
摘要:使用表别名 别名除了用于列名和计算字段外,SQL还允许给表名起别名。这样做 有两个主要理由: 缩短SQL语句; 允许在单条SELECT语句中多次使用相同的表。 给表使用别名 SELECT vend_name, prod_id, prod_price FROM vendors AS v, produc
阅读全文
摘要:建立两个表,一个存储供应商信息,另一个存储 产品信息。vendors表包含所有供应商信息,每个供应商占一行,每个供 应商具有唯一的标识。此标识称为主键(primary key)(在第1章中首次 提到),可以是供应商ID或任何其他唯一值。 products表只存储产品信息,它除了存储供应商ID(ven
阅读全文
摘要:什么是子查询? 可以把一条SELECT语句返回的结果用于另一条SELECT语句的WHERE子句就是子查询 例子: SELECT cust_id FROM orders WHERE order_num IN (SELECT order_num FROM orderitems WHERE prod_id
阅读全文
摘要:表结构 CREATE TABLE products ( prod_id char(10) NOT NULL, vend_id int NOT NULL, prod_name char(255) NOT NULL, prod_price decimal(8,2) NOT NULL, prod_desc
阅读全文
摘要:表结构 CREATE TABLE products ( prod_id char(10) NOT NULL, vend_id int NOT NULL, prod_name char(255) NOT NULL, prod_price decimal(8,2) NOT NULL, prod_desc
阅读全文
摘要:表结构: desc orders; Field Type Null Key Default Extra order_num order_date cust_id int datetime int NO NO NO PRI MUL NULL NULL NULL auto_increment 表数据:
阅读全文
摘要:Upper()将文本装换为大写 SELECT vend_name, Upper(vend_name) AS vend_name_upcase FROM vendors; Left()从左边开始截取字符,Left()接受两个参数,arg1:'处理的字段', arg2:'截取多少个字符' SELECT
阅读全文
摘要:vendors表包含供应商名和位置信息。假如要生成一个供应商报表,需要在供应商的名字中按照name country这样的格式列出供应商的位置 解决方法是把两个列拼接起来。在mysql的SELECT语句中,可使用caocat()函数来拼接两个列 SELECT Concat(vend_name, '('
阅读全文
摘要:百分号(%)通配符 %表示任何字符出现任意次数 SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 'jet%' 匹配prod_name字段里开头是jet的内容 通配符可在搜索模式中任意位置使用,并且可以使用多个统配符 SELEC
阅读全文
摘要:mysql允许多个WHERE子句,这些子句可以两种方式使用:以AND子句的方式或者OR子句的方式使用 为了通过不止一个列进行过滤,可使用AND操作符给WHERE子句附加条件 SELECT prod_name, prod_price FROM products WHERE prod_price ⇐ 1
阅读全文
摘要:子句(clause) SQL的语句由子句构成,有些子句是必须的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。子句的例子有SELEC语句和FROM子句 为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字 SELECT pr
阅读全文
摘要:select 语句的用途是从一个表或多个表中检索信息 为了使用select检索表数据,必须至少给出两条信息:1.想选择什么,2.从什么地方选择 SELECT prod_name FROM products 从products表中,选择prod_name 使用select选择多列。select语句中每
阅读全文
摘要:show 关键字的用法 SHOW DATABASES; 显示所有的数据库 SHOW TABLES; 显示所有的表 SHOW COLUMNS FROM 表名 显示表列 desc或者DESCRIBE语句也能查看表列 SHOW CREATE TABLE customers 显示customers表的创建语
阅读全文
摘要:在idus app中新建service文件夹存放idus文件 idus_contrib.py class IdusConfig(object): def __init__(self, model_class): self.model_class = model_class class AdminSi
阅读全文
摘要:请求不是一下子通过url路由匹配就达到相应视图,返回数据也不是一下子就返回给用户,中间要经历层层中间件。 请求的流程: 用户浏览器 > web服务器 > 中间件 > url 路由层 > 视图层(如果要操作数据库的话要经过model层),不需要的话直接到模板层然后返回
阅读全文
摘要:Linux一般将文件可存取的身份分为三个类别,分别是owner/group/others,且三种身份各有read/write/execute等权限 ls 显示文件的文件名与相关属性 -al 表示列出所有的文件详细的权限和属性(包含隐藏文件,以点(.)开头的文件) 一栏有十个字符,第一个是档案类型,剩
阅读全文
摘要:什么是循环? > 循环可以不断的执行某个程序段落,直到用户设定的条件达成为止。(这是我看到过的最好的解析) 所以,重点是那个【条件的达成】是什么。除了依据判断达成与否的不定循环之外,还有另外一种已经固定要跑多少次的循环形态,可称为固定循环的形态 while do done while [ 判断式 ]
阅读全文
摘要:case流程判断语法 case $变量名称 in "第一个变量内容") 第一个变量内容成立执行这里的代码 ;; 两个分号结束当前判断 "第二个变量内容" 第二个变量内容成立执行这里的代码 ;; 结束第二个判断 "......" .... ;; *) 以上的判断不成立的话就执行这里 exit 1 ;;
阅读全文
摘要:shell的执行方式有三种 1 sh scriptName 2 ./scriptName 3 source scriptName 使用前面的1,2种方式来下达脚本时,该script都会使用一个新的bash环境来执行脚本内的指令,也就是说,使用这种执行方式时, 其实script是在子程序的bash内执
阅读全文
摘要:想一个问题:为什么只要在django中的app,admin.py文件中配置两三行代码就可以通过后台admin操作数据的增删改查。这是因为admin在django启动前邦我们做了ORM的关系映射 查看django admin源码 def autodiscover(): autodiscover_mod
阅读全文
摘要:选中数据库(新建) use customs 创建集合并加入以下内容 { _id: ObjectId(7df78ad8902c) title: 'MongoDB Overview', description: 'MongoDB is no sql database', by_user: 'runoob
阅读全文
摘要:权限控制的级别: 力度控制到按钮级别的权限控制 实现权限控制系统的流程: 用户登陆成功之后,将权限和菜单信息放入session 每次访问时,在中间件中做权限校验 inclusion_tag实现的动态菜单 如何实现控制到按钮的呢? 用户登陆时,用户所拥有的权限(别名 == django 路由name)
阅读全文
摘要:设计一个crm需要五张表 用户表 角色表 角色权限关系表 用户角色关系表 权限表 简述权限组件的流程 用户登陆之后把权限写入session,以后再来访问的时候,在中间件中校验,获取用户请求的url, 以及获取当前用户所拥有的所有权限然后进行比较 菜单动态生成 通过include 权限为什么要放入se
阅读全文
摘要:直接敲进入screen窗口 ctrl + a 打开新的窗口 ctrl + a 松手 + shift + '双引号键显示所有的窗口' 退出窗口: exit 回退窗口 ctr a p 选择窗口 ctr+ a 1 选择1号窗口 来回切:两次ctrl + a 关闭一个窗口: ctrl + a 在 k 关闭所
阅读全文
摘要:把权限检验的代码放在登陆逻辑里耦合太强,导致了两个问题: 逻辑不清晰 2.代码过多,不好维护 #解耦权限检验和登陆 # 权限检验 新建service用于存放权限检验的代码 def inin_permission(request, user): """user 是用户对象""" ...... #登陆
阅读全文
摘要:class Permission(models.Model): """ 权限表 """ title = models.CharField(verbose_name='标题', max_length=32) url = models.CharField(verbose_name='含正则的URL',
阅读全文
摘要:思路:编写中间件实现权限信息校验 # 导入中间件 from django.utils.deprecation import MiddlewareMixin from django.shortcuts import render import re # 自定义类,继承MiddlewareMixin c
阅读全文
摘要:整体思路:在用户登陆之后拿到用户的信息,加入session from rbac.models import UserInfo from django.shortcuts import render # 判断用户是否存在 obj = UserInfo.object.filter(name='用户名',
阅读全文
摘要:from django.db import models class Permission(models.Model): """ 权限表 """ title = models.CharField(verbose_name='标题', max_length=32) url = models.CharF
阅读全文

浙公网安备 33010602011771号