Mysql

本文详细解读了MySQL中的运算符、字符串和日期函数,提供防止SQL注入的方法,并讲解了索引使用技巧,包括LIKE查询原则、定时器与事件调度。同时,涵盖了如何优化SQL语句,提升数据库性能,以及创建临时表的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 运算符
    算术运算符(+,-,/,%,DIV,MOD)
    比较运算符(=,>,<,>=,<=,!=,BETWEEN,NOT BETWEEN,IN,NOT IN,<=>,like,IS NULL,IS NOT NULL)
    逻辑运算符(NOT,AND,OR,XOR)
    位运算符(&,|,^,<<,>>,!)
    CASE…WHEN…THEN…ELSE…END
  2. 字符串函数
    ASCII(s) ,CHAR_LENGTH(s),CHARACTER_LENGTH(s),CONCAT(a,b,c),CONCAT_WS(x,a,b,c),FIND_IN_SET(x,y),FORMAT(),INSERT(s1,x,len,s2),LOCATE(s1,s),LCASE(),LEFT(),LOWER(),LPAD(s1,len,s2) ,LTRIM(s) ,MID(s,n,len),POSITION(s1 IN s) ,REPEAT(s,n) ,REPLACE(s,s1,s2) ,REVERSE(s),RIGHT(s,n),RPAD(s1,len,s2) ,RTRIM(s) ,SPACE(n) ,STRCMP(s1,s2),SUBSTR(s, start, length) ,UCASE(s),
  3. 日期函数
    ADDDATE(d,n),ADDTIME(t,n),DATE_ADD(d,INTERVAL expr type),DATE_FORMAT(d,f),DATE_SUB(date,INTERVAL expr type) ,IF(expr,v1,v2) ,
  4. 防止sql注入
    mysqli_real_escape_string(),addcslashes()
  5. 临时表
CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
  1. 定时器
    事件调度器有时也可以称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。
    在使用这个功能之前必须确保event_scheduler已开启,可执行SET GLOBAL event_scheduler = 1;
	
CREATE EVENT [IFNOT EXISTS] event_name
       ONSCHEDULE schedule
       [ONCOMPLETION [NOT] PRESERVE]
       [ENABLE | DISABLE]
       [COMMENT 'comment']
       DO sql_statement
	
schedule:
   AT TIMESTAMP [+ INTERVAL INTERVAL]
   | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
  
  INTERVAL:
   quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
   WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
   DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

索引注意事项

  1. like 模糊查询遵守前缀原则
  2. 查询的列不能使用函数或运算
  3. 对于唯一性很差的字段不适合建索引,如性别
  4. 需要排序的字段可以建立索引
    mysql优化
  5. 开启慢日志查询记录,让系统运行一段时间,使用profile或explain分析sql语句
  6. 开启缓存。sql语句不能出现不确定信息,sql语句大小写必须一致
  7. 读写分离。使用mysql的bin日志完成数据的一致性问题
    分页查找
  8. 由于主键id是可以快速查找,可以先查出满足条件id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值