MySQL学习笔记(一)

1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?

  • 数据库:英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。顾名思义,存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据。
  • 数据库管理系统:DataBaseManagement,简称DBMS。数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。常见的数据库管理系统:MySQL、Oracle、MS SqlServer、DB2、sybase等。
  • SQL:结构化查询语言。程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删改查操作。
  • 三者之间的关系:DBMS-->执行-->SQL-->操作-->DB

2、mysql安装了,服务启动了,怎么使用客户端登录mysql数据库?

使用bin目录下的myql.exe命令来连接mysql数据库服务器

3、mysql常用命令(不区分大小写)

(1)退出mysql:exit

(2)查看mysql中的数据库:show databases;(默认有四个数据库)

(3)选择使用某个数据库:use 数据库名;

(4)创建数据库:create database 数据库名;

(5)查看某个数据库下的表: show tables;

(6)查看mysql数据库的版本号:select version();

(7)查看当前使用的数据库:select database;

4、数据库当中最基本的单元是表:table

任何一张表都有行和列:

  • 行(row):被称为数据、记录
  • 列(column):被称为字段,如姓名字段、性别字段、年龄字段。(每一个字段都有:字段名、数据类型、约束等属性)

5、SQL语句的分类

  • DQL:数据查询语言(凡是带有select关键字的都是查询语句)
  • DML:数据操作语言(凡是对表中的数据进行增删改的都是DML,insert、delete、update)
  • DDL:数据定义语言(凡是带有create、drop、alter的都是DDL,DDL主要操作的是表的结构,不是表中的数据)
  • TCL:事务控制语言(包括事物提交commit、事物回滚rollback)
  • DCL:数据控制语言(例如授权grant、撤销权限revoke等)

6、将sql文件的数据导入(路径中不要有中文)

bjpowernode.sql源文件(带预览图)
https://p14.lanzouv.com/ic2WI0efp0je

7、查看表中的数据:select * from 表名;

8、不看表的数据,只看表的结构:desc 表名;

9、简单查询

(1)查询一个字段:select 字段名 from 表名;

 select后面跟字面量(不是字段名):

(2)查询两个字段或多个字段:使用逗号隔开

(3)查询所有字段:第一种方式把每个字段都写上,第二种方式使用*(效率低、可读性差、实际开发中不建议)

(4)给查询的列起别名:使用as关键字(原表列名不变,只负责查询)

as可以省略:

若起的名字有空格或中文:使用单引号

 (5)计算员工年薪(字段可以使用数学表达式):

10、条件查询

select ... from ... where ...;

 ​​​​

找出名字带有“_”的:转义字符 \_

11、排序(asc升,desc降)

多个字段排序:

 根据字段位置排序:

12、数据处理函数

 数据处理函数又被称为单行处理函数,单行处理函数的特点是一个输入对应一个输出。和单行处理函数相对的是多行处理函数,多行处理函数的特点是多个输入对应一个输出。

(1)常见的单行处理函数

   

 

在所有数据库中,只要有NULL参与的数学运算,最终结果就是NULL。为了避免这个现象,需要使用ifnull函数。用法:ifnull(数据,被当做哪个值)

case...when...then...when...then...else...end

当员工的工作岗位是MANAGER时,工资上调10%,当工作岗位是SALEMAN时,工资上调50%,其他正常

(2)常见的分组函数/多行处理函数

输入多行,最终输出一行

  • count:计数
  • sum:求和
  • avg:平均值
  • max:最大值
  • min:最小值

注意:分组函数在使用的时候必须先分组,然后才能用。如果没有对数据进行分组,整张表默认为一组。

注意:1、分组函数自动忽略NULL,不需要提前对NULL进行处理

 

2、分组函数中count(*)和count(具体字段)的区别:

count(*):统计表中的总行数,因为每一行记录不可能都为NULL

count(具体字段):表示统计该字段下所有不为NULL的元素的总数

3、分组函数不能直接使用在where子句中

4、所有的分组函数可以组合起来一起用

 13、分组查询(重要)

select ... from ... group by ...

比如计算每个部门的工资和,计算每个工作岗位的平均薪资,计算每个工作岗位的最高薪资

(1)关于执行顺序

select ... from ... where ... group by ... order by...

以上关键字的顺序不能颠倒,执行顺序是:from、where、group by、select、order by

 因为分组函数在使用的时候必须在分组之后才能使用,where执行的时候,还没有group by

(2)找出每个工作岗位的工资和

在一条select语句当中,如果有group by语句的话,select后面只能跟参加分组的字段以及分组函数,其他的一律不能跟

(3)找出每个部门的最高薪资

 (4)找出每个部门不同工作岗位的最高薪资

(5)找出每个部门最高薪资,要求显示最高薪资大于3000的

使用having可以对分完组之后的数据进一步过滤,having不能单独使用必须和group by联合使用,不能代替where

优化策略:where和having,优先选择where,where实在完成不了了,再选择having

例子:找出每个部门的平均薪资,要求显示平均薪资高于2500的

14、总结单表查询

 select  ... where ... group by ... having ... order by ...

执行顺序:from、where、group by、having、select、order by

从某张表中查询数据,

先经过where条件筛选出有价值的数据,

对这些有价值的数据进行分组,

分组之后可以使用having继续筛选,

select查询出来,

最后排序输出

例子:找出每个岗位的平均薪资,要求显示平均薪资大于1500的,除MANAGER之外,要求按照平均薪资降序排

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467279.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

牛客题霸-SQL入门篇(刷题记录二)

本文基于前段时间学习总结的 MySQL 相关的查询语法,在牛客网找了相应的 MySQL 题目进行练习,以便加强对于 MySQL 查询语法的理解和应用。 以下内容是牛客题霸-SQL入门篇剩余的第 21-39 道题目的 SQL 代码答案。 由于涉及到的数据库表较多,因…

网络分层架构(七/四层协议)详解

OSI七层模型和TCP/IP四层模型 业内普遍的分层方式有两种:OSI七层模型 和TCP/IP四层模型。记忆则为 “应表会传网数物” 关于协议: ① OSI七层模型详解 结构名 功能 主要设备 应用层 是最靠近用户的OSI层。用户接口、应用程序。应用层向应用进程展示…

【超图】SuperMap如何使知识图谱与BIM数据的绑定

作者:taco 近两年知识图谱的概念突然大火了起来,随之而来的就是用户的各种需求,你们的知识图谱能干什么呢?知识图谱有哪些应用呢?在结合客户的一些需求,以及自身的一些想法,写下这篇文章。 一、…

【涨薪技术】0到1学会性能测试 —— 参数化关联

前言 上一次推文我们分享了性能测试工作原理、事务、检查点!今天给大家带来性能测试参数化,检查点知识!后续文章都会系统分享干货,带大家从0到1学会性能测试,另外还有教程等同步资料,文末免费获取~ 01、性…

类和对象-1

文章目录 面向过程和面向对象的概念类的引入访问限定符类的大小this指针 面向过程和面向对象的概念 面向过程是一种按照步骤顺序执行的编程方式,而面向对象则是以对象为中心,将数据和操作封装在一起。在面向对象编程中,可以通过定义类和对象来…

stm32-模拟数字转化器ADC

接线图: #include "stm32f10x.h" // Device header//1: 开启RCC时钟,包括ADC和GPIO的时钟//2:配置GPIO将GPIO配置为模拟输入模式//3:配置多路开关将左边的通道接入到规则组中//4:配置ADC转…

zookeeper安装配置

zookeeper是什么 ZooKeeper是一个分布式的, 开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是 ​​​​​​​Hadoop和Hbase的重要组件。它是一个为​​​​​​​分布式应用提供一致性服务的软件,提供的功能…

redis学习-Set集合类型相关命令及特殊情况分析

目录 1. sadd key value1 value2 ... 2. smembers key 3. sismember key value 4. scard key 5. srem key value1 value2 ... 6. srandmember key num 7. spop key num 8. smove key1 key2 value 9. sdiff key1 key2 key3 ... 10. sinter key1 key2 ... 11. sunion key1 key2 .…

mybatis缓存(学习笔记17)

1、什么是缓存:存在内存中的临时数据 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘(关系数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决…

分析云星空数据用奥威-金蝶BI,快且直观

财务指标计算难,数量太大,报表需求太多,报表根本做不完?如果云星空用户遇到这种情况,建议用奥威-金蝶BI方案。预设分析模型和BI报表,注册、下载并执行方案,立得200多张BI数据可视化分析报表&…

MS16_016 漏洞利用与安全加固

文章目录 环境说明1 MS16_016 简介2 MS16_016 复现过程3 MS16_016 安全加固 环境说明 渗透机操作系统:kali-linux-2024.1-installer-amd64漏洞复现操作系:cn_windows_7_professional_with_sp1_x64_dvd_u_677031 1 MS16_016 简介 MS16_016 漏洞产生的原因…

【题目】【网络系统管理】2022年甘肃省职业院校技能大赛-网络构建-试卷

极安云科专注职业教育技能竞赛培训4年,包含信息安全管理与评估、网络系统管理、网络搭建等多个赛项及各大CTF模块培训学习服务。本团队基于赛项知识点,提供完整全面的系统性理论教学与技能培训,成立至今持续优化教学资源与讲师结构&#xff0…

代码随想录刷题day27|组合总和II组合总和II分割回文串

文章目录 day27学习内容一、组合总和-所选数字可重复1.1、代码-正确写法1.1.1、为什么递归取的是i而不是i1呢? 二、组合总和II-所选数字不可重复2.1、和39题有什么不同2.2、思路2.2.1、初始化2.2.2、主要步骤2.2.3、回溯函数 backTracking 2.3、正确写法12.3.1、为什…

NB-IoT模块

目录 一. NB-IoT模块实物图 二. BC20/NB-IoT模块产品规格 三. 指令顺序 1. AT判断BC20模组是否正常 2. ATE0返回OK,已经返回回显 3. ATCSQ 4. AT_CEREG? 5. ATCGATT? 6. ATCGATT? 四. OneNet 连接 1. AT 查看 NB(当前NB),云平台根据这两个…

【全网最详细】ComfyUI下,Insightface安装指南-聚梦小课堂

🥮背景 ComfyUI下使用IP-adapter下的faceID模型的时候,大家可能会遇到如下错误: Error occurred when executing InsightFaceLoader: No module named insightface File "F:\ComfyUI-aki\execution.py", line 151, in recursive_…

寻找可能认识的人

给一个命名为:friend.txt的文件 其中每一行中给出两个名字,中间用空格分开。(下图为文件内容) 题目:《查找出可能认识的人 》 代码如下: RelationMapper: package com.fesco.friend;import or…

【mysql】聚簇索引和非聚簇索引(B树和B+树)

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: mysql 目录 一、索引分类 二、索引的数据结构 2.1 B树:改造二叉树 2.2 B树:改造B树 三、Mysql索引实现—InnoDB引擎 3.1 主键索引(聚簇索引) 3.2 …

在Python中执行分位数回归

线性回归被定义为根据给定的变量集构建因变量和自变量之间关系的统计方法。在执行线性回归时,我们对计算响应变量的平均值感到好奇。相反,我们可以使用称为分位数回归的机制来计算或估计响应值的分位数(百分位数)值。例如&#xf…

每日OJ题_牛客HJ12 字符串反转(IO型OJ)

目录 牛客HJ12 字符串反转 解析代码 牛客HJ12 字符串反转 字符串反转_牛客题霸_牛客网 解析代码 #include <iostream> using namespace std; int main() {string str "";cin >> str;int left 0, right str.size() - 1;while (left < right){ch…

Python——字典

一、字典特性介绍 字典在 Python 中极为重要&#xff0c;是属于映射类型的数据结构。 字典有⼀对⼉⼤括号组成 {} , 字典内的元素都是成对⼉出现的 {"a":1} , 他们⽤英⽂的冒号( : )隔开, 左边叫做键(key),右边的叫值(value), 通常叫做键值对⼉。 每个元素⽤英⽂的逗…