MySql------基础知识1

MySql------基础知识1

一。 SQL 的 select 语句完整的执行顺序

1.from字句组装来自不同数据源
2.where 字句基于指定
3.group by 划分多个分组
4.使用聚集函数进行计算
5、使用 having 子句筛选分组;
6、计算所有的表达式;
7、select 的字段;
8、使用 order by 对结果集进行排序。

二。Sql聚合函数:

几何函数就是对一组值进行计算并且返回 单一的值的函数,经常与select语句中的group by 字句一同使用
a.ava()平均值,空值被忽略
b.count()返回是的是指定组中的项目个数
c.max ()和min()分别是返回最大值和最小值
e.sum()返回指定数据的和,只能是数字列
f. group by():对数据进行分组,对执行完 group by 之后的组进行聚合函数的运算,计算每一组的值。
最后用having去掉不符合条件的组,having子句中的每一个元素必须出现在select列表中(只针对于mysql)

三。SQL之连接查询(左连接和右链接)

外连接:左连接():以左表作为基准进行查询,左表数据会全部显示出来,如果不匹配则显示为 null;
右连接():以右表作为基准进行查询,右表数据会全部显示出来,如果不匹配则显示为 null;
全连接():先以左表进行左外连接,再以右表进行右外连接
内连接:显示表之间有连接匹配的所有行
#左外查询
#SELECT * FROM score s LEFT JOIN student stu ON s.stu_id=stu.id
#右外查询
#SELECT * FROM score s RIGHT JOIN student stu ON s.stu_id=stu.id
#内连接
SELECT * FROM score INNER JOIN student ON score.stu_id=student.id

四。SQL之sql注入

web表单提交时会有恶意Sql语句,没有按照设计者意图执行;
举例:
当执行的 sql 为 select * from user where username = “admin”or “a”=“a”时
,sql 语句恒成立,参数 admin 毫无意义、
防止Sql注入方式
1.预编译语句:SELECT * FROM USER WHERE USERNAME=?
变量用?表示;即使传递参数时为“admin or ‘a’= ‘a’”,也会把这整体当做一个字符创去查询
2.Mbatis 框架中的mapper方式中# 也能很大程度的防止 sql 注入($不行)

五。Mysql性能优化

1)当只要一行数据时使用limit1
(2)选择正确的数据库引擎(MyISAM,InnoDB)每个引擎有利有弊:
MyISAM适用于大量数据库查询(select count(*)这类操作超级快),大量写功能不是很好;
而且Update 一个字段就会锁表。别的进程哪怕是读操作都得等当前修改完成
InnoDB趋势是一个很复杂的存储引擎,对于小应用会很慢,支持行锁,写操作较多会比较优秀(支持事务)
(3)用not exists 代替 not in
(4)对操作符的优化,尽量不采用不利于索引的操作符(in , not in, is null, is not null,<>等)
可以直接添加索引:alter table 表名 add index (字段名);

Mysql简单知识点----------------之存储引擎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值