select函数

mybatis动态SQL

大兔子大兔子 提交于 2019-11-29 02:30:31
1.sql片段:sql语句中重复使用的可以提取成sql片段供调用(如数据表中的字段) sql标签是sql片段,id是被调用时用的 <sql id= "all" > u_id,u_username,u_password,u_sex,u_createtime,u_createtime,u_delete </sql> sql片段用include标签调用 <include refid="all"></include> 2.where+if where标签会在返回的sql语句前加where再去除and或or <select id="selectByWhere" resultMap="BaseMap"> select <include refid="all"></include> from tb_user <where> <if test="uid!=0"> and u_id=#{uid} </if> <if test="username!=null and username!=''"> <!-- 模糊查询 --> and u_username like concat('%',#{username},'%') </if> </where> </select> 以上还用了模糊查询:用concat函数拼接% 3.set+if set标签会在返回的sql前加set再去除最后的,(逗号)

sysbench 数据库性能测试工具的使用

ぃ、小莉子 提交于 2019-11-29 01:56:18
sysbench 数据库性能测试 Mac上安装sysbench测试工具 brew install sysbench 测试sysbench 是否安装成功 //执行这条指令 sysbench cpu --cpu-max-prime=10000 run sysbench 1.0.17 (using bundled LuaJIT 2.1.0-beta2) Running the test with following options: Number of threads: 1 Initializing random number generator from current time Prime numbers limit: 10000 Initializing worker threads... Threads started! CPU speed: events per second: 859.16 General statistics: total time: 10.0008s total number of events: 8594 Latency (ms): min: 1.10 avg: 1.16 max: 24.47 95th percentile: 1.32 sum: 9990.99 Threads fairness: events (avg/stddev): 8594

1.动态sql语句 2.逆向工程(generator) 3.分页助手(pagehelper)

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-29 01:00:20
   2019-8-30 大纲 1. 动态 sql 语句 2. 逆向工程 (generator) 3. 分页助手 (pagehelper) 1. 动态 sql 语句 ( 即 sql 语句的拼接 ) 1.1 if 标签(属性: test (判断条件)) 缺点:如果仅仅是第二个条件满足导致 sql 语句出错(使用 if+where ) <select id="select1" resultType="com.zhiyou.clg.bean.User"> select *from user <if test="name!=null"> where name=#{name} </if> <if test="age!=null and age!=''"> and age=#{age} </if> </select> 1.2 if+where ( where 标签会知道如果它包含的标签中有返回值的话,就会插入 where 若其以 and 或 or 开头会将 and 或 or 剔除 ) <select id="select2" resultType="com.zhiyou.clg.bean.User"> select *from user <where> <if test="name!=null"> and name=#{name} </if> <if test="sex!=null"> and

数据库操作(一)

萝らか妹 提交于 2019-11-29 00:49:12
数据库操作(一) 1.库操作 数据库命名规则: 由字母、数字和下划线组成; 大小写区分; 唯一性; 不能使用关键字; 最长128位; 不能单独使用数字. 库相关操作 查看数据库: show databases; show create database db1; select database(); #查看当前所在的库 选择数据库: use db1 增: create database db1 charset utf8; 改: alter database db1 charset gbk; 删: drop database db1; 2.表操作 表相关操作 先切换到文件夹下: use db1 增: create table t1(id int,name char(10)); create table 表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件]); 查: show tables; #查看所有表 desc t1; #查看表结构 show create table t1; #查看表详细结构 改: alter table t1 modify name char(3); alter table t1 change name name1; 删: drop table t1; 注意: 1.在同一张表中,字段名不能相同 2.宽度和约束类型可选 3

mysql 聚集函数 count 使用详解

て烟熏妆下的殇ゞ 提交于 2019-11-28 22:17:32
mysql 聚集函数 count 使用详解 本文将探讨以下问题 1.count(*) 、 count(n)、count(null)与count(fieldName) 2.distinct 与 count 连用 3.group by (多个字段) 与 count 实现分组计数 4.case when 语句与 count 连用实现按过滤计数 参考文章: Select count(*)和Count(1)的区别和执行方式 准备工作 -- 创建表 CREATE TABLE `tb_student` ( `id` int(11) NOT NULL, `stu_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '学生姓名', `tea_name` varchar(255) DEFAULT NULL COMMENT '教师姓名', `stu_class` varchar(255) DEFAULT NULL COMMENT '所在班级名称', `stu_sex` varchar(255) DEFAULT NULL COMMENT '学生性别', `stu_sex_int` tinyint(4) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET

socket编程的select模型

荒凉一梦 提交于 2019-11-28 22:14:15
原文链接: http://www.cnblogs.com/RascallySnake/p/3185071.html 在掌握了socket相关的一些函数后,套接字编程还是比较简单的,日常工作中碰到很多的问题就是客户端/服务器模型中,如何让服务端在同一时间高效的处理多个客户端的连接,我们的处理办法可能会是在服务端不停的监听客户端的请求,有新的请求到达时,开辟一个新的线程去和该客户端进行后续处理,但是这样针对每一个客户端都需要去开辟一个新的线程,效率必定底下。 其实,socket编程提供了很多的模型来处理这种情形,我们只要按照模型去实现我们的代码就可以解决这个问题。主要有select模型和重叠I/o模型,以及完成端口模型。这次,我们主要介绍下select模型,该模型又分为普通select模型,wsaasyncselect模型,wsaeventselect模型。我们将通过样例代码的方式逐一介绍。 一、select模型 使用该模型时,在服务端我们可以开辟两个线程,一个线程用来监听客户端的连接 请求,另一个用来处理客户端的请求。主要用到的函数为select函数。如: 全局变量: fd_set g_fdClientSock; 线程1处理函数: SOCKET listenSock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); sockaddr_in

mysql存储过程详解

做~自己de王妃 提交于 2019-11-28 17:05:46
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 存储过程通常有以下优点: (1).存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2).存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3).存储过程能实现较快的执行速度。如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划

SQL Server里的 ISNULL 与 NULLIF

点点圈 提交于 2019-11-28 13:13:38
SQL Server 中有两个函数,语法: ISNULL(check_expression, replacement_value) check_expression 与 replacement_value 数据类型必须一致 如果 check_expression 为 NULL,则返回 replacement_value 如果 check_expression 不为 NULL,则返回 check_expression NULLIF 用于检查两个表达式,语法: NULLIF(expression, expression) 如果两个 expression 相等,则返回 NULL,该 NULL 为第一个 expression 的数据类型 如果两个 expression 不相等,则返回第一个 expression Sql Server中两个判断是否为空的函数NULLIF和ISNULL的说明如下: NULLIF:需要两个参数,如果两个指定的表达式等价,则返回null 例子:NULLIF(a,b) 说明:如果a和b是相等的,那么返回NULL,如果不相等返回a select NULLIF('eqeqweqwe','1') 结果是eqeqweqwe select NULLIF(1,1) 结果是NULL a和b的类型要一致 ISNULL:需要两个参数,目标是讲null替换为指定的值

代码审计入门

感情迁移 提交于 2019-11-28 12:58:08
前言 最近在看php代码审计,学习下代码审计,看了不少师傅的博客,写的很好,下面不少是借鉴师傅们的,好记性不如烂笔头,记下,以后可以方便查看。 php代码审计需要比较强的代码能力和足够的耐心。这篇文章是写给我这样的 刚刚开始审计的菜鸟,下面如果写的哪里有错误的话,还望提出,不吝赐教。 在这里也立个flag:一周至少审计一种CMS(大小不分),希望自己能够坚持下去,任重而道远。 代码审计--准备 1,先放一张大图,php代码审计的几个方向,也是容易出问题的地方,没事的时候可以多看看。 2,代码审计也就是拿到某网站的源码,进行审计,从而发现漏洞,但是我们审计的时候并不一定要一行一行的去看吧,这样未免也太浪费时间了,所以我们需要工具进行帮助我们。当属 "Seay源代码审计系统2.1" 优先选择( 静态分析,关键字查找定位代码不错,但是误报很高 )。 我们在做代码审计的时候,个人建议先要把审计的某CMS随便点点,先熟悉一下功能。代码审计前先进行黑盒测试是个不错的选择,知道哪里有问题,然后再去找出问题的代码。 要关注变量和函数, 1.可以控制的变量【一切输入都是有害的 】 2.变量到达有利用价值的函数[危险函数] 【一切进入函数的变量是有害的】 ------来源t00ls 代码审计--漏洞 一,漏洞类型 1.sql注入 2.文件操作[上传/写入/读取/删除] 3.文件包含 4.命令执行 5

sqlserver日期函数

社会主义新天地 提交于 2019-11-28 11:50:43
SQLServer时间日期函数详解,SQLServer,时间日期, 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 select datediff(day,'2004-09-18','2004-09-01') --返回:-17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回 10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8)