MySQL基础篇(运算符、排序分页、多表查询、函数)-1

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: MySQL基础篇(运算符、排序分页、多表查询、函数)

数据库概述


数据库与数据库管理系统


DB(Database):数据库

DBMS(Database Management System):数据库管理系统

SQL:结构化查询语言


数据库与数据库管理系统的关系

一句话总结:DBMS就是管理数据库的软件,如Mysql、Oracle、SQLServer、Redis…


Mysql介绍

MySQL从5.7版本直接跳跃发布了8.0版本,mysql8对源代码进行了重构,最突出的一点是多MySQL Optimizer优化 器进行了改进,性能进一步得到提升

Oracle vs MySQL怎么选?

  • Oracle性能、安全性高,但是收费
  • Mysql体积小,成本低,代码开源


RDBMS 与 非RDBMS

RDBMS(Relational Database Management System)关系型数据库管理系统

关系型数据库(RDBMS)

关系型数据库就是把复杂的数据结构变成二元结构,也就是二维表格形式

  • 关系型数据库以**行(row)列(column)**的形式存储数据,便于理解。这一系列的行和列组合成表,一组表组合成库
  • 表与表之间的数据记录有关系。通过关系模型来表示,关系型数据库就是建立在关系模型基础上的数据库
  • SQL就是RDB的查询语言


非关系型数据库(非RDBMS)

可以看作关系型数据库的阉割版,它基于key-value存储值,不需要经过SQL层的解析,性能非常高

Redis、mongo、ES


关系型数据库设计规则

ER模型

平时说的ER(entity-relationship)模型,就是实体之间的联系模型

  • 模型中有三个概念是:实体集、属性、联系集
  • 一个实体集对应一个表
  • 一个实体对应一行,也成为一条记录
  • 一个属性对应一列,也称为一个字段


ORM

表 ----- 类

表中数据 ---- 对象

表中列 ---- 属性


表的关联关系

表与表之间的**数据记录**有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用 关系模型来表示

分别是以下四种:

  • 一对一
  • 设计学生表、可以分为常用信息和不常用信息分别建表
  • 每个常用信息记录会 一 一 对应不常用信息记录
  • 一对多
  • 客户表和订单表、分类表和商品表、部门表和员工表
  • 一个客户数据可以对应订单表中的多条数据,一个分类可以对应多个商品、一个部门可以有多个员工
  • 多对多
  • 多对对关系必须用三个表来表示,第三个表被称为连接表,它将多对多关系划分成两个一对多关系
  • 一门课程可以被多个学生选择,一学生可以选择多个课程
  • 自我引用
  • a99e898a4527234c9d63847bdd4cc1b5_5abe9f84cefe1289e2fca2d3c6fd8b3f.png


基本的SELECT语句


SQL分类

SQL是一种规范,Mysql和Oracle都有对应的实现,但它们都属于SQL

下图形象表达了sql,和DBMS的关系


SQL在功能上可分为:


  • DDL(Data Definition Languages、数据定义语言)
  • creatre、drop、alter关键字都属于DDL
  • DML(Data Manipulation Language、数据操作语言)
  • insert、delete、update、select关键字都属于DML
  • DCL(Data Control Language、数据控制语言)
  • grant、revoke、commit、rollback关键字都属于DCL


因为SQL中查询用的最为频繁,所以也可以把查询语句相关的定义为DQL(Data Query Language、数据查询语言)

还有commit、rollback取出来称为TCL(Transaction Control Language,事务控制语言)


SQL的规范

这个点其实可以在数据库图形化软件中学习,你写好语句然后点击优化,软件给你优化后的就是标准的格式

特殊点注意:

  • 反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号。
  • 当我们要那他们做表名或字段名的时候,我们要加反引号用于区分避免编译器把这部分认为是保留字而产生错误
  • MySQL 在 Linux 环境下是大小写敏感的
  • 数据库名、表名、表的别名、变量名严格区分大小写
  • Mysql在windows不区分大小写


注释

单行注释:\#注释文字(MySQL特有的方式)
单行注释:-- 注释文字(--后面必须包含一个空格。)
多行注释:/* 注释文字 */


命名规范

导入sql

通过source命令进行导入

win:
mysql> source d:\mysqldb.sql
linux:
mysql> source /home/mysql/w3h5.sql; 或者  mysql -uroot -p123456 w3h5 < /home/mysql/w3h5.sql;
如果已经登陆数据库了,直接输入后面的部分:数据库名 < 数据库文件;
dbname < /home/mysql/data.sql

导出sql

mysqldump -uroot -p dbname > data.sql;
最好是加上路径/数据库文件名
mysqldump -uroot -p dbname > /home/mysql/w3h5.sql;


基本语句

下面通过测试如下表来学习语句使用


查看所有

SELECT
  * 
FROM
  pms_brand;


选择特定的列

SELECT
  id,name,sort,logo 
FROM
  pms_brand;


给列起别名

通过AS关键字给列起别名,别名便于计算,见名知意

AS可省略

SELECT
  id id值,
  NAME 名字,
  sort 别名,
  logo 品牌 
FROM
  pms_brand;

去除重复行

使用关键字DISTINCT去除重复行

SELECT DISTINCT
  sort 
FROM
  pms_brand;

空值参与运算

所有空值参与运算的,结果都为null

在mysql中,空值不等于空字符串。一个空字符串的长度是0。空值的长度是空,它是占用空间的!


显示表结构

使用DESC或全程DESCRIBE

DESC pms_brand;


  • Fileld:字段名称
  • Type:字段类型
  • Null:改列是否能存NULL值
  • Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示允许出现多次
  • Default:表示该列默认值,如果有,值是多少。
  • Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等


过滤数据

通过WHERE关键字来过滤数据

SELECT
  id,
  NAME,
  sort,
  logo 
FROM
  pms_brand
WHERE
  id = 1


MySQL基础篇(运算符、排序分页、多表查询、函数)-2

https://developer.aliyun.com/article/1425387?spm=a2c6h.13148508.setting.15.51724f0e3jEOAZ


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
68 1
Mysql(5)—函数
|
5天前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
|
9天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
18天前
|
缓存 关系型数据库 MySQL
一文彻底弄懂MySQL优化之深度分页
【10月更文挑战第24天】本文深入探讨了 MySQL 深度分页的原理、常见问题及优化策略。首先解释了深度分页的概念及其带来的性能和资源问题。接着介绍了基于偏移量(OFFSET)和限制(LIMIT)以及基于游标的分页方法,并分析了它们的优缺点。最后,提出了多种优化策略,包括合理创建索引、优化查询语句和使用数据缓存,帮助提升分页查询的性能和系统稳定性。
|
9天前
|
SQL NoSQL 关系型数据库
|
1月前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
MySQL 存储函数及调用
34 3
|
20天前
|
关系型数据库 MySQL 数据库
mysql中tonumber函数使用要注意什么
在处理这类转换操作时,考虑周全,利用提供的高性能云服务器资源,可以进一步提升数据库处理效率,确保数据操作的稳定性和安全性,尤其是在处理大量数据转换和运算密集型应用时。
66 0
|
23天前
|
关系型数据库 MySQL 数据处理
企业级应用 mysql 日期函数变量,干货已整理
本文详细介绍了如何在MySQL8.0中使用DATE_FORMAT函数进行日期格式的转换,包括当日、昨日及不同时间段的数据获取,并提供了实际的ETL应用场景和注意事项,有助于提升数据处理的灵活性和一致性。
37 0
|
24天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
57 3
Mysql(4)—数据库索引
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
46 2