一份超长的MySQL学习笔记,正在更新)

技术一份超长的MySQL学习笔记,正在更新) 一份超长的MySQL学习笔记(正在更新)学习资源
视频资料:韩顺平讲MySQL
MySQL安装(Windows):MySQL安装+初始化操作
MySQL本地

一份超长的关系型数据库学习笔记(正在更新)

学习资源

视频资料:韩顺平讲关系型数据库

关系型数据库安装(Windows):MySQL安装初始化操作

关系型数据库本地服务配置(窗口):制作关系型数据库的Windows操作系统操作系统服务创建用户及授权

数据库

备份数据库

mysqldump -u root -p -B数据库名d:\\文件名。结构化查询语言

恢复数据库

SOURCE d:\\bak.sql

备份数据库表

mysqldump -u root -p数据库名表一表2 d:\\文件名。结构化查询语言

创建

#创建

创建表格"用户"(

id INT,

` name` VARCHAR(255),

“密码”VARCHAR(255),

`生日` DATE)

字符集utf8 COLLATE utf8 _ bin ENGINEER INNODB;

删除

删除表格“演员”

修改

-在密码后面添加薪水列

ALTER TABLE `user

添加薪资VARCHAR(32)非空默认值""

密码后;

-修改列生日字段的结构

ALTER TABLE `user

修改生日变量(60)非空默认值"";

-删除名字字段

ALTER TABLE `user

删除名称;

-重命名表

将表"用户"重命名为"学生";

-修改表的字符集为utf8

改变表格学生字符集utf8

-修改列名薪水为用户名

改变表格学生

更改薪资用户名VARCHAR(32)非空默认值"";

DESC用户;-显示表结构,查看所有的列

CRUD

insert

在"商品"中插入(标识、商品名称、价格)

值(1,)华为手机',2000);

在"商品"中插入(标识、商品名称、价格)

值(2,)苹果手机',3000);

update

更新`商品`设定价格=1000

更新`货物`设定价格=2000,其中货物_名称='华为手机;

更新`货物`设置价格=价格5000,其中'好名字='苹果手机;

#如果需要修改多个字段,可以通过设置字段1=值1,字段2=值2.

delete

从价格=2000的"货物"中删除;

select

#查找表内所有内容

选择*来自学生;

#按列查找表内容

从学生中选择id;

选择“id”,英语来自学生

#去除重复数据(只有这一行每一列的数据相同的时候才会去重)

从学生中选择独特的英语;

#使用表达式对查询的列进行运算

#在挑选语句中可使用如同语句

选择`名称` as ` s名字`,(中国英语数学)作为学生的“计数”

#条件查询

选择*来自学生

其中`名称`='赵云;

选择*来自学生

英语90

选择*来自学生

哪里(中国英语数学)200;

#订购人

#升序

从学生中选择"姓名"(中文英语数学)作为"计数"

哪里(中国英语数学)200

订单

ER BY math ASC;
#降序
SELECT `name`,(chinese + english + math)AS`count` FROM student
WHERE (chinese+english+math)200
ORDER BY math DESC;
#多条件升降序查询
SELECT `name`,(chinese+english+math)AS`count` FROM student
WHERE `name` LIKE '张%'
ORDER BY `count` DESC;

where语句中常用到的运算符

MySQL函数

合计/统计函数

#count(返回查询结果的行数)
#统计满足条件的某列有多少个,但是会排除为null的情况
SELECT COUNT(*) FROM student;
SELECT COUNT(*) FROM student
	WHERE (math+chinese+english)200;
	
SELECT COUNT(chinese) FROM student
	WHERE chinese90;
	
#SUM函数
#仅对数值起作用,否则会报错
SELECT SUM(math) FROM student;
SELECT SUM(math),SUM(chinese),SUM(english) FROM student;
SELECT SUM(chinese+english+math) FROM student;
SELECT SUM(chinese)/COUNT(*) FROM student;
#AVG函数
SELECT AVG(math) FROM student;
SELECT AVG(math+english+chinese) FROM student;
#MAX函数
SELECT MAX(math) FROM student;
#MIN函数
SELECT MIN(math) FROM student;

分组统计

--按照部门查询工资平均值和最大值
SELECT AVG(sal),MAX(sal),deptno FROM emp GROUP BY deptno; 
--多条件分组
SELECT AVG(sal),MAX(sal),deptno , job FROM emp GROUP BY deptno , job;
--查找平均工资低于2000的部门
SELECT  AVG(sal) , deptno FROM emp GROUP BY deptno HAVING AVG(sal)  2000;

字符串函数


加密和系统函数

--演示加密函数和系统函数

查询增强

WHERE

-- 查询增强
-- 	使用where子句
-- 	在MySQL中,日期类型可以直接比较
SELECT * FROM emp WHERE hiredate = '1991-12-11'; -- 需要注意格式
-- 模糊查询like
--	%表示0~多个任意字符
--	_表示单个任意字符
SELECT ename,sal FROM emp WHERE ename LIKE 'S%' ;
SELECT ename,sal FROM emp WHERE ename LIKE '__o%';
-- 显示没有上级的员工信息
SELECT * FROM emp WHERE mgr IS NULL;
-- 查询表结构
DESC emp;

ORDER BY

-- 使用ORDER BY
--	按照工资从低到高显示信息
SELECT * FROM emp ORDER BY sal; -- 默认降序
SELECT * FROM emp ORDER BY deptno ASC; -- 升序
SELECT * FROM emp ORDER BY deptno ASC , sal DESC;

分页查询

-- 分页查询
SELECT * FROM emp ORDER BY empno LIMIT 0,3;-- 第一页
SELECT * FROM emp ORDER BY empno LIMIT 3,3;-- 第二页

分组增强

-- 增强 GROUP BY 的使用
SELECT COUNT(*) FROM emp GROUP BY job;-- 各个岗位的人数
SELECT COUNT(*),COUNT(comm) FROM emp;-- 雇员总数、获得补助的雇员数

多子句查询

--统计各部门平均工资,并且大于1000的按照平均工资降序排序,取出前两行数据
SELECT deptno,AVG(sal) AS avg_sal
	FROM emp
	GROUP BY deptno
	HAVING avg_sal  1000
	ORDER BY avg_sal DESC
	LIMIT 0,2;

多表查询

多表笛卡尔集

-- 多表查询
SELECT * FROM emp,dept; 
SELECT * FROM emp;
SELECT * FROM dept;
-- 显示雇员名称和雇员所在部门的名称
-- 从第一张表取出一行,与第二张表中的每一行进行组合,返回结果包含两张表的所有列
SELECT ename,sal,dname,emp.deptno FROM emp,dept WHERE emp.deptno = dept.deptno;
-- 显示部门10的部门名、员工名、工资
SELECT ename,sal,dname,emp.deptno FROM emp,dept WHERE emp.deptno = dept.deptno AND emp.deptno = 10;
-- 显示各个员工的姓名、工资和工资级别
SELECT ename,sal,grade FROM emp,salgrade WHERE sal BETWEEN losal AND hisal;

自连接

自连接是指在同一张表的连接查询,即将同一张表看成两张表

-- 自连接
SELECT worker.ename AS '职员名',boss.ename AS '上级名' 
	FROM emp worker,emp boss
	WHERE worker.mgr = boss.empno;

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/107450.html

(0)

相关推荐

  • 怎么理解Mysql GITD复制中断处理

    技术怎么理解Mysql GITD复制中断处理怎么理解Mysql GITD复制中断处理,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。从库发现复制错误: "ro

    攻略 2021年11月16日
  • Win10下jdk安装及环境变量配置的方法是什么

    技术Win10下jdk安装及环境变量配置的方法是什么这篇文章主要讲解了“Win10下jdk安装及环境变量配置的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Wi

    攻略 2021年12月3日
  • java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

    技术java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream java基础知识回顾之javaIO类--管道流PipedOutputStream

    礼包 2021年12月22日
  • Python编程为什么不使用print调试代码了

    技术Python编程为什么不使用print调试代码了这篇文章主要介绍“Python编程为什么不使用print调试代码了”,在日常操作中,相信很多人在Python编程为什么不使用print调试代码了问题上存在疑惑,小编查阅

    攻略 2021年10月25日
  • 奶粉可以做酸奶吗,羊奶粉可以做酸奶吗

    技术奶粉可以做酸奶吗,羊奶粉可以做酸奶吗我来回答这个问题奶粉可以做酸奶吗。可以肯定的说完全可以用羊奶粉做酸奶。据说最早的酸奶出现就是因为羊奶存放不当发生的一次偶然。在以前草原的牧民,挤完大量的羊奶,由于没有冷藏保鲜的设备

    生活 2021年10月31日
  • MySQL 8.0是不是可以操作JSON

    技术MySQL 8.0是不是可以操作JSON本篇文章给大家分享的是有关MySQL 8.0是不是可以操作JSON ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧

    攻略 2021年10月20日