学习目标
MySQL的内置函数
concat拼接字符串函数
把12,34,‘ab’,拼接成‘1234ab’
select concat(12,34,'ab')
length返回字符串字符的个数
计算字符串长度‘abc’
select length('abc')返回3
一个utf-8,一个汉字表示3个长度
select length (‘我和you’) 返回9
内置函数可以在where条件后面使用
select * from students where length(name)=9
截取字符串left/right 两端
left(str,len)返回字符串str的左端len个字符,中文和英文字母个数len一致
select left('我和你abc',3)返回我和你
select left('我和你abc',4)返回我和你a
select right('我和你abc',3) 返回abc
从中间截取,从第2个字符开始的3个字符
select substring('我和你abc',2,3) 和你a
内置函数可以用在select显示的字段名中
截取students表中所有学生的姓
select left(name,1) from students;
select substring(name,1,1) from students;
练习
select substring(card,7,8) from students where name='李白'
select * from students order by substring(card,7,8)
去除左/右空格ltrim/rtrim
select ltrim(' abcd')
select rtrim('abcd ')
select concat(rtrim(' abcd '),'测试字符')
select trim(' abcd ')--去除两侧空格
数学函数
四舍五入round()
select round(1.653,2)保留两位小数
随机数rand()
每次运行时候会产生一个0-1之间的浮点数,经常用于对一个表进行随机排序
从学生表中随机抽取一个学生
select * from students order by rand() limit 1;
返回时间
插入系统当前时间
存储过程
存储过程procedure
视图
视图就是对select语句的封装
视图是一张表,表是只读的,不能用delete和update
create view stu_nan as select * from students where sex='男';
select * from stu_nan;
事务
广泛运用于订单系统,银行系统等,用于更改数据之类的,是多条SQL的语句集合
一个事务具有一致性,失败都失败,成功都成功回滚。
没有写begin代表没事务,没事务的表操作都是实时生效
commit,提交事务,让修改生效,如果还没有执行commit,中间关机了,结果也是没有更改
索引
查看索引
show index from students;
删除索引
drop index age_index on students;
优缺点
MySQL的命令行
-h 如果是本机的mysql,则可以省略,异地的不可以
常用命令
结果:
创建/删除数据库
在navicat中是手动创建
在命令行中:创建&删除
creare database mytest default charset utf-8;
drop database if exists a;