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

本文涉及的产品
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
PolarClaw,2核4GB
简介: 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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL 缓存 关系型数据库
如何解决MySQL 的深度分页问题?
在构建高性能Web应用程序时,数据库查询性能至关重要。本文深入探讨了MySQL中`LIMIT ... OFFSET ...`语法的性能瓶颈,并介绍了一种更高效的分页方法——游标分页(Cursor Pagination)。通过记录每页最后一个记录的唯一标识,游标分页能显著提升查询效率,将时间复杂度从O(n + m)降低到O(log n + m),特别适用于大规模数据的分页查询场景。此外,文章还介绍了其他优化方法,如覆盖索引分页、分区表、缓存和基于时间戳的分页,并提供了实践中的最佳建议,帮助开发者选择最适合的分页策略,提升系统性能和用户体验。
1114 9
|
11月前
|
存储 SQL 关系型数据库
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
|
8月前
|
存储 关系型数据库 MySQL
MySQL中实施排序(sorting)及分组(grouping)操作的技巧。
使用这些技巧时,需要根据实际的数据量、表的设计和服务器性能等因素来确定最合适的做法。通过反复测试和优化,可以得到最佳的查询性能。
437 0
|
10月前
|
SQL 关系型数据库 MySQL
MySQL 常用函数
我们这次全面梳理 MySQL 中的常用函数,涵盖 聚合函数、字符串函数、日期时间函数、数学函数 和 控制流函数 等五大类。每类函数均配有语法说明与实用示例,帮助读者提升数据处理能力,如统计分析、文本处理、日期计算、条件判断等。文章结尾提供了丰富的实战练习,帮助读者巩固和应用函数技巧,是进阶 SQL 编程与数据分析的实用工具手册。
778 2
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
|
监控 关系型数据库 MySQL
MySQL和SQLSugar百万条数据查询分页优化
在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。掌握这些技巧后,您可以在处理海量数据时更加游刃有余。
1167 9
|
SQL 关系型数据库 MySQL
Mysql-常用函数及其用法总结
以上列举了MySQL中一些常用的函数及其用法。这些函数在日常的数据库操作中非常实用,能够简化数据查询和处理过程,提高开发效率。掌握这些函数的使用方法,可以更高效地处理和分析数据。
415 19
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
本文来自YashanDB官网,介绍将MySQL的FIELD函数改写到YashanDB的方法。MySQL中,FIELD函数用于自定义排序;而在YashanDB中,可使用DECODE或CASE语句实现类似功能。示例展示对表`t1`按指定顺序排序的过程,提供两种改写方式,结果均符合预期。
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
379 7

推荐镜像

更多