本文主要是介绍【软测学习笔记】MySQL入门Day6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
🌟博主主页:我是一只海绵派大星
📚专栏分类:软件测试笔记
📚参考教程:黑马教程
❤️感谢大家点赞👍收藏⭐评论✍️
目录
一、 concat拼接字符串函数
二、length返回字符串字符的个数
三、mysql内置函数可以在where条件后面使用
四、left从字符串左侧截取指定数量字符
五、right从字符串右侧截取指定数量的字符
六、substring从字符串指定位置截取指定数量字符
七、内置函数可以用在select显示的字段名中
八、ltrim去除字符串左侧空格
九、rtrim去除字符串右侧空格
十、trim去除字符串两侧空格
十一、round四舍五入
十二、rand随机数
十三、存储过程
十四、视图
十五、事务
回滚事务
提交事务
十六、索引
创建索引
调用索引
查看索引
删除索引
索引的优缺点
一、 concat拼接字符串函数
concat(参数1, 参数2, 参数3, 参数n)
- 参数可以是数字,也可以是字符串
- 把所有的参数连接成一个完整的字符串
把 12,34 , ’ab’ 拼接为一个字符串 ’1234ab’select concat( 12 , 34 , 'ab' );
二、length返回字符串字符的个数
- 一个utf8格式的汉字,length返回3
计算字符串’abc’的长度
select length( 'abc' );计算字符串 ’ 我和你 ’ 的长度SELECT length( ' 我和你 ' );计算字符串 ’ 我和 you’ 的长度SELECT length( ' 我和 you' );
三、mysql内置函数可以在where条件后面使用
查询表 students 中 name 长度等于 9 (三个 utf8 格式的汉字)的学生信息SELECT * from students where length(name) = 9 ;
四、left从字符串左侧截取指定数量字符
left(字符串,n)
- n代表从字符串左侧截取n个字符
截取字符串 ’ 我和你 abc’ 的左端 3 个字符select left( ' 我和你 abc' , 3 );截取字符串 ’ 我和你 abc’ 的左端 4 个字符select left( ' 我和你 abc' , 4 );截取字符串 ’abc 我和你 ’ 的左端 4 个字符select left( 'abc 我和你 ' , 4 );
五、right从字符串右侧截取指定数量的字符
rigth(字符串, n)
- n代表从字符串右侧截取n个字符
截取字符串 ’ 我和你 abc’ 的右端 3 个字符select right( ' 我和你 abc' , 3 );截取字符串 ’ 我和你 abc’ 的右端 4 个字符select right( ' 我和你 abc' , 4 );
六、substring从字符串指定位置截取指定数量字符
substring(字符串, 起始位置, n)
- 起始位置从1开始
- n代表截取的数量
截取字符串 ’ 我和你 abc’ 从第 2 个字符开始的 3 个字符select substring( ' 我和你 abc' , 2 , 3 );截取字符串 ’ 我和你 abc’ 从左侧开始的 3 个字符select substring( ' 我和你 abc' , 1 , 3 );截取字符串 ’ 我和你 abc’ 从第 4 个字符开始的 1 个字符select substring( ' 我和你 abc' , 4 , 1 );
七、内置函数可以用在select显示的字段名中
截取 students 表中所有学生的姓SELECT left(name, 1 ) from students;SELECT substring(name, 1 , 1 ) from students;
八、ltrim去除字符串左侧空格
- ltrim(带空格的字符串)
去除字符串 ' abcd ' 左侧空格SELECT ltrim( ' abcd ' );
九、rtrim去除字符串右侧空格
- rtrim(带空格的字符串)
去除字符串 ' abcd ' 右侧空格SELECT rtrim( ' abcd ' );select concat(rtrim( ' abcd ' ), ' 测试字符 ' );
十、trim去除字符串两侧空格
- trim(带空格的字符串)
去除字符串 ' abcd ' 两侧空格SELECT trim( ' abcd ' );
十一、round四舍五入
- d代表要保留的小数位,省略d默认为0
1.653 四舍五入,保留整数位SELECT round( 1.653 );1.653 四舍五入,保留 2 位小数SELECT round( 1.653 , 2 );
十二、rand随机数
- rand() :每次运行会产生一个从0到1之间的浮点数
- 经常用rand对一个张进行随机排序:order by rand()
select rand();小技巧:从学生表中随机抽出一个学生SELECT * from students order by rand() LIMIT 1 ;
十三、存储过程
创建存储过程 stu() ,查询 students 表所有学生信息CREATE PROCEDURE stu()BEGINSELECT * from students;end-- 调用存储过程 stucall stu();-- 删除存储过程 , 删除的时候不用写名字后面的 ()DROP PROCEDURE stu;drop PROCEDURE if EXISTS stu;
十四、视图
- 视图就是对select语句的封装
- 视图可以理解为一张只读的表,针对视图只能用select,不能用delete和update
创建一个视图 , 查询所有男生信息CREATE VIEW stu_nan asSELECT * from students where sex = ' 男 ' ;-- 使用视图SELECT * from stu_nan INNER JOIN scoreson stu_nan .studentNo = scores .studentNo ;-- 删除视图drop VIEW stu_nan;DROP view if EXISTS stu_nan;
十五、事务
- 事务是多条更改数据操作的sql语句集合
- 一个集合数据有一致性,要么就都失败,要么就都成功回滚
- begin ----开始事务
- rollback ----回滚事务,放弃对表的修改
- commit ---- 提交事务,对表的修改生效
回滚事务
开启事务,-- 删除 students 表中 studentNo 为 001 的记录,-- 同时删除 scores 表中 studentNo 为 001 的记录 ,-- 回滚事务,两个表的删除同时放弃-- 开始事务begin ;DELETE from students where studentNo = '001' ;DELETE from scores where studentNo = '001' ;-- 回滚事务 , 放弃更改ROLLBACK;
- 如果开始一个事务,执行了begin,之后,没有rollback也没有commit,中间系统出问题了.默认会执行rollback
提交事务
开启事务,-- 删除 students 表中 studentNo 为 001 的记录,-- 同时删除 scores 表中 studentNo 为 001 的记录 ,-- 提交事务,使两个表的删除同时生效begin ;DELETE from students where studentNo = '001' ;DELETE from scores where studentNo = '001' ;-- 提交事务 , 一旦提交事务 , 两个删除操作同时生效commit;
十六、索引
- index
- 给表建立索引,目的是加快select查询的速度
- 如果一个表记录很少,几十条,或者几百条,不用索引
- 表的记录特别多,如果没有索引,select语句效率会非常低
创建索引
- create index 索引名 on 表名(字段)
- 如果字段为字符串,需要写明创建表字段的时候字符串的长度
为表 students 的 age 字段创建索引,名为 age_indexCREATE index age_index on students (age);为表 students 的 name 字段创建索引,名为 name_indexCREATE INDEX name_index on students (name( 10 ));
调用索引
- 不需要显示的写调用索引的语句,只要where条件后面用到的字段建立了索引,那么系统会自动调用
where 条件后面的字段 , 数据库系统会自动查找是否有索引-- 这里会自动调用 age_indexselect * from students where age = 30 ;-- 自动调用 name_indexSELECT * from students where name = ' 李白';-- 不会调用任何索引 , 因为 sex 字段没有索引SELECT * from students where sex = ' 女 ' ;
查看索引
- show index from 表名
- 对于主键,系统会自动建立索引
查看students表的索引
show index from students;
删除索引
- drop index 索引名 on 表名
show index from students;-- 删除索引 age_indexdrop index age_index on students;-- 删除索引 name_indexdrop index name_index on students;
索引的优缺点
- 提高select的查询速度
- 降低update,delete和insert语句的执行速度
- 项目中80%以上是select,所以index必须的
- 在实际工作中如果涉及到大量的数据修改操作,修改之前可以把索引删除,修改完成后再把索引建立起来
🎁结语:
本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,大星必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!
这篇关于【软测学习笔记】MySQL入门Day6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!