SQL语法与数据库

数据库搭建与使用

在这里插入图片描述
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】快捷键。

连接MySQL时报错:Public Key Retrieval is not allowed的解决方法:http://www.imooc.com/article/321153

mysql客户端的使用

在这里插入图片描述
在这里插入图片描述
我只下了sqlyog

1、连接mysql服务端

在这里插入图片描述
在这里插入图片描述
这四个数据库是mysql自带的数据库,不能删掉!!!
删除其他数据库的时候,也要慎重

2、新增数据库

在这里插入图片描述

3、命令行界面

在这里插入图片描述
但是sqlyog没有这个的

4、sql文件导入

在这里插入图片描述
数据库右键 -> 导入 ->执行sql脚本
navicat:
在这里插入图片描述
导入后记得刷新

5、文件导出

这个是整个库导出:
在这里插入图片描述
sqlyog:
在这里插入图片描述
也可以单单的对表进行导出

数据库结构解析

Mysql表结构定义

在这里插入图片描述

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开始

Mysql表结构修改语法

在这里插入图片描述
https://blog.csdn.net/lbq15735104044/article/details/120190278
在这里插入图片描述
就是在工具里面操作

mysql表数据的基本增删改查

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sql的复杂查询实战

在这里插入图片描述

Redis内存性数据库

在这里插入图片描述
在这里插入图片描述
https://github.com/microsoftarchive/redis/releases

SQL语言与MySQL

数据库搭建与操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SQL语法与关键知识点

在这里插入图片描述
在这里插入图片描述

DML

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进阶查询-多表join
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1select * from departments
2select dept_no from departments where dept_name = 'Development'
3select * from employees where hire_date like '1998%' order by hire_date asc
3select * from employees where hire_date between '1998-01-01' and '1998-12-31' order by hire_date asc

在这里插入图片描述

6select * from employees where first_name like '%Mary%' or last_name like '%Mary%'

在这里插入图片描述

10select emp_no, count(*) from salaries group by emp_no having count(*) > 17
12select 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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值