Strawberry-Mysql

提示:版权归Strawberry所有
Q:2467175589
未经授权,禁止搬用。


一、初识Mysql


1.什么是Mysql?

答:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。


2.数据库的优点是什么?

A.体积小
B.速度快
C.使用成本低
D.跨平台性


3.数据库的安装教程


1.百度搜索Mysql(选择官网)

在这里插入图片描述

2.选择标题上的DOWNLOADS

在这里插入图片描述

3.往下滑动 找到MySQL Community (GPL) Downloads

在这里插入图片描述

4.选择社区版

在这里插入图片描述

5.下载对应版本Mysql

A.下载最新version

第一步
在这里插入图片描述第二步

在这里插入图片描述

注意:此版本为8.0.32,只讲解Mysql8的安装方法,Windows只推荐msi安装方法,zip方法暂时不教学。

A.疑问:为什么不选择第一种版本(2.4M)?
答:因为第一种版本是在线联网安装,在这里也可以选择。这里仅供第二种安装方法

B.下载8.0.25版本(也就是书中版本)

第一步
在这里插入图片描述

第二步
将version改为8.0.25,之后点击Download
在这里插入图片描述

6.Mysql的安装、配置

1.安装

1.下载完成后双击打开安装包
在这里插入图片描述
注意:这里安装的是8.0.31版本,推荐使用书中版本8.0.25。

2.选择与书中相同Server only版本,点击Next。
在这里插入图片描述

3.选择安装路径 数据库存放路径
在这里插入图片描述
4.点击Execute 等待安装完毕 点击Next
在这里插入图片描述
5.继续点击Next进入下一步,进入配置环节
在这里插入图片描述

2.配置

1.Type and Networking
在这里插入图片描述

2.Authentication Method(保持默认设置点击Next)
在这里插入图片描述
3.Accounts and Roles在这里插入图片描述

4.Windows Service(点击Next)
在这里插入图片描述
5.Apply Configuration在这里插入图片描述

自此Mysql配置完毕

6.基础指令介绍

按下win+r 进入cmd 使用命令行
普通用户无权限 便搜索cmd以管理员的身份运行
1.启动/关闭Mysql服务:

net start 安装时设置的服务名称 (例如Mysql80)
启动Mysql
net stop 安装时设置的服务名称
关闭Mysql
登入mysql服务器
mysql -h hostname -u username -p
hostname主机地址 username用户名

1.mysql class day.01

1.使用cmd登入mysql过程

1.首先cd切换到mysql目录
2.mysql -h localhost -u root -p然后输入密码登入mysql

常见问题:cd指令没有切换但mysql的bin目录下

2.mysql myself day.01

1.SQL分类

1.DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
凡是带有create、drop、alter的都是DDL。
DDL主要操作的是表的结构。不是表中的数据。
create:新建,等同于增
drop:删除
alter:修改
这个增删改和DML不同,这个主要是对表结构进行操作。

2.DML:数据操作语言,用来对数据库表中的数据进行增删改
数据操作语言(凡是对表当中的数据进行增删改的都是DML)
insert delete update
insert 增
delete 删
update 改
这个主要是操作表中的数据data。

3.DQL:数据查询语言,用来查询数据库中表的内容。
数据查询语言(凡是带有select关键字的都是查询语句)
select…

4.DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限
是数据控制语言。
例如:授权grant、撤销权限revoke…

2.导入数据库

SOURCE sql文件;
注意:文件路径不能含有中文。

3.查看表中的数据

SELECT * FROM 表名;

4.查看表中结构(不看数据)

DESC 表名;

5.MYSQL基本命令

1.查看MYSQL的版本号

SELECT VERSION();

2.查看当前使用的是哪个数据库

SELECT DATABASE();

MYSQL注意事项:不见分号不执行,分号表示结束

6.DQL简单查询语句

1.查询一个字段?
SELECT 字段名 FROM 表名;
	其中要注意:
		SELECT和FROM都是关键字。
		字段名和表名都是标识符。
	强调:
	1.对于所有的SQL语句来说,是通用的
    2.所有SQL语句以;结束
    3.大小写都可以
2.查询两个字段或者多个字段
使用逗号隔开即可
3.查询所有字段怎么办
第一种方法:可以把所有字段都写上
第二种办法:可以使用通配符*解决
	这种方法缺点:
		1.效率低
		2.可读性差
	在实际开发中不建议,可以在DOS命令窗口看数据可以采用这种方法
4.给查询的起别名

select 列表 as 别名 from 表名;

使用as关键字起别名
注意:只是将显示的查询结果列名显示为别名,原表列名还是叫原表列明
记住:select语句不会进行任何修改操作,(只负责查询)
	as关键字可以省略吗?
	答案:可以的
	假设起别名的时候,别名中有空格怎么办?
	答案:会报错,但是可以用单引号或者双引号括起来。单引号是标准 双引号在oracle用不了
5.字段可以使用数学运算
例如:select ename,sal*12 from emp;
如果起中文别名 可以用as加上单引号
例如:select ename,sal*12 as '年薪' from emp;

2.排序数据

1.条件查询

1.什么是条件查询?
	不是把所有表中所有数据都查出来,是查询出来符合条件的
	语法格式:
		1.select
			...
		  from
		  	...
		  where
		  	条件;

2.都有哪些条件?
	1.=等于
	查询薪资等于800的姓名和编号?
		select empno,ename from emp where sal = 800
	查询SMITH的编号和薪资
		select empno,ename from emp where ename = 'SMITH'
	2.<>或者!= 不等于
	查询薪资不等于800的员工姓名编号?
		select empno,ename from emp where sal != 800;
		select empno,ename from emp where sal <>800;
	3.<小于
	4.<=小于等于
	5.>大于
	6.>=大于等于
	7.between  ...	 and	...两个值之间相当于>= and <=
	查询薪资再2450和3000之间的员工信息?包括2450和3000
		First:>= and <=(and是并且的意思。)
			select empno,ename,sal from emp where sal >= 2450 and sal <=3000;
		second:
			select
				empno,ename,sal
			from
				emp
			where
				sal between 2450 and 3000;
			注意:使用between and必须遵循左小右大.
	8.is null 为null(is not null 不为空)
	查询哪些员工的津贴/补助为null?
		select empno,ename,sal,comm from emp where comm = null;
		注意:这种是不可以的,null不能使用等号衡量,要使用is,他不是一个值,不能使用等号衡量
		select empno,ename,sal,comm from emp where comm is null;
	查询哪些员工的津贴/补助不为null?
		select empno,ename,sal,comm from emp where comm is not null;
	9.and 并且
	查询工作岗位是MANAGER并且工资大于2500的员工信息?
		select 
			empno,ename,job,sal 
		from 
			emp 
		where 
			job = 'MANAGER' and sal > 2500;
	10.or 或者
	查询工作岗位是MANAGER和SALESMAN的员工?
			select empno,ename,job from emp where job = 'MANAGER';
			select empno,ename,job from emp where job = 'SALESMAN';
	最佳办法:
			select 
				empno,ename,job
			from
				emp
			where 
				job = 'MANAGER' or job = 'SALESMAN';
	11.and和or同时出现的话,有优先级问题吗?
	查询工资大于2500,并且部门编号为10或20部门的员工?
			select 
				*
			from
				emp
			where
				sal > 2500 and deptno = 10 or deptno = 20;
		分析以上语句的问题?
		and优先级比or高。
		以上语句会先执行and,然后执行or。
		以上这个语句表示什么含义?
			找出工资大于2500并且部门编号为10的员工,或者20部门所有员工找出来。
		select 
			*
		from
			emp
		where
			sal > 2500 and (deptno = 10 or deptno = 20);
		and和or同时出现,and优先级较高。如果想让or先执行,需要加“小括号”
		以后在开发中,如果不确定优先级,就加小括号就行了。
	12.in 包含,相当于多个 or (not in 不在这个范围中)
	查询工作岗位是MANAGER和SALESMAN的员工?
		select empno,ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
		select empno,ename,job from emp where job in('MANAGER', 'SALESMAN');	
		两者一样的效果
		注意:in不是一个区间。in后面跟的是具体的值。
	查询薪资是800和5000的员工信息?
		select ename,sal from emp where sal = 800 or sal = 5000;
		select ename,sal from emp where sal in(800, 5000); //这个不是表示800到5000都找出来。
	13.	not 可以取非,主要用在 is 或 in 中
		is null
		is not null
		in
		not in	

3.模糊查询
like
	称为模糊查询,支持%或下划线匹配
	%匹配任意个字符
	下划线:任意一个字符
	(%是一个特殊的符号,_也是一个特殊的符号)
	
	1.找出名字中含有Q的?
	select ename from emp where ename like '%Q%';
	2.找出名字中以T结尾的?
	select ename from emp where ename like '%T';
	3.找出名字中以K结尾的?
	select ename from emp where ename like 'K%';
	4.找出第二个字母是A的?
	select ename from emp where ename like '_A%';
	5.找出第三个字母是R的?
	select ename from emp where ename like '__R%'
	6.找出名字中带有"_"的?
	select ename from emp where ename like '%_%'是错误的
	原因:因为%和_都是模糊查询的关键字 要用转义字符
	select ename from emp where ename like '%\_%'

2.排序数据

单字段排序

1.查询所有员工薪资,排序?
select
	ename,sal
from
	emp
order by
	sal;//默认是升序!!!
2.怎么降序?
select
	ename,sal
from
	emp
order by
	sal desc;//desc是descend是降序。
3.怎么指定升序
select
	ename,sal
from
	emp
order by
	sal asc;//asc是ascend是升序。

多字段排序

1.可以两个字段排序吗?或者说按照多个字段排序?
问题1.查询员工名字和薪资,要求按照薪资升序,如果薪资一样的话,再按照着名字升序排序
select ename,sal from empt order by sal asc , ename asc;//sal在前面起主导作用sal相同的时候,再按照ename排序。

根据字段位置排序

1.了解:根据字符的位置也可以排序
	select ename,sal from emp order by 2;//这里的2是第二列,也就是这里的sal进行升序排序
	了解一下即可,sql注入可以使用
	实际开发不建议这样写,因为列的排序可能会变。

3.综合案例

找出工资再1250到3000之间的员工信息,要求按照薪资降序排序。
select ename,sal from emp where sal between 1250 and 3000 order by sal desc;
select
	...
from
	...
where
	...
order by
	...
	以上语句的执行顺序必须掌握:
		第一步:from
		第二步:where
		第三步:select
		第四步:order by(排序总是在最后执行!)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值