https://dev.mysql.com/downloads/mysql/
[mysqld]
language=D:\\soft\worksoft\mysql-8.0.30-winx64\\share\english
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\soft\worksoft\mysql-8.0.30-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\soft\worksoft\mysql-8.0.30-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=5
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
# mysql_native_password
# default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
配置环境变量:计算机 -> 此电脑 -> 右键,属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建一个 MYSQL_HOME,值呢就是上面basedir的地址
mysqld —initialize —user=mysql —console
无密码生成:https://blog.csdn.net/u010500895/article/details/120777516
建议根据这个文章去初始化:https://www.cnblogs.com/xiaowangtongxue/p/10846348.html
重启mysql
在cmd.exe中输入net stop mysql
关闭mysql 输入 net start mysql,就可以重新启动mysql服务了。退出mysql
1.可以直接执行exit命令退出mysql,也可以执行quit命令退出mysql
2.如果要强制退出mysql,可以按【ctrl+d】快捷键。
我只下了sqlyog
这四个数据库是mysql自带的数据库,不能删掉!!!
删除其他数据库的时候,也要慎重
但是sqlyog没有这个的
数据库右键 -> 导入 ->执行sql脚本
navicat:
导入后记得刷新
这个是整个库导出:
sqlyog:
也可以单单的对表进行导出
CREATE TABLE `user`(
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` VARCHAR(10) DEFAULT NULL COMMENT '名称',
PRIMARY KEY ('id') USING BTREE
)ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='first_table'
# AUTO_INCREMENT=10意思是id从10开始
https://blog.csdn.net/lbq15735104044/article/details/120190278
就是在工具里面操作
avg:求平均值
sum:求和
SELECT a.id,a.name,b.name FROM j_chapters a LEFT JOIN j_course b ON a.id=b.id
SELECT a.id aid,a.name aname,b.name bname FROM j_chapters a LEFT JOIN j_course b ON a.id=b.id
https://github.com/microsoftarchive/redis/releases
进阶查询-多表join
1、select * from departments
2、select dept_no from departments where dept_name = 'Development'
3、select * from employees where hire_date like '1998%' order by hire_date asc
3、select * from employees where hire_date between '1998-01-01' and '1998-12-31' order by hire_date asc
6、select * from employees where first_name like '%Mary%' or last_name like '%Mary%'
10、select emp_no, count(*) from salaries group by emp_no having count(*) > 17
12、select max(salary)/avg(salary)/sum(salary)/min(salary) from salaries
链接查询
select distinct a.* from employees a
left join dept_emp b on a.emp_no = b.emp_no
left join departments c on c.dept_no = b.dept_no
where c.dept_name = 'Development'
子查询
select * from employees where emp_no in
(
select emp_no from dept_emp whrer dept_no =
(
select dept_no from departments where dept_name = 'Development'
)
)
distinct 去重
select distinct a.* from employees a
left join dept_emp b on a.emp_no = b.emp_no
left join departments c on c.dept_no = b.dept_no
left join salaries d on d.emp_no = a.emp_no
where c.dept_name = 'Development' order by d.salary desc limit 10
在查询语句前面加一个explain 就能分析出来
# 左删除
select id, LTRIM(remark) from hogwarts_user;
# 右删除
select id, RTRIM(remark) from hogwarts_user;
# 前后空格删除
select id, TRIM(remark) from hogwarts_user;
select emp_no,from_date from dept_manager
# 所有的日期都加上两日
select emp_no,ADDDATE(from_date,2) from dept_manager
# 获取当前日期
select CURRENT_TIME();
select NOW();
# 计算任期年数(使用DATEDIFF的话要在select中加入参数)
select emp_no, from_date, to_date, DATEDIFF(to_date,from_date)/365 任期年数 from dept_manager
select sign(0.15); # 1
select sign(-15); # -1
select 6 DIV 5; # 1
select 6/5; # 1.2
-- 存储过程
drop procedure if exists fun;
-- 从这里
delimiter $$
create procedure fun()
begin
declare i int;
declare name varchar(100);
declare age int;
set i = 19;
set name=concat('sily',i);
set age=i+2;
loops:while i<=2000 do
insert into `user` values(i,name,age);
set i=i+1;
end while loops;
end$$
delimiter ;
-- 到这里需要多行执行
call fun();
drop procedure fun;
https://blog.csdn.net/weixin_60589106/article/details/122704881
show variables:展示的mysql的服务器系统变量
show variables like ‘%_log%’,找到general_log,如果是为OFF,证明记录日志是关闭的,要先去开启日志,SET GLOBAL general_log=‘ON’
general_log_file:是日志的存储位置,每一条记录的存在.log中
show variables like ‘%long_query%’:查看控制慢查询的阀值,也就是说当一个 SQL 的执行时间超过这个值的时候会就被记录到慢查询文件中去。
show variables like '%log_output%'
-- 打开全局日志
SET GLOBAL general_log= 1
-- 用于控制慢查询的阀值
show variables like '%slow_query_log%'
set long_query_time=0.0001
show variables like '%_log%'
-- 使用table输出
set global slow_query_log = on
set SQL_LOG_OFF=on
-- 日志输出类型是用table/file
set global log_output='table'
select * from demo.`user` order by id desc limit 2000,20000
-- general_log记录了mysql服务器的操作
select * from mysql.general_log
-- 慢日志
select * from mysql.slow_log