MySQL常用内置函数:
内置函数可以在where条件使用
一.字符串函数:
concat:拼接字符串
例:把12,34,'ab'拼接成一个字符串'1234ab'
select concat(12,34,'ab');
length(字符串):包含字符个数
- 如果字符串包含utf8格式汉字,一个汉字length返回3
例1:分别计算字符串'abc'和'我爱你'的长度
select length('abc'); --长度为3
select length('我爱你'); --长度为9、
例2:查询students表欧中name长度等于9(三个utf格式汉字)的学生信息
select * from students where length(name)=9;
截取字符串
left(字符串,n):从左截取
right(字符串,n):从右截取
substring(字符串,起始位置,n):从初始位置起n个字符
例1:截取字符串'我爱你abc'从第3个字符开始的3个字符
select substring('我爱你abc',3,3); --截取结果为'你ab'
例2:查询students表card字段,截取出生年月日显示李白生日
select substring(card,7,8) from students where name='李白';
例3:查询students表所有学生信息,按生日从大到小排序
select * from students order by substring(card,7,8) desc;
去除空格
ltrim(字符串):删除字符串左侧空格
rtrim(字符串):删除字符串右侧空格
trim(字符串):删除字符串两侧空格
例:去除字符串' abc '左侧空格
select ltrim(' abc ');
二.数学函数
1.四舍五入
round(数字,小数位)
例:1.875四舍五入,保留2位小数
select round(1.875,2);
2.随机数
rand()
产生一个0-1.0的小数
技巧:从学生表中随机抽出一个学生
select * from students order by rand() limit 1;
三、日期和时间函数
1.当前日期
current_date()
2.当前时间
current_time()
3.当前日期和时间
time()
二、存储过程 视图
存储过程
视图:
- 对select语句的封装
- 视图是一张只读的表,只能用select 不能delete和update
三、事务
begin;开始事务
rollback;回滚事务(放弃更改)
commit;提交事务
四、索引 index
1.创建索引
create index 索引名称 on 表名(字段(长度));
例:给students的name字段创建索引,名为name_index
create index name_index on students(name(10));
2.调用索引
不需要写调用语句,只要where条件后用到的字段建立索引就会自动调用
3.查看索引
show index from 表名;
如果一个字段有主键,则会自动建立索引
4.删除索引
drop index 索引名称 on 表名;
索引的优缺点:
- 提高select查询速度
- 降低update、delete、insert语句执行速度
五、MySQL命令行
mysql -h mysql服务器的地址 -u 用户名 -p 密码
- 如果是本机 可以省略-h
MySQL登录后常用命令
- show databases:显示所有数据库
- use 数据库名:使用指定数据库
- show tables:查看指定数据库有多少表
- desc 表名:查看表字段结构
如果命令行默认字符集与数据库字符集不同
在windows默认字符集是gbk
set names gbk; --告诉mysql,客户端用的字符集是gbk
1.创建数据库
create database 数据库名 default charset 字符集;
2.删除数据库
drop database 数据库名;