mysql函数

基础漏洞系列(一)——SQLi

元气小坏坏 提交于 2020-01-12 04:04:54
1. 前言 这个系列的初衷在于想把所学知识系统地整理出来,可能会不断更新,看心情 😛 用思维导图的方式呈现,在于考研时发现这种方式可以将知识,设计的点很清楚地展现出来 2. SQLi https://github.com/jlkl/Basic_vulnerability/blob/master/SQLI_20_1.xmind 3. 参考链接 MySQL 函数 思维导图 SQL注入 - ultramangaia Mysql注入导图-学习篇 - ph0rse sqlmp 来源: CSDN 作者: 爱吃柠檬的苹果 链接: https://blog.csdn.net/qq_39293438/article/details/103939291

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)

concat,concat_ws,group_concat

别来无恙 提交于 2020-01-12 02:37:27
一、concat函数 1.语法:concat(str1,str2,str3,...) 2.concat ()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 3.concat函数在连接字符串时,如有任何一个参数为空,返回值则为空。 4.示例: 普通示例 mysql> select concat(11,22,33); +------------------+ | concat(11,22,33) | +------------------+ | 112233 | +------------------+ 1 row in set mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | +------------------------+ | 112233 | +------------------------+ 1 row in set NULL示例 mysql> select concat('11','22',NULL); +------------------------+ | concat('11','22',NULL) | +------------------------+ | NULL | +-------

mysql 索引优化法则

微笑、不失礼 提交于 2020-01-10 15:26:31
建表语句 CREATE TABLE staffs( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR (24) NOT NULL DEFAULT '' COMMENT '姓名', age INT NOT NULL DEFAULT 0 COMMENT '年龄', pos VARCHAR (20) NOT NULL DEFAULT 0 COMMENT '职位', add_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入职时间' ) CHARSET utf8 COMMENT '员工记录表'; INSERT INTO staffs(NAME, age, pos, add_time) VALUES('ronnie', 22, 'manager', NOW()); INSERT INTO staffs(NAME, age, pos, add_time) VALUES('John', 23, 'devloper', NOW()); INSERT INTO staffs(NAME, age, pos, add_time) VALUES('2181', 27, 'devloper', NOW()); -- 建复合索引 alter table staffs add index idx

mysql数据库log_bin_trust_function_creators参数

邮差的信 提交于 2020-01-10 13:16:55
以下均是在Centos 7.4-1(ip:192.168.128.138)下进行 MySQL的有个参数log_bin_trust_function_creators,当二进制日志启用后,这个变量就会启用。它控制是否可以信任存储函数创建者,不会创建写入二进制日志引起不安全事件的存储函数。如果设置为0(默认值,为off),用户不得创建或修改存储函数,除非它们具有除CREATE ROUTINE或ALTER ROUTINE特权之外的SUPER权限。 设置为0还强制使用DETERMINISTIC特性或READS SQL DATA或NO SQL特性声明函数的限制。 如果变量设置为1,MySQL不会对创建存储函数实施这些限制。 此变量也适用于触发器的创建。 当开启二进制日志后,如果变量log_bin_trust_function_creators为OFF,那么创建或修改存储函数就会报“ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators

Linq to MySQL 存储的使用

谁都会走 提交于 2020-01-10 10:42:01
下面主要介绍 Linq to MySQL (ALinq for MySQL),如果你还不知道 ALinq 是什么, 请点击这里 。 完整的 Sample 位于 ALinq 的安装目录下的子目录 Samples\CSharpe\OracleSamples.zip 或 Samples\VB\OracleSamples.zip 。 Sample 的使用:打开该工程,然后运行 Sample3_StoreProcedure ,然后点击 Create Procedure 按钮创建存储过程。 示例1: 步骤一:在数据库中创建存储过程,下面这个存储过程是用来添加一个 Category 到数据库中。 CREATE PROCEDURE ADD_CATEGORY(IN CATEGORY_NAME VARCHAR(30), IN CATEGORY_DESCRIPTION TEXT)BEGININSERT INTO CATEGORIES (CategoryName, Description)Values (category_name, category_description);END 步骤二:将存储过程映射到 DataContext 实体类中的方法函数。 [Function(Name = "ADD_CATEGORY")]public void AddCategory( [Parameter(Name =

自学书籍.MySQL必知必会

冷暖自知 提交于 2020-01-09 20:56:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 计算字段: 1.存储在数据库中的数据一般不是应用程序所需格式,我们需要直接从数据库中检索出转换,计算或格式化过的数据,而不用检索出数据然后再用应用程序去处理重新格式化,因为一般情况下数据库服务器上完成这些操作比应用程序要快的多,这就是计算字段的重要性 拼接字段: 1.将多个列拼接起来,在SELECT语句中可以使用CONCAT函数来拼接两个列,RTRIM函数删除右边空白,TRIM函数删除左右两边的空白,LTRIM删除左边空白, AS给新字段命别名 SELECT vend_name, vend_country, CONCAT(RTRIM(vend_name), '(', RTRIM(vend_country), ')') AS vend_info FROM vendors; 执行算术计算: 1.计算字段的另一个常见用途是对检索出的数据进行算户计算 SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005; 来源: oschina 链接: https://my.oschina.net/u/2612057/blog/661117

自学书籍.MySQL必知必会

给你一囗甜甜゛ 提交于 2020-01-09 20:49:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SELECT语句: 1.常用来从一个或是多个表中检索信息,为了使用SELECT检索数据,必须提供两条信息想选择什么以及从什么地方选择 检索单个列: 1.所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名,多条SQL语句以;分割 2.SQL语句不区分大小写,许多SQL开发人员喜欢对所有的SQL关键字使用大写,所有列/表名使用小写,便于阅读和调试 SELECT prod_name FROM products; 检索多个列: 1.检索多列和检索单列唯一不同的是必须在SELECT关键字后给出多个以逗号隔开的列名 SELECT prod_id, prod_name, prod_price FROM products; 检索所有的列: 1.SELECT还可以检索所有的列而不必逐个列出,使用*通配符实现,实际生产中最好别用*,因为可能由于检索不需要的列而降低检索和应用程序性能 SELECT * FROM products; 检索不同的行: 1.SELECT返回所有匹配的行,可能包含相同值的多行,可通过DISTINCT来去除重复行,注意DISTINCT必须放在列名前面,因为它应用于所有的列 SELECT DISTINCT vend_id FROM products; 限制结果: 1

自学书籍.MySQL必知必会

余生颓废 提交于 2020-01-09 18:25:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 聚合函数: AVG([DISTINCT] expr) 1.返回某列的平均值,忽略列值为NULL的行 SELECT AVG(prod_price) AS avg_price FROM products WHERE vend_id = 1003; COUNT(expr) 1.返回某列的行数,COUNT(*)包含NULL空值行,COUNT(column)对特定列中具有值进行计数,忽略NULL值 SELECT COUNT(*) AS cust_num FROM customers; SELECT COUNT(cust_email) AS cust_num FROM customers; MAX([DISTINCT] expr) 1.返回某列的最大值,忽略列值为NULL的行 SELECT MAX(prod_price) AS max_price FROM products; MIN([DISTINCT] expr) 1.返回某列的最小值,忽略列值为NULL的行 SELECT MIN(prod_price) AS min_price FROM products; SUM([DISTINCT] expr) 1.返回某列值之和,忽略列值为NULL的行 SELECT SUM(item_price*quantity) AS

swoole怎么连接数据库

℡╲_俬逩灬. 提交于 2020-01-09 17:59:14
异步连接到MySQL服务器。 $serverConfig为MySQL服务器的配置,必须为关联索引数组 $callback连接完成后回调此函数 swoole连接数据库实例: 推荐学习: swoole教程 就到这里啦,有需要学习交流的友人请加入交流群的咱们一起,群内都是1-7年的开发者,希望可以一起交流,探讨PHP,swoole这块的技术 或者有其他问题 也可以问,获取swoole或者php进阶相关资料私聊管理即可 点此加入该群​jq.qq.com ​jq.qq.com 来源: https://www.cnblogs.com/heyue0117/p/12172352.html