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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL的基本操作与增删改查管理操作

一、MySQL数据库sql语句 1.1 sql 命令 database数据库table表row行column列user用户select从数据表中获取数据updata更新数据库中的数据delete从数据库中删除数据insert into 向数据表插入数据create database创建新数据库alter database修改数据库create table创建新表alter…

MySql实战--一条SQL查询语句是如何执行的?

平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时: select * from T where ID10; 我们看到的只是输入一条语句,返回一个结果…

WorkPlus一站式IM即时通讯解决方案,提升企业沟通效率与协作能力

在企业内部沟通与协作中,高效的即时通讯是实现团队协作与工作效率的重要保障。而WorkPlus以其稳定可靠的性能和全面的功能,为企业提供一站式的IM即时通讯解决方案,助力企业提升沟通效率与协作能力。IM即时通讯在企业中的重要性不言而喻。作为…

分享 | 使用Virtuoso VCPVSR工具基于标准单元的布局布线流程

​ 本节内容 导览 一、准备工作 二、运行VCP前的配置 三、VCP的布局规划 四、VCP的自动摆放 五、VSR的自动绕线 分享使用Virtuoso GXL Custom Digital Placer(VCP) & Space-based Router(VSR)工具进行基于纯数字Standard-Cell布局布线的操作流程。 VCP&VSR演…

【Nebula笔记】简介及安装

目录 一、简介 (一) 什么是图数据库 二、安装 (一) 原生安装 (二) Docker & Docker compose 1. Docker安装 Linux Window 2. 部署NebulaGraph (三) to MAC 三、Nebula Graph Studio (一) 版本兼容性 (二) 原生安装 (三) Docker compose (四) 连接Nebula Gra…

简述C语言文件操作

🌈 个人主页:白子寰 🔥 分类专栏:魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文(平均质量分79),分享…

安全工具介绍 SCNR/Arachni

关于SCNR 原来叫Arachni 是开源的,现在是SCNR,商用工具了 可试用一个月 Arachni Web Application Security Scanner Framework 看名字就知道了,针对web app 的安全工具,DASTIAST吧 安装 安装之前先 sudo apt-get update sudo…

每日学习笔记:C++ STL 容器的杂谈

三种自定义STL容器 string作为STL容器 C风格数组作为STL容器 C11以后 C11以前 容器元素类型是引用 使用智能指针存储元素 使用引用外覆器 各容器使用时机 如何分别用两种不同的排序准则来存储同批数据? 解决方案:将容器元素改为智能指针即可。 根据排…

大数据Spark--入门

文章目录 Spark 概述Spark 是什么Spark and HadoopSpark and HadoopSpark 核心模块 Spark 简单上手创建Maven项目增加 Scala 插件增加依赖关系WordCount异常处理 Spark 概述 Spark 所需资料 链接:https://pan.baidu.com/s/12iaW68vriL6i-xI1kmr0_g?pwdm4zc 提取码…

对话Midjourney创始人:图片仅是起步,人工智能将全面改变学习、创意和组织。

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 ​ 发布在https://it.weoknow.com 关注我 Midjourney 是一家神奇的公司,11 人改变世界,创造伟大的产品。…

小车倒立摆系统极点配置,LQR闭环控制

在之前直流电机控制仿真里有讲过状态控制的基本架构,有兴趣的同学可以再回去看看,链接如下好玩的直流电机调速实验、PID、极点配置、LQR、观测器;不讲大道理_lqr控制器观测器-CSDN博客 在专栏的前三篇文章 小车倒立摆物理建模与simulink仿真…

MySQL字符集与排序规则

MySQL字符集与排序规则 字符集 字符集是一组符号和编码, 排序规则是用于比较字符集中字符的一组规则。 可使用information_schema character_sets表或show character_set语句查看可用的字符集。 Unicode、ACCII和UTF-8的区别 Unicode 是一种字符集,它…

探索超净实验室:高纯电子级PFA洗瓶特氟龙材质清洗瓶的特性

PFA洗瓶,实验中常用的清洗工具之一,是一个带有弯曲管状喷嘴的柔性瓶子,因此可以用手挤压瓶身以产生压力,迫使瓶内液体通过塑料管以单滴或窄流的形式流到需要清洁的表面。 ​ 由于需要多次挤压,瓶体要有良好的回弹性和…

【Unity】宏定义Scripting Define Symbols

1.宏的用处 我们在使用Unity开发的时候,经常需要根据不同环境执行不同的代码 比如安卓手机和苹果手机获取路径代码 这个时候,宏就派上用场了。 代码示例: //获取路径public string GtePath(){//不同平台,取不同的存储路径string…

软考 网络工程师 每日学习打卡 2024/3/21

学习内容 第8章 网络安全 本章主要讲解网络安全方面的基础知识和应用技术。针对考试应该掌握诸如数据加密、报文认 证、数字签名等基本理论,在此基础上深入理解网络安全协议的工作原理,并能够针对具体的 网络系统设计和实现简单的安全解决方案。 本章共有…

P - Beat

题目分析 1.看数据范围&#xff0c;大概知道dfs能做 2.自0问题开始查找&#xff0c;确保之后每次查找到的问题的困难度均大于上一次 3.遍历所有情况再记录cnt即可 代码 #include <iostream> #include <algorithm> #include <cstdio> #include <cstring&…

最好用的软件安装教程合集(Matlab\ Anaconda\Pytorch..)

MATLAB R2022b 安装教程 http://t.csdnimg.cn/dQ0Qwhttp://t.csdnimg.cn/dQ0Qw Anaconda安装教程 https://blog.csdn.net/fan18317517352/article/details/123035625https://blog.csdn.net/fan18317517352/article/details/123035625 Pytorch安装教程 https://blog.csdn.net…

pycorrector检测OCR错字实践

参考&#xff1a;https://github.com/shibing624/pycorrector/tree/master/examples/macbert stopwords.txt 添加专业停用词&#xff0c;避免错误 设置自定义词典&#xff0c;避免将正确的词错误检测成错误的词 from pycorrector import Corrector m Corrector() m.set_cus…

Naive UI:一个 Vue 3 组件库,比较完整,主题可调,使用 TypeScript,快有点意思。

在当今的前端开发领域&#xff0c;Vue 3已成为中后台应用的首选框架。为了满足开发者的需求&#xff0c;各种组件库如雨后春笋般涌现。其中&#xff0c;Naive UI以其独特的优势&#xff0c;成为了Vue 3开发者的得力助手。本文将深入探讨Naive UI的特性、优势以及如何使用它来提…

面试算法-78-两两交换链表中的节点

题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff…