思维导图
(思维导图太大不好放,各位小伙伴可以在我的资源中免费下载即可,用作参考)
https://download.csdn.net/download/LangLang1111111/20629308?spm=1001.2014.3001.5503
一 MySQL安装和卸载
1.MySQL卸载
1.先将MySQL服务停掉
此电脑 -> 右键 -> 管理 -> 服务和应用程序 -> 服务 -> 双击 -> MySQL57(不同版本名字不一样)
-> 右键 -> 停止
2.卸载MySQL
①控制面板 -> 卸载程序 -> MySQL进行卸载
②可以将MySQL安装目录中的配置信息也删除掉
③数据库中的数据(可删可不删,如果不需要就删除掉)
3.删除MySQL服务
以管理员身份运行命令提示符 -> 运行 sc delete MySQL57(不同版本名字不一样)
4.清理注册表(百度:不同的版本都不一样)
5.重装系统
2.MySQL安装
详见PPT
二 MySQL概述
/*
1.作用:①持久化保存数据 ②可以很方便的对数据进行管理(增,删,改,查等操作)
2.概念
DB : 数据库
DBMS :数据库管理系统
SQL:结构化查询语言
3.常见的数据库管理系统 :MySQL、Oracle、DB2、SqlServer
4.SQL的优点:①简单易学 ②所有的DBMS都支持 ③虽然简单但是是一种强有力的语言(可以做很复杂的查询操作)
5.SQL(Structural query language)语句分为以下三种类型:
DML: Data Manipulation Language 数据操纵语言
DDL: Data Definition Language 数据定义语言
DCL: Data Control Language 数据控制语言
*/
常用的操作:
#查看所有的库:
show databases;
#查看所有的表
show tables;
#选库
use 表名;
#输出1+1
select 1+1
from dual; #dual是一张伪表可以省略不写
#任何类型的数据和null做运算结果为null
select null + 1;
三 DML-上
1.查询语句
select 字段名1,字段名2,.....
from 表名;
select *
from 表名; #*给示所有的字段
2.别名
select 字段名1 as 别名1,字段名2 别名2
from 表名
注意:
select 字段名3 "别 名 3" #如果别名中有空格那么需要使用双引号括起来
from 表名;
3.注意
/*
1.SQL 语言大小写不敏感。
2.SQL 可以写在一行或者多行
3.关键字不能被缩写也不能分行
4.各子句一般要分行写。
5.使用缩进提高语句的可读性。
*/
4.过滤
/*
格式:
select 字段名1,字段名2,.....
from 表名
where 过滤条件
*/
5.运算符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-veTOSRaz-1627547951116)(img/1627260495591.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hLkkOqu-1627547951119)(img/1627260525758.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KXimeCLn-1627547951121)(img/1627260544426.png)]
#需求:查找员工部门不为50的员工有哪些?
SELECT first_name,department_id
FROM employees
#where department_id != 50;
WHERE department_id <> 50; # != 和 <> 是相同的作用,建议使用<>写法。
#需求:查找员工的薪水在[3000,6000]范围的员工信息。
SELECT first_name,salary
FROM employees
#where salary>=3000 && salary<=6000;
WHERE salary BETWEEN 3000 AND 6000;
#下面的写法不对
SELECT first_name,salary
FROM employees
WHERE salary BETWEEN 6000 AND 3000;#相当于 where salary>=6000 && salary<=3000
SELECT first_name,salary
FROM employees
#where salary>=3000 && salary<=6000;
WHERE salary>=3000 AND salary<=6000;# && 和 and 作用是相同的,sql中建议使用 and
#需求:查找部门号为50或80号部门的员工信息
SELECT first_name,department_id
FROM employees
#where department_id=50 || department_id=80;
#where department_id in(50,80); # 等于department_id=50 || department_id=80
WHERE department_id=50 OR department_id=80;#|| 和 or作用相同,建议使用or
#需求:查找员工奖金率为null的员工信息
SELECT *
FROM employees
#where commission_pct=null; 该写法不对不是这样判断null的
WHERE commission_pct IS NULL;
#需求:查找员工奖金率不为null的员工信息
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL;
#需求:查找员工的薪水不在[3000,6000]范围的员工信息。
SELECT *
FROM employees
WHERE salary NOT BETWEEN 3000 AND 6000;
/*
格式:
select 字段名1,字段名2....
from 表名
where 字段名 like '匹配规则'
*/
#需求:查询名字中带有e字母的员工姓名。
SELECT first_name
FROM employees
WHERE first_name LIKE '%e%'; #%表示任意个数的意意字符
#需求:查询名字中第二个字符为e的员工姓名.
SELECT fir