整理Mysql常用语句(四)

Mysql 内置函数

拼接12, 34,'ab'

select concat(12, 34,'ab');

计算字符串'abc' 的长度

select length('abc');

-- 内置函数可以在where 后面使用

截取字符串 left()、 right()

-- 从左往右切 我和你

select left('我和你abc',3);

-- 从右往左 abc

select right('我和你abc',3);

substring(str,start, len)

-- 定位截取 '你ab'

select right('我和你abc',3,3);

ltrim() 去除字符串左边空格

select ltrim('    abc');

rtrim() 去除字符串右边空格

select rtrim('    abc      ')

trim() 去除两侧

round(n, d) 四舍五入,n数字,b保留小数点位数,默认保留整数

current_date() 反回系统当前日期

current_time() 反回系统当前时间

now() 反回系统当前日期时间

二、 存储过程

语法:

create procedure 存储过程名称(参数列表)
begin
sql 语句
end

-- 创建存储过程 stu(), 查询 students 表索引学生信息

create procedure stu()
begin
	select * from students;
end

-- 调用存储过程stu

call stu();

-- 删除

drop procedure if exists stu;

视图

将查询的结果封装

-- 语法

create view stu_nan as 
select * from students where sex='男';

select * from stu_nan inner join scores 
on stu_nan.studentNo = score.studentNo;

-- 删除

drop view stu_nan;
drop view if exists stu_nanl;

事务

所谓事务,他是一个操作序列,这些操作要么都执行,要么都步执行,他是一个不可分割的工作单位。
事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

开始事务 begin

回滚事务 rollback

提交事务 commit (表的修改生效)

-- 开启事务,删除students 表中studentNo 为001 的记录,
-- 同时删除socre 表中studentNo 为001 的记录,

begin;
delete from students where studentNo = '001';
delete from score where studentNo = '001';
commit;

-- 回滚事务, 两表的数据同时放弃更改

rollback;

如果开始一个事务,执行了begin之后,没有rollback没有commit,中间系统出现了问题导致中断,默认执行rollback。
没有begin 代表没有事务,sql语句都是实时生效的

索引

目的是加快select 查询的速度

创建索引

-- 语法

create index 索引名称 on 表名(字段名称(长度));

-- 给students 的age 字段创建索引, 名为age_index

create index age_index on students(age);

-- where 条件后面的字段,数据库系统会自动查找是否有索引
-- 这里会自动调用age_index;

select * from sudents where age =30;

查看索引

show index from students;

删除索引

drop age_index on students;

优缺点

优:
	提高select 的速度


缺点:
	insert、update、delete 降低速度

Mysql 的命令行

mysql -h 0.0.0.0 -u root -p
posted @ 2020-07-20 01:25  阳澄湖大水怪  阅读(184)  评论(0)    收藏  举报