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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
28天前
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
65 7
|
30天前
|
关系型数据库 MySQL
MySQL常见函数第一期,你都用过哪些呢 ?
本期介绍10个常用的MySQL函数:字符串连接(CONCAT)、提取子字符串(SUBSTRING)、获取字符串长度(LENGTH)、转换大小写(UPPER、LOWER)、去除空格(TRIM)、替换字符串(REPLACE)、查找子字符串位置(INSTR)、带分隔符的字符串连接(CONCAT_WS)以及获取当前日期时间(NOW)。
63 8
|
1月前
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
1月前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
29 4
|
1月前
|
关系型数据库 MySQL 数据处理
【MySQL】函数
MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。
43 3
|
1月前
|
SQL 关系型数据库 MySQL
mysql分页读取数据重复问题
在服务端开发中,与MySQL数据库进行数据交互时,常因数据量大、网络延迟等因素需分页读取数据。文章介绍了使用`limit`和`offset`参数实现分页的方法,并针对分页过程中可能出现的数据重复问题进行了详细分析,提出了利用时间戳或确保排序规则绝对性等解决方案。
|
2月前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
37 1
|
2月前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
39 1
|
13天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
39 3