Mysql注意事项
关联查询你
# 内链接 (常用) 只连接匹配的行 A B 两表
select * from A inner join B on 条件(表1.字段=表2.字段);
# 外连接 左外连接(常用) 优先显示左表全部记录 left join
select * from A left join B on 条件(表1.字段=表2.字段)
# 外连接 右外连接(常用) 优先显示左表全部记录 left join
select A.name,B.age from A right join B on 条件(表1.字段=表2.字段)
在面对select查询相关数据时候,特别是数据量较大的时候,尽量不要使用相关order by去增加工作量,如下:其中这个order by id 只会增加查询时间
select * from 表名 where id = 2 order by id limit 1
where条件后面尽量跟主键,这样效率更高
update 表名 set issn = '1110-7231' where id=4;
模糊查询
select * from 表名 order by rand() LIMIT 1;
limit 用法(方便取特定值)
1.取前15条记录:
select * from tablename order by orderfield desc/asc limit 0,15
2.表示从3行以后开始(不包括第3行),按照数据库顺序取10条数据,即检索得到4到13行的数据。
select * from auth_permission limit 3,10;
3.测试数据之后mysql表里数据重置
truncate table 表名
4.获取当前数据存入msql后的id值
last_id = cue.lastrowid
删除某字段字数不超过10的数据(length 函数的用法)
(1)查看某字符串的长度(比如本站网址)
select length(" www.qqqcn.net ");
(2)查询文章表(article)中标题最长的文章
select id,title from article order by length(title) desc;
(3)查出用户名长度小于6个字符的用户列表
select * from user where length(username) < 6;
索引的使用
优点:创建索引可以大大提高系统的性能。
第一、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二、可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三、可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四、在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
组合索引:
在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。例如,这里由id、name 和 age3 个字段构成的索引,索引行中就按id/name/age的顺序存放,索引可以索引下面字段组合(id,name,age)、(id,name)或者(id)。如果要查询的字段不构成索引最左面的前缀,那么就不会是用索引,比如,age或者(name,age)组合就不会使用索引查询。(下图source_type为组合索引)
单列索引:
一个索引只包含单个列,但一个表中可以有多个单列索引。 这里不要搞混淆了
(上图 issn 为单列索引)
详细内容学习:https://blog.csdn.net/qq_38852289/article/details/80817156