day23(mysql主从脚本与mysql详细语句介绍)

一、mysql主从脚本

在同步时,对删除和修改都比较慎重(监控同步时)

mysql主从搭建 前提软件libaio,rsync

1.主

2.从

3.同步

4.测试

注意:先执行从服务器的脚本,再执行主服务器脚本

master-mysql配置脚本

先要在主服务器上配置免密登录

ssh-keygen

ssh-copy-id root@10.0.0.12

vim mysql.sh

source mysql.sh

# source /etc/profile     //激活profile文件

mysql -p'hz),bpIhb2x+'   //密码为上面初始化之后自动生成的

slave-mysql配置脚本

source mysql.sh

两个脚本都运行完之后

主服务器配置

从服务器配置

主服务器配置

到此配置全部完成

二、MySQL详细介绍

1、聚合函数

只有 select ⼦句和 having ⼦句、order by ⼦句中能使⽤聚合函数,where ⼦句不能使⽤聚合函 数。当使⽤聚合查询以后,不能使⽤where条件,如果要添加条件,就使⽤having。

常⽤聚合``函数
统计表中数据的⾏数或者统计指定列不为空值的数据⾏个数select count(*或表头名) from 表名;
计算指定列的最⼤值,如果指定列是字符串类型(⽂字类型)则使 ⽤字符⾸拼排序select max(表头名) from 表名;
计算指定列的最⼩值,如果指定列是字符串类型(⽂字类型)则使 ⽤字符⾸拼排序select min(表头名) from 表名;
计算指定列的数值和,如果指定列不是数值类型则计算结果为 0select sum(表头名) from 表名;
计算指定列的平均值,如果指定列不是数值类型则计算结果为 0select avg(表头名) from 表名;

2、其他常⽤函数

(1)⽇期函数

⽇期时间函数
获取当前⽇期和时间select now();
显示输⼊⽇期的年份select year('date');例如:select year('1998-08-24');(只显示 1998 年)
计算输⼊的⽇期 到年 初的周数select weekofyear ('date');例如:select year('2023-01-31');(会显示 5,也就是5 周)
计算输⼊的⽇期 到年 初的天数select dayofyear ('date');例如:select dayofyear('2023-01-31');(会显 示 31,也就是 31 天)
显示输⼊⽇期的 ⽉份 值select month('date');例如:select month('1998-08-24');(只显示 8 ⽉)
显示输⼊⽇期是 ⼏号select day('date');例如:select day('1998-08-24');(只显示 24 号)
显示输⼊⽇期是 ⼀周 中的第⼏天 (从周⽇ 开始)select dayofweek('date');例如:select dayofweek('1998-08-24');(显 示 2,也就是周⼀)
显示输⼊⽇期的 ⽉份 的最后⼀天select last_day('date');例如:select last_day('2023-09-24');(会显示 2023 年 9 ⽉ 最后⼀天是⼏号)
显示输⼊⽇期加多少天 的结果select adddate(current_date,需要加的天数);例如:select adddate(current_date,44);(会显示当前⽇期加上 44 天的结果)
显示输⼊⽇期减 多少 天的结果select subdate(current_date,需要减的天数); 例如:select subdate(current_date,44);(会显示当前⽇期减去 44 天的结果)
显示两个⽇期中 间隔 了多少天select datediff ('date1','date2');例如:select datediff ('2023-09- 24','1998-08-24');(会显示 9162,也就是两个⽇期之间隔了 9162 天)
显示输⼊时间已 经过 了多少⼩时select hour('time');例如:select hour('18:41:44');(会显示已经过去了 18 个⼩ 时)
显示输⼊时间已 经过 了多少分钟select minute('time');(time 为时间标准格式)
显示过了多少秒select second('time');(time 为时间标准格式)
显示输⼊⽇期时 间的 时间值select time('datetime');(datetime:标准⽇期格式)
显示输⼊⽇期select date('datetime');(datetime:标准⽇期 格式)

(2)数字函数

(3)字符串函数

3.MySQL分组查询

语法:

        select 聚合函数(表头名 1),表头名 2 from 数据表名 group by 表 头名;

        select 聚合函数(表头名) 临时表头名,真实表头名 from 数据表名 group by 真实表头名;

        若⽤ group by 分组查询语句,必须加⼊聚合函数,否则报错 (踩坑)

4.MySQL子查询语句

⼦查询是指⼀个查询语句嵌套在另⼀个查询语句内部的查询;

该查询语句可以嵌套在⼀个 SELECT、SELECT...INTO、 INSERT...INTO 等语句中。

在执⾏查询时,⾸先会执⾏⼦查询中的语句,再将返回的结果作为外层查询的过滤条件。

在⼦查询中通常可以使⽤⽐较运算符和 IN、EXISTS、ANY、 ALL 等关键字。

例如:select * from class where cid=(select classid from student where sname='张三');

(1)⽐较运算符的⼦查询

也就是⽤“=”、“、“>”这类⽐较运算符

(2)exists 关键字的⼦查询

        exists 关键字后⾯的参数可以是任意⼀个⼦查询, 它不产⽣任何数据,只返回 true 或 false。⽽当 返回值为 true 时外层查询才会执⾏。

        相当于内层句⼦是⼀个判断句式。

5.MySQL多表联合查询

(1)交叉连接查询

        交叉连接返回的结果是被连接的两个表中所有数据⾏的笛卡尔积;

        交叉连接返回的结果是被连接的两个表中所有数据⾏的笛卡尔积;

        语法: select * from 表1 cross join 表2;

(2)多表联合查询

        语法:select 查询字段1,查询字段2, ... from 表1 join 表2 join ... on 表1.关系字段=表2.关系字段 =...;

        join:联合

         on:条件

6.MySQL授权

(1)MySQL基础权限

权限说明
all设置 grant option 之外的所有权限(授权选项)
alter允许使⽤ alter table(修改表的权限)
create允许使⽤ create table(添加表的权限)
create user允许使⽤ create user(添加⽤户权限)
delete允许使⽤ index(索引权限)

index

允许使⽤ index(索引权限)
insert允许使⽤ insert(插⼊权限)
update允许使⽤ update(更新权限)
drop允许使⽤ drop table(删除表权限)

replication slave

允许从主服务器中读取⼆进制⽇志⽂件
show databases允许显示所有数据库
select允许使用   select (插入权限)

(2)权限语法

grant all on test.user

客户机地址可以有以下表现形式:

%:表示所有地址

192.168.33.%:表示 33 ⽹段下所有主机,⼀般为你想为哪个⽹段授权,或为⾃⼰⽹段下的主机授权

三、MySQL触发器

1.概念

        触发器是⼀种特殊的存储过程,它在插⼊,删除或修改特定表中的数据时触发执⾏,它⽐数据库本 身标准的功能有更精细和更复杂的数据控制能⼒。

        1、例如在某⼀个时间触发什么事情

        2、例如不允许股票价格的升幅⼀次超过%10

        3、审计功能,某⼀个⼈登录会记录所有的操作

2、触发器语法

create trigger 触发器名称 触发的时机 触发的动作 on 表名 for each row 触发器状态

1、语法的红字为固定格式

2、触发器名称:⾃定义

3、触发的时机:before(之前) 或 after(之后),在执⾏动作之前还是之后

4、触发的动作:指的激发触发程序的语句类型(插⼊、更新、删除表或数据等)

5、each row:操作的每⼀⾏都会被监控

6、触发器状态:在触发的动作之前或之后做什么事情,⽐如当我删 了表 1 的某条数据后,⾃动清空 表 2。

3、触发器创建的四要素

(1)监视地点:table(表)

(2)监视事件:insert(插⼊)、update(更新)、delete(删除) 等动作

(3)触发时间:before(之前)、after(之后)

(4)触发事件:在监视事件之前或之后,对当前表或其他表的插 ⼊、更新、删除等动作

4、触发器实例

四、MySQL基本优化操作

1、忘记 MySQL 密码

2、MySQL 存储引擎

(1)查看数据库使⽤的存储引擎

(2)创建表并指定存储引擎

(3)修改已存在数据表的存储引擎

(4)修改 MySQL 服务的默认存储引擎

练习

远程连接数据库的要素 :

1、username 2、password 3、url mysql ip|域名 数据库名称 端口

别名:

select id as 编号,name as 姓名,gender as 性别 from student;

数据分析的基础

1、排序 :max min

2、汇总 :count sum avg

3、数学进制 :

二进制 八进制 十进制 十六进制

select max(price) from product;

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值