SQL进阶

SQL注入

1、MySQL及SQL注入:通过网页获取用户输入的数据并将其插入一个MySQL数据库,就有可能发生SQL注入安全的问题;SQL注入就是通过把SQL命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令(要对用户输入的数据进行过滤处理)

2、防止SQL注入,需要注意以下要点:

  • 不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双“-”进行转换
  • 不要使用动态拼接sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取
  • 不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
  • 不要直接存放机密信息,加密或者hash掉密码和敏感的信息
  • 应用的异常信息应该给出尽可能少的提示

SQL LIMIT

  • 用来选取指定的条数数据
  • SELECT … FROM … LIMIT number;

LIKE

  • 用于搜索指定的模式
  • SELECT * FROM user
    WHERE name LIKE ‘m%’;

通配符

  • 通配符与LIKE一起使用
  • %:替代0个或多个字符;_:替代一个字符;

IN

SELECT *FROM user
WHERE name IN(‘AA’,‘hh’);

BETWEEN

  • 选取结余两个值之间的数据范围的值

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

SQL连接

  1. INNER JOIN:关键字在表中存在至少一个匹配时返回行
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

2.LEFT JOIN:关键字从左表返回所有的行,即使右表没有匹配。如果右表中没有匹配,则数值为NULL

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

3.RIGHT JOIN:关键字从右表返回所有的行,即使左表中没有匹配。如果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值