MySQL学习笔记(一)

news2024/11/13 9:44:26

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之外,要求按照平均薪资降序排

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安卓实现翻转时间显示效果

效果 废话不多说上代码 自定义组件 import android.content.Context; import android.content.res.TypedArray; import android.graphics.Camera; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.…

学点儿Java_Day8_接口、final、static

1 接口interface 1.1 概念 接口是一个纯粹的抽象类(接口里面所有的方法都是抽象方法) 接口就是一个规范(标准),他没有提供任何是实现,具体的功能由实现接口的子类去实现。 接口就是一个规范,可插拔(可以被…

3/21 work

自由发挥登录窗口的应用场景,实现一个登录窗口界面。(不要使用课堂上的图片和代码,自己发挥,有利于后面项目的完成) 要求: 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件相关设置,通…

深度学习项目-基于深度学习的股票价格预测研究

概要 随着经济的发展,中国股票市场的规模持续扩大,早已成为金融投资的重要部分,掌握股票市场的变化规律无论是对监管者还是投资者都具有极其重要的意义。正因如此,人们不断探索着股票市场的变化规律,其中使用深度学习预…

【C++】1416. 求长方形的周长和面积

问题:1416. 求长方形的周长和面积 类型: 基本运算、整数运算 题目描述: 从键盘读入2个整数,分别代表一个长方形的长和宽,请计算长方形的周长和面积; 输入: 从键盘读入2个整数,用…

【网站项目】291校园疫情防控系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

windows下使用压缩包安装mysql8.0数据库

获取安装包 可以访问mysql 官网下载压缩安装包 (官网地址:https://downloads.mysql.com/archives/community/) 根据自己的需要,下载对应mysql版本,我选择是是8.0.16版本 安装 解压之后,可以看到压缩包…

德勤:《亚太地区半导体行业展望》

2024年2月22日,德勤联合全球半导体联盟(GSA)对亚洲半导体产业链相关企业展开调研,邀请数位亚太地区主要半导体企业领导人,共同探讨半导体企业在当前环境下应如何通过数字技术曲线的领先优势保持业务竞争力和盈利能力&a…

GESP图形化编程二级认证真题 2024年3月

GESP 图形化二级试卷 (满分:100 分 考试时间:120 分钟) 一、单选题(共 10 题,每题 3 分,共 30 分) 1、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿…

(day 15)JavaScript学习笔记(对象3)

概述 这是我的学习笔记,记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript,那么这一系列的学习笔记可能会对你有所帮助。 今天继续学习对象,主要是Object.create()、原型链、修改原型指…

Autosar的前世今生:E2E通信校验

在浏览项目整体框架的时候,发现E2E是一个不可绕开的点,而且处处可见Autosar框架的踪迹,因此开一个专栏,每天学习一点相关知识点 E2E(end to end)是Autosar规范里规定的一种用于保证数据传输正确的概念&…

超越 GPT-4V 和 Gemini Pro!HyperGAI 发布最新多模态大模型 HPT,已开源

随着AI从有限数据迈向真实世界,极速增长的数据规模不仅赋予了模型令人惊喜的能力,也给多模态模型提供了更多的可能性。OpenAI在发布GPT-4V时就已经明确表示: 将额外模态(如图像输入)融入大语言模型(LLMs&am…

CTK插件框架学习-源码下载编译(01)

1、编译环境 window11、vs17、Qt5.14.0、cmake3.27.4 2、下载链接 cmake:Index of /files/v3.20 qt:Index of / vs22以前的版本需要登录下载:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 vs22下载:下载 Visu…

力扣热门算法题 62. 不同路径,66. 加一,67. 二进制求和

62. 不同路径,66. 加一,67. 二进制求和,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.21 可通过leetcode所有测试用例。 目录 62. 不同路径 解题思路 完整代码 Python Java 66. 加一 解题思路 …

专业矢量绘图设计软件:Sketch for mac 中文激活版

Sketch for Mac 是一款专业的矢量图形设计工具,主要用于 UI/UX 设计、网页设计、图标设计等领域。它的界面简洁、易用,功能强大,可以帮助设计师快速创建高质量的设计作品。 人性化界面 Sketch的界面非常简洁。最顶端的工具箱包含了最重要的操…

【MySQL】3.1MySQL索引的介绍

目录 一、索引的概念 数据库索引 索引的作用 索引的副作用 索引创建的原则(应用场景) 适合建立索引 二、索引的分类和创建 1.普通索引 创建普通索引 1.1直接创建 1.2修改表结构的方式创建普通索引 1.3创建表时创建普通索引 2.唯一索引 2.1…

ISO 8601:日期和时间的国际标准

ISO 8601 介绍 ISO 8601,介绍一下 ISO 8601 是由国际标准化组织(International Organization for Standardization,ISO)发布的国际标准,其全称为《数据存储和交换形式信息交换日期和时间的表示方法》。 这一标准提供了…

C语言 自定义类型:联合和枚举

目录 前言 一、联合体 1.1 联合体的特点 1.2 联合体与结构体的区别 1.3 联合体的大小计算 1.4 联合体例子 1.5 联合体判断大小端 二、枚举 2.1 枚举类型定义 2.2 枚举类型的优点 2.3 枚举类型的使用 总结 前言 之前我们讲了C语言其中一个自定义类型结构体&#xff…

jsp2024.3.21(4) html基础

一、实验目的 1、html 文件的基本结构&#xff1b; 2、html 的常用标记&#xff1b; <HTML> <HEAD> …… </HEAD> <BODY> …… </BODY> </HTML> 二、实验项目内容&#xff08;实验题目&#xff09; HTML常用标记 1&#xff0e;<…

说说你对webpack的理解?解决了什么问题?

文章目录 一、背景二、问题三、是什么参考文献 一、背景 Webpack 最初的目标是实现前端项目的模块化&#xff0c;旨在更高效地管理和维护项目中的每一个资源 模块化 最早的时候&#xff0c;我们会通过文件划分的形式实现模块化&#xff0c;也就是将每个功能及其相关状态数据各…