[MySQL] SQL 基础知识

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: [MySQL] SQL 基础知识

资料

根据【MySQL数据库教程天花板,mysql安装到mysql高级,强!硬!】 整理

资料链接:

百度网盘:

链接:https://pan.baidu.com/s/1KboU_3EZJxrezMWZ2klP6g

提取码:1234

阿里云盘

【MySQL】

1. SQL的分类

  • SQL语言在功能上主要分为如下4大类:
  • (1) DDL(Data Definition Languages – 数据定义语言):
  • DDL 可以用于定义不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。
  • DDL 主要的语句关键字包括(先了解关键字的含义):
  1. CREATE:创建
  2. ALTER:修改
  3. DROP:删除
  4. RENAME:重命名
  5. TRUNCATE:删除数据重新创建一个与原来一样的(清空)
  • (2) DML(Data Manipulation Language – 数据操作语言):
  • 用于添加、删除、更新数据库记录,并检查数据完整性。
  • DML 主要的语句关键字包括(先了解关键字的含义):
  1. INSERT:插入数据
  2. DELETE:删除数据
  3. UPDATE:修改/更新数据
  • (3) DQL(Data Query Language – 数据查询语言):
  • 用于查询数据库记录。
  • DQL 主要的语句关键字包括(先了解关键字的含义):
  1. SELECT(重中之重):查询数据
  • (4) DCL(Data Control Language – 数据控制语言):
  • 用于定义数据库、表、字段、用户的访问权限和安全级别。
  • DCL 主要的语句关键字包括(先了解关键字的含义):
  1. COMMIT:提交事务
  2. ROLLBACK:回滚事务
  3. SAVEPOINT:回滚到一个具体的保存点
  4. GRANT:赋予权限
  5. REVOKE:撤销权限
  • (5) 补充:
  • 有些人会将 COMMIT 、 ROLLBACK 取出来称为 TCL (Transaction Control Language,事务控制语言)。

先补充解释一些SQL语句:

(1) 指定使用哪个数据库:USE 数据库的名字;

(2) 查看当前使用的数据库:SELECT DATABASE();

(3) 查看所有的数据库:SHOW DATABASES;

(4) 查看当前数据库中的所有表格:SHOW TABLES;

2.SQL的规则和规范

2.1 SQL的规则(必须要遵守)

  1. SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进(有时一句SQL语句可能会很长)。
    例如:
DELETE FROM edge WHERE (edge_first = 2 AND edge_second = 3) OR (edge_first = 3 AND edge_second = 2);
# 写成
DELETE FROM edge
WHERE (edge_first = 2 AND edge_second = 3) OR
      (edge_first = 3 AND edge_second = 2);
  1. 每条命令以 ;\g\G 结束

    从截图中可以看出以 ; 结尾和以 \g 结尾的执行结果一致,以 \G 结尾的执行结果,只是数据的显示方式不同,由原来的使用表格进行显示转换为使用字典(表格中的列名:结果)的格式进行显示。
  2. 关键字不能被缩写也不能分行
SHOW DATA
BASES;
[42000][1064] You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server 
version for the right syntax to use near 'DATA BASES' 
at line 1
  1. 关于标点符号
    ① 必须保证所有的()、单引号、双引号是成对结束的
    ② 必须使用英文状态下的半角输入方式
    ③ 字符串型和日期时间类型的数据可以使用单引号(’ ')表示
    ④ 列的别名,尽量使用双引号(" "),而且不建议省略as

2.2 SQL的规范(建议遵守)

  1. MySQL 在 Windows 环境下是大小写不敏感的
    在 windows 下新建两个文件夹,两个文件夹的名称相同,只是字母的大小写不同,window 会认为两个文件夹的名字为同一个名字,所以在 windows 系统下大小写不敏感,由此导致 windows 下的 SQL 大小写也不敏感。


  2. MySQL 在 Linux 环境下是大小写敏感的
    ① 数据库名、表名、表的别名、变量名是严格区分大小写的
    ② 关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。
  3. 推荐采用统一的书写规范(防止在不同系统下受到影响):
    ① 数据库名、表名、表别名、字段名、字段别名等都小写
    ② SQL 关键字、函数名、绑定变量等都大写

2.3 命名规则(了解)

  1. 数据库、表名不得超过30个字符,变量名限制为29个
  2. 必须只能包含 A–Z, a–z, 0–9, _共63个字符
  3. 数据库名、表名、字段名等对象名中间不要包含空格
  4. 同一个 MySQL 软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
  5. 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在 SQL 语句中使用 `(着重号,1的右边,键盘左上方)引起来
  6. 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了

3.MySQL的注释

  1. 单行注释:
    语法:
# 需要注释的内容
# 该注释方法是MySQL所特有的
  1. 或者
-- 需要注释的内容
-- 使用该种方法进行注释,-- 后面必须有一个空格,否则不认为该行被注释
  1. 多行注释:
    语法:
/*
需要注释的内容
需要注释的内容
需要注释的内容
*/
  1. 多行注释中不能进行嵌套


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
MySQL进阶突击系列(07) 她气鼓鼓递来一条SQL | 怎么看执行计划、SQL怎么优化?
在日常研发工作当中,系统性能优化,从大的方面来看主要涉及基础平台优化、业务系统性能优化、数据库优化。面对数据库优化,除了DBA在集群性能、服务器调优需要投入精力,我们研发需要负责业务SQL执行优化。当业务数据量达到一定规模后,SQL执行效率可能就会出现瓶颈,影响系统业务响应。掌握如何判断SQL执行慢、以及如何分析SQL执行计划、优化SQL的技能,在工作中解决SQL性能问题显得非常关键。
|
16天前
|
SQL 关系型数据库 MySQL
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
35 9
|
15天前
|
SQL 存储 缓存
MySQL的架构与SQL语句执行过程
MySQL架构分为Server层和存储引擎层,具有高度灵活性和可扩展性。Server层包括连接器、查询缓存(MySQL 8.0已移除)、分析器、优化器和执行器,负责处理SQL语句;存储引擎层负责数据的存储和读取,常见引擎有InnoDB、MyISAM和Memory。SQL执行过程涉及连接、解析、优化、执行和结果返回等步骤,本文详细讲解了一条SQL语句的完整执行过程。
35 3
|
22天前
|
SQL Oracle 关系型数据库
【YashanDB 知识库】如何将 mysql 含有 group by 的 SQL 转换成崖山支持的 SQL
在崖山数据库中执行某些 SQL 语句时出现报错(YAS-04316 not a single-group group function),而这些语句在 MySQL 中能成功执行。原因是崖山遵循 SQL-92 标准,不允许选择列表中包含未在 GROUP BY 子句中指定的非聚合列,而 MySQL 默认允许这种操作。解决办法包括:使用聚合函数处理非聚合列或拆分查询为两层,先进行 GROUP BY 再排序。总结来说,SQL-92 更严格,确保数据一致性,MySQL 在 5.7 及以上版本也默认遵循此标准。
|
1月前
|
SQL 存储 关系型数据库
MySQL原理简介—10.SQL语句和执行计划
本文介绍了MySQL执行计划的相关概念及其优化方法。首先解释了什么是执行计划,它是SQL语句在查询时如何检索、筛选和排序数据的过程。接着详细描述了执行计划中常见的访问类型,如const、ref、range、index和all等,并分析了它们的性能特点。文中还探讨了多表关联查询的原理及优化策略,包括驱动表和被驱动表的选择。此外,文章讨论了全表扫描和索引的成本计算方法,以及MySQL如何通过成本估算选择最优执行计划。最后,介绍了explain命令的各个参数含义,帮助理解查询优化器的工作机制。通过这些内容,读者可以更好地理解和优化SQL查询性能。
|
2月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
1月前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
175 42
|
4天前
|
SQL 关系型数据库 MySQL
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
|
1月前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
132 25
|
15天前
|
监控 关系型数据库 MySQL
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。