mysql字符串连接

concat函数,concat_ws函数,group_concat函数,repeat()函数

强颜欢笑 提交于 2020-01-12 03:01:34
MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。 一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL的concat函数可以连接一个或者多个字符串,如 mysql> select concat('10'); +--------------+ | concat('10') | +--------------+ | 10 | +--------------+ 1 row in set (0.00 sec) mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | +------------------------+ | 112233 | +------------------------+ 1 row in set (0.00 sec)

Mycat 核心配置详解

泪湿孤枕 提交于 2020-01-10 14:57:59
先上官方文档: Mycat-doc Mycat 权威指南 常用配置文件间的关系 由上图可以看到 Mycat 的核心配置文件均采用xml格式,这几个配置文件的用途如下: server.xml :用于配置系统参数、用户信息、访问权限及SQL防火墙和SQL拦截功能等 schema.xml :用于配置逻辑库、逻辑表相关信息 rule.xml :如果使用了水平切分,就需要使用该文件配置切分规则 log4j2.xml :Mycat日志相关的配置,例如日志输出格式、日志级别等 应用连接Mycat服务时,Mycat首先会通过 server.xml 中的配置信息进行用户认证。用户通过验证后,所看到的逻辑库、逻辑表都是 schema.xml 中所配置的。当使用了水平切分时,Mycat会通过 rule.xml 里配置的规则来定位具体的物理数据库位置,从而完成写入/读取数据。 server.xml 配置详解 1、 system 标签 用于配置 Mycat 的系统参数,其格式如下: <system> <!-- ${key}表示配置属性的名称,${value}表示该配置属性的值 --> <property name="${key}">${value}</property> </system> 配置 Mycat 服务端口示例: <system> <property name="serverPort">3306<

Mysql杂记

╄→гoц情女王★ 提交于 2020-01-10 00:56:03
-- SELECT * FROM tb_dept t,time tt WHERE tt.id=3 ; 1、SELECT id FROM tb_dept WHERE id =3 UNION ALL SELECT id FROM time WHERE id=3; CREATE TABLE `employee_tbl` ( `id` int(11) NOT NULL, `name` char(10) NOT NULL DEFAULT '', `date` datetime NOT NULL, `singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --2、 插入多条数据 INSERT INTO alter_test(name,created,updated) VALUES('Tina',SYSDATE(),SYSDATE()),('Jame',SYSDATE(),SYSDATE()); SELECT * FROM employee_tbl; 3、-- 查询分组并统计总数用 with ROLLUP SELECT name, SUM(singin) as singin_count FROM employee_tbl

models中常用的查询字段以及参数,choices参数,数据库的查询优化,开启事物操作和MTV与MCV模型

二次信任 提交于 2020-01-09 22:38:46
一.models中常用的字段及参数 常用字段 AutoField int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。 IntegerField 一个整数类型,范围在 -2147483648 to 2147483647。(一般不用它来存手机号(自带正负号导致位数不够),直接用字符串存,) CharField 字符类型,必须提供max_length参数, max_length表示字符长度。 补充注意: 这里需要知道的是Django中的CharField对应的MySQL数据库中的varchar类型,没有设置对应char类型的字段,但是Django允许我们自定义新的字段 如何自定义char字段类型 大胆推测,字段是不是类 自己根据源码写类似的Char字段 1 # 在models.py文件下创建自己的Char字段 2 # 导入模块 3 from django.db.models import Field 4 5 # 自定义继承field的Char类型字段 6 class RealCharField(Fied) 7 # 也需要长度设置 8 def __init__(self, max_length, *args, **kwargs) 9 self.max_length = max_length 10 # 拦截父类的方法

Django之models字段属性

十年热恋 提交于 2020-01-09 19:04:41
目录 常用字段 AutoField IntegerField CharField 自定义及使用char DateField DateTimeField 字段合集 字段参数 null unique db_index default DateField和DateTimeField auto_now_add auto_now 关系字段 ForeignKey 字段参数 to to_field on_delete db_constraint 其余字段参数 OneToOneField 字段参数 to to_field on_delete 常用字段 AutoField int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。 IntegerField 一个整数类型,范围在 -2147483648 to 2147483647。(一般不用它来存手机号(位数也不够),直接用字符串存,) CharField 字符类型,必须提供max_length参数, max_length表示字符长度。 这里需要知道的是Django中的CharField对应的MySQL数据库中的varchar类型,没有设置对应char类型的字段,但是Django允许我们自定义新的字段,下面我来自定义对应于数据库的char类型 自定义字段在实际项目应用中可能会经常用到

Django之ORM

怎甘沉沦 提交于 2020-01-09 08:30:03
ORM简单介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是为了解决面向对象与关系数据库存在的 不匹配的现象的技术, 提供了概念性的、易于理解的模型化数据的方法。 ORMf方法论基于三个核心原则: 1.简单;以最基本的形式建模数据 2.传达性:数据库结构被任何人都能理解的语言文档化。 3.精确性:基于数据模型创建正确标准化了的结构。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用 为什么会有ORM??? 几乎所有的软件开发过程中都会涉及到对象和关系数据库,(对象(Object)、关系(Relational)、数据库(Mysql)) 在用户层面和业务逻辑层面,我们是面向对象的,当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。然后程序员就会在自己的业务逻代码中夹杂很多SQL语句用来增加、读取、修改、删除相关的数据,但是这些代码通常都是重复的。 ORM的优势是什么呢??? 他解决的问题是对象和关系的映射,它通常把一个类和一个表一一对应。类的每一个实例对应表中的一条记录,类的每个属性对应表中的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需要像操作对象一样从数据库操作数据,提高开发效率。

Python常用模块

感情迁移 提交于 2020-01-08 12:03:57
os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作目录os.getcwd() 获取当前文件路径os.mkdir() 新建目录os.rmdir() 删除空目录(删除非空目录, 使用shutil.rmtree())os.makedirs() 创建多级目录os.removedirs() 删除多级目录os.stat(file) 获取文件属性os.chmod(file) 修改文件权限os.utime(file) 修改文件时间戳os.name(file) 获取操作系统标识os.system() 执行操作系统命令os.execvp() 启动一个新进程os.fork() 获取父进程ID,在子进程返回中返回0os.execvp() 执行外部程序脚本(Uinx)os.spawn() 执行外部程序脚本(Windows)os.access(path, mode) 判断文件权限(详细参考cnblogs)os.wait() 暂时未知os.path模块:os.path.split(filename) 将文件路径和文件名分割(会将最后一个目录作为文件名而分离)os.path.splitext(filename) 将文件路径和文件扩展名分割成一个元组os.path

MyBatis 动态SQL

≯℡__Kan透↙ 提交于 2020-01-07 07:10:50
动态SQl是MyBatis的强大特性之一,可以完成对SQL语句的动态组装。 比如说传入一个User对象,要根据这个User中的数据查询用户的完整信息: 如果User对象中只有name属性有值,sql语句是:select * from user_tb where name=#{name} 如果User对象中只有tel属性有值,sql语句是:select * from user_tb where tel=#{tel} 如果User对象的name、tel都有值,sql语句是:select * from user_tb where name=#{name} and tel=#{tel} 有时候sql语句不是一成不变的,要根据传入的数据动态生成要执行的sql语句,动态sql就适合这种情况。 最好将日志的控制台输出级别设置为DEBUG,这样在控台能看到SQL语句。 MyBatis中的动态sql元素 <if> 相当于java中的if,用于单分支的条件判断 <choose>、<when>、<otherwise> 相当于java中的switch...case...default,用于多分支的条件判断,从多个选项中选择一个 <foreach> 循环,常和sql的in语句搭配使用 <where>、<trim>、<set> 辅助元素,用于一些处理sql拼装、特殊字符的问题 <bind>

ORM常用字段及参数

倾然丶 夕夏残阳落幕 提交于 2020-01-06 14:44:26
目录 ORM常用字段及参数 ORM常用字段 ORM字段参数 关系字段 必知必会13条 13个必会操作总结 ORM常用字段及参数 ORM常用字段 AutoField int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。 IntegerField 一个整数类型,范围在 -2147483648 to 2147483647。(一般不用它来存手机号(位数也不够),直接用字符串存,) CharField 字符类型,必须提供max_length参数, max_length表示字符长度。 这里需要知道的是Django中的CharField对应的MySQL数据库中的varchar类型,没有设置对应char类型的字段 DateField 日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。 DateTimeField 日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例。 字段合集(争取记忆) AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数

Mysql字符串函数

天涯浪子 提交于 2020-01-04 21:17:00
一 使用CHAR_LENGTH函数计算字符串字符个数 mysql> SELECT CHAR_LENGTH('date'), CHAR_LENGTH('egg'); +---------------------+--------------------+ | CHAR_LENGTH('date') | CHAR_LENGTH('egg') | +---------------------+--------------------+ | 4 | 3 | +---------------------+--------------------+ 1 row in set (0.00 sec) 二 使用LENGTH函数计算字符串长度 mysql> SELECT LENGTH('date'), LENGTH('egg'); +----------------+---------------+ | LENGTH('date') | LENGTH('egg') | +----------------+---------------+ | 4 | 3 | +----------------+---------------+ 1 row in set (0.00 sec) 三 使用CONCAT函数连接字符串 mysql> SELECT CONCAT('My SQL', '5.6'),CONCAT(