学习目标2024.04.08
1.MySQL常用内置函数
2.了解存储过程
3.了解视图
4.了解事务
5.了解索引
6.掌握基于命令行的SQL使用
一.内置函数
-
可以再where后面作为条件使用
-
内置函数可以用在显示得字段名中
-
拼接字符串:concat(参数1,参数2,参数3)
把所有的参数连接成一个完整的字符串。
select concat(12,34,'abc')
2.包含字符个数:length(str)
如果字符串中包含utf8格式的汉字,一个汉字length赶回3
select length('我和你') 9 select length('you') 3 查询name长度等于9的学生信息 select * from students where length(name) = 9
3.截取字符串:left(‘字符串’,n)
-
left(str,len)返回字符串str的左端len个字符,中文与英文字母个数len一志
select left('我和你abc',3)
-
right(str,len)返回字符串str的右端len个字符,中文与英文字母个数len一志
4.从中间截取:substring(字符串,起始位置,n)
截取students表中所有学生得姓 select left(name,1) from student
5.去除字符串左边空格:ltrim(‘带空格的字符串')
去除字符串右 边空格:rtrim(‘带空格的字符串')
去除字符串两侧的空格:trim(’带空格的字符串‘)
6.四舍五入:round(数字,d)
d代表要保留的小数位,省略d默认为0.
7.随机数:rand()
从学生表中随机抽取一个学生 select * from students order by rand() limit 1;
8.返回当前日期:current_date()
返回当前时间:current_time()
返回当前日期和时间:now()
二.存储过程
存储过程PROCEDURE,也翻译成存储程序,是一条或者多条Sql语句的集合。
-
create procedure 存储过程名称(参数列表) begin sql 语法; end 调用存储过程 call stu(); 删除存储过程: drop procedure stu; --删除时不用写后面的()
三.视图
对查询的封装,可以当作一张只读的表使用
对视图只能用select,不能用delete和update
create view 视图名称 as select 语句; --创建一个视图,查询所有男生信息 create view stu_nan as select * from students where sex = '男' 删除视图: drop view 视图名字
四.事务
-
事务广泛的运用订单系统,银行系统等多种场景。
-
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,他是一个不可分割的工作单位。
-
例如:银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看作一个事务。
-
begin:(开始事务)后修改UPDATE或删除DELETE记录语句,变更会写道缓存中而不会立刻生效。
rollback:(放弃,回滚修改)
commit:(将修改的数据写入实际的表中)两个操作同时生效
-- 例:开启事务,删除students表中的studentNo为001的记录,同时删除scores表中的studentNo为001的记录,回滚事务,两个表的删除同时放弃。 begin; delete from students where studentNo ='001'; delete from scores where studentNo ='001' -- 回滚事务,放弃修改 rollback; select * from students select * from scores -- 发现没被删除001同学,因为rollback放弃了删除的修改 -- 如果开始begin一个事务,没有rollback和commit操作,中间系统出现了问题,默认是rollback操作
-
五.索引
-
index 给表建立索引,目的是加快select查询的速度
-
如果一个表记录很少,几十,几百不用索引
-
表的记录特别多
语法: create index 索引名称 on 表名(字段名称(长度))
-
调用索引
不需要显示的写调用索引的语句,只要where条件后面用到的字段建立了索引,那么系统会自动调用。
-
查看索引
对于主键系统会自动建立索引
show index from 表名;
-
删除索引
drop index 索引名 on 表名
六.MySQL命令行
cmd中:
-
mysql -h mysql服务器的地址 -u 用户名 -p
-
-h如果是本机的mqsql -h 可以使用
-
-
mysql登陆之后的常用命令
-
show databases:显示系统所有的数据库
-
use 数据库名:使用指定的一个数据库
--使用mydb数据库 use mydb
-
show tables:查看数据库有多少表
-
如果命令行默认字符集事gbk
-
set names gbk
告诉mysql客户端用的字符集是gbk
-
在命令行中每条sq
-
在命令行下创建和删除数据库
create database 数据库名 default charset 字符集
create database mytest default charset utf8; drop database mytest drop database if exists mytest --不存在不报错