赞
踩
在同步时,对删除和修改都比较慎重(监控同步时)
mysql主从搭建 前提软件libaio,rsync
1.主
2.从
3.同步
4.测试
注意:先执行从服务器的脚本,再执行主服务器脚本
先要在主服务器上配置免密登录
ssh-copy-id root@10.0.0.12
vim mysql.sh
source mysql.sh
# source /etc/profile //激活profile文件
mysql -p'hz),bpIhb2x+' //密码为上面初始化之后自动生成的
source mysql.sh
两个脚本都运行完之后
主服务器配置
从服务器配置
主服务器配置
到此配置全部完成
只有 select ⼦句和 having ⼦句、order by ⼦句中能使⽤聚合函数,where ⼦句不能使⽤聚合函 数。当使⽤聚合查询以后,不能使⽤where条件,如果要添加条件,就使⽤having。
常⽤聚合``函数 | |
统计表中数据的⾏数或者统计指定列不为空值的数据⾏个数 | select count(*或表头名) from 表名; |
计算指定列的最⼤值,如果指定列是字符串类型(⽂字类型)则使 ⽤字符⾸拼排序 | select max(表头名) from 表名; |
计算指定列的最⼩值,如果指定列是字符串类型(⽂字类型)则使 ⽤字符⾸拼排序 | select min(表头名) from 表名; |
计算指定列的数值和,如果指定列不是数值类型则计算结果为 0 | select sum(表头名) from 表名; |
计算指定列的平均值,如果指定列不是数值类型则计算结果为 0 | select avg(表头名) from 表名; |
⽇期时间函数 | |
获取当前⽇期和时间 | 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:标准⽇期 格式) |
语法:
select 聚合函数(表头名 1),表头名 2 from 数据表名 group by 表 头名;
select 聚合函数(表头名) 临时表头名,真实表头名 from 数据表名 group by 真实表头名;
若⽤ group by 分组查询语句,必须加⼊聚合函数,否则报错 (踩坑)
⼦查询是指⼀个查询语句嵌套在另⼀个查询语句内部的查询;
该查询语句可以嵌套在⼀个 SELECT、SELECT...INTO、 INSERT...INTO 等语句中。
在执⾏查询时,⾸先会执⾏⼦查询中的语句,再将返回的结果作为外层查询的过滤条件。
在⼦查询中通常可以使⽤⽐较运算符和 IN、EXISTS、ANY、 ALL 等关键字。
例如:select * from class where cid=(select classid from student where sname='张三');
也就是⽤“=”、“、“>”这类⽐较运算符
exists 关键字后⾯的参数可以是任意⼀个⼦查询, 它不产⽣任何数据,只返回 true 或 false。⽽当 返回值为 true 时外层查询才会执⾏。
相当于内层句⼦是⼀个判断句式。
交叉连接返回的结果是被连接的两个表中所有数据⾏的笛卡尔积;
交叉连接返回的结果是被连接的两个表中所有数据⾏的笛卡尔积;
语法: select * from 表1 cross join 表2;
语法:select 查询字段1,查询字段2, ... from 表1 join 表2 join ... on 表1.关系字段=表2.关系字段 =...;
join:联合
on:条件
权限 | 说明 |
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 (插入权限) |
grant all on test.user
客户机地址可以有以下表现形式:
%:表示所有地址
192.168.33.%:表示 33 ⽹段下所有主机,⼀般为你想为哪个⽹段授权,或为⾃⼰⽹段下的主机授权
触发器是⼀种特殊的存储过程,它在插⼊,删除或修改特定表中的数据时触发执⾏,它⽐数据库本 身标准的功能有更精细和更复杂的数据控制能⼒。
1、例如在某⼀个时间触发什么事情
2、例如不允许股票价格的升幅⼀次超过%10
3、审计功能,某⼀个⼈登录会记录所有的操作
create trigger 触发器名称 触发的时机 触发的动作 on 表名 for each row 触发器状态
1、语法的红字为固定格式
2、触发器名称:⾃定义
3、触发的时机:before(之前) 或 after(之后),在执⾏动作之前还是之后
4、触发的动作:指的激发触发程序的语句类型(插⼊、更新、删除表或数据等)
5、each row:操作的每⼀⾏都会被监控
6、触发器状态:在触发的动作之前或之后做什么事情,⽐如当我删 了表 1 的某条数据后,⾃动清空 表 2。
(1)监视地点:table(表)
(2)监视事件:insert(插⼊)、update(更新)、delete(删除) 等动作
(3)触发时间:before(之前)、after(之后)
(4)触发事件:在监视事件之前或之后,对当前表或其他表的插 ⼊、更新、删除等动作
(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;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。