mysql字符串连接

Django

…衆ロ難τιáo~ 提交于 2019-12-04 08:07:05
一、Django 简介   Django 是一个由 Python 写成的开放源代码的 Web 应用框架。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是 CMS(内容管理系统)软件。并于2005年7月在 BSD 许可证下发布。这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的。由于 Django 的是在一个快节奏的新闻编辑室环境下开发的,它的目的是使常见的 Web 开发任务,快速和容易。 MTV 模式 Django 采用了 MTV 设计模式 上述图大概是说: URL ( urls.py )请求调度,当有缓存页面的时候直接返回内容。 视图函数( view.py )执行所请求的操作,通常包括读写数据库。 模型( models.py )定义了 Python 中的数据并与之交互。通常包含在一个关系数据库( MySQL、PostgreSQL SQLite 等),其他数据存储是可能的( XML、文本文件、LDAP、等)。 请求执行任务后,视图返回一个 HTTP 响应对象(通常是经过数据处理的一个模板)。可选的:视图可以保存一个版本的 HTTP 响应对象,返回携带一个时间戳,来告诉浏览器这个视图的更新时间。 模板通常返回 HTML 页面。Django 模板语言提供了 HTML 的语法及逻辑。 安装 pip 安装 pip install

第六篇:视图、触发器、事务、存储过程、函数

余生长醉 提交于 2019-12-04 03:31:58
阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----

msyql常用函数

柔情痞子 提交于 2019-12-03 20:32:37
在业务开发中,mysql其实也有很多常用的函数,来方便查询数据。 有的时候根据业务需要也可以写到存储进程中,但是这是不建议的,因为业务一旦复杂起来存储进程中的sql会越来越长,可读性太差,后期维护起来会很难。 好了,开始说正题吧。 字符串 相关函数: concat(s1,s2,s3,...) --把传入的参数连接成为一个字符串。 //例如,select concat('aaa','bbb','ccc'),concat('aaa',null);任何字符串与 NULL 进行连接的结果都将是 NULL INSERT(str ,x,y,instr) --将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符串 instr。 //例如,select insert('beijing2008you',12,3,'me') LOWER(str)和 UPPER(str) --把字符串转换成小写或大写 //例如,select lower('BEIJING');select upper('beijing'); LEFT(str,x)和 RIGHT(str,x) --分别返回字符串最左边的 x 个字符和最右边的 x 个字符。 //例如,select left('qwertasd',1);select right('qwertasd',1);如果第二个参数是 NULL,那么将不返回任何字符串。

Django之ORM(一)

北城以北 提交于 2019-12-03 12:14:43
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 ORM由来 让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。 几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。 按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是极其相似或者重复的。 ORM的优势 ORM解决的主要问题是对象和关系的映射。它通常将一个类和一张表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需操作对象就能对数据库操作数据。 让软件开发人员专注于业务逻辑的处理,提高了开发效率。 ORM的劣势 ORM的缺点是会在一定程度上牺牲程序的执行效率。 ORM的操作是有限的,也就是ORM定义好的操作是可以完成的

Mysql-基本的知识点

南笙酒味 提交于 2019-12-03 11:26:46
Mysql-操作基本知识点 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES -- 显示系统变量信息 /* 数据库操作 */ ------------------ -- 查看当前数据库 SELECT DATABASE(); -- 显示当前时间、用户名、数据库版本 SELECT now(), user(), version(); -- 创建库 CREATE DATABASE[ IF NOT EXISTS] 数据库名 数据库选项 数据库选项: CHARACTER SET charset_name COLLATE collation_name -- 查看已有库 SHOW DATABASES[ LIKE 'PATTERN'] -- 查看当前库信息 SHOW CREATE DATABASE 数据库名 -- 修改库的选项信息 ALTER DATABASE 库名 选项信息 -- 删除库 DROP DATABASE[ IF EXISTS]

ORM查询

易管家 提交于 2019-12-03 10:18:02
目录 [toc] # 概要 ## ORM常用字段 ``` 常用字段 1 AutoFile( primary_key=Ture) 2 Charfiled(max_length= 12) 3 IntgerFile () 4 DateFile() 5 DatetimeFlie ROM 常用13个操作 ( 1 ) 返回QuerySet对象的有 1 all( ) 2 filter( ) 3 values( ) 4 values_list( ) 5 exclude( ) 6 order_by( ) 7 distinct( ) 8 reverse( ) ( 2 ) 返回对象的有 1 all( ).get( ) 2 all( ).first( ) 3 all( ).last( ) ( 3 ) 返回布尔值的 1 exists ( ) ( 4 ) 返回具体数据的 1 count( ) 条件查询 1 id__gt= 大于 id__lt( 小于) 2 id__in= 在[1,2,21,12,221] 3 id__contains="lc" 包含内容的 4 id__startwith="钱" 以钱开头的 5 id__endswitch= "娜" .... 6 date__year=2017 年份是2017的(day month) 7 3 id__icontains="lc" 不区分大小写 跨表查询 ( 1

Day 37 SQL基础(五)

牧云@^-^@ 提交于 2019-12-03 05:01:07
目录 事务处理 开始事务 回滚事务 提交事务 事务的特性 存储引擎 什么是存储引擎 各存储引擎的特性 概览 各种存储引擎的特性 各存储引擎的介绍 视图 创建视图 删除视图 修改视图 触发器 创建触发器 删除触发器 存储过程 创建无参存储过程 创建有参存储过程 执行存储过程 删除存储过程 SQL函数 事务处理 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性 开始事务 start transaction 标识事务的开始 回滚事务 rollback 用来回退(撤销)SQL语句 select * from users; start transaction; update users set age = 18 where id = 120; delete from users where name = 'tiny'; rollback; select * from users; rollback只能在一个事务处理内使用,在执行一条start transaction命令之后 提交事务 commit 一般的MySQL语句都是直接针对数据库表执行和编写的.这就是所谓的隐含提交,即提交(写或保存)操作是自动进行的. 但是.在事务处理块中,提交不会隐含地进行.为进行明确的提交,使用commit语句 start transaction;

数据库事务【重点】、数据库单库备份、数据库多库备份、数据库全部备份、重新导入数据库文件

纵饮孤独 提交于 2019-12-03 04:47:00
day 05 数据库 1.pymysql 介绍: Python操作mysql的模块 安装: pip install mysql 连接: import pymysql conn = pymysql.connect(host='主机名', user='用户名', password='密码', database='数据库名',charset='utf8'); cursor = conn.cursor() ### 返回的是元祖套元祖 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) ### 返回的是列表套字典 执行sql语句: cursor.execute(sql) 查: fetchall() : 获取多个, 返回 列表套字典 fetchone() : 获取一个, 返回 字典 fetchmany(size) : 获取size个数据, 返回的是 列表套字典 增删改: conn.commit() SQL注入: 原因: 太相信用户输入的数据 解决的方法: # sql = "select * from user where name='%s' and password='%s'" % (user, pwd) sql = "select * from user where name=%s and password=%s" cursor

MySQL 常用函数介绍

谁都会走 提交于 2019-12-02 23:29:37
MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 MySQL NULL 使用带来的坑 MySQL AND 和 OR 联合使用带来的坑 MySQL 触发器的使用 数值型函数 函数名称 作用 ABS 求绝对值 SQRT 求二次方根 MOD 求余数 CEIL 和 CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 FLOOR 向下取整,返回值转化为一个BIGINT RAND 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列 ROUND 对所传参数进行四舍五入 SIGN 返回参数的符号 POW 和 POWER 两个函数的功能相同,都是所传参数的次方的结果值 SIN 求正弦值 ASIN 求反正弦值,与函数 SIN 互为反函数 COS 求余弦值 ACOS 求反余弦值,与函数 COS 互为反函数 TAN 求正切值 ATAN 求反正切值,与函数 TAN 互为反函数 COT 求余切值 字符串函数 函数名称 作用 LENGTH 计算字符串长度函数,返回字符串的字节长度 CONCAT 合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个 INSERT 替换字符串函数 LOWER 将字符串中的字母转换为小写

Python笔记(六)mini-web服务器

匿名 (未验证) 提交于 2019-12-02 22:51:30
一、正则表达式 1、re模块 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来提取数据 result.group() import re # 若没有返回值,说明匹配不成功 res = re.match(r"hell", "hello world") print(res) # 提取数据 print(res.group()) 2、匹配单个字符 字符 功能 . 匹配任意1个字符(除了\n) [ ] 匹配[ ]中列举的字符 \d 匹配数字,即0-9 \D 匹配非数字,即不是数字 \s 匹配空白,即 空格,tab键 \S 匹配非空白 \w 匹配单词字符,即a-z、A-Z、0-9、_ \W 匹配非单词字符 import re # \d匹配一位数字 res = re.match(r"速度与激情\d", "速度与激情1") print(res.group()) res = re.match(r"速度与激情[12345678]", "速度与激情9") print(res) res = re.match(r"速度与激情[1-8]", "速度与激情88") print(res.group()) res = re.match(r"速度与激情[1-36-8]",