SQL结构化查询语言分类介绍

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

SQL结构化查询语言分类介绍


SQL:结构化查询语言,它是一种对关系型数据进行定义和操作的语言方法。

SQL结构化查询语言包含6个部分:

一、数据查询语言(DQL)

DQL全称Data Query Language,其语句也称“数据检索语句”,作用是从表中获取数据,确定数据怎样在应用程序给出。关键字SELECT是DQL(也是所有SQL)用的最多的动词,其他DQL常用的保留字WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

  1. select(关键字)与order by(保留字)一起使用例子

    mysql> select user,host from mysql.user order by user;

    +-----------+-----------+

    | user      | host      |

    +-----------+-----------+

    | mysql.sys | localhost |

    | root      | localhost |

    | zabbix    | localhost |

    +-----------+-----------+

    3 rows in set (0.00 sec)

  2. select与from

    mysql> select user,host,authentication_string from mysql.user;

    +-----------+-----------+-------------------------------------------+

    | user      | host      | authentication_string                     |

    +-----------+-----------+-------------------------------------------+

    | root      | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

    | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

    | zabbix    | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

    +-----------+-----------+-------------------------------------------+

    3 rows in set (0.00 sec)

    说明:mysql5.7数据库下已经没有password这个字段了,password字段改成了authentication_string,用来查看用户的账户密码。

二、数据操作语言(DML)

DML全称:Data Manipulation Language,其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行(数据)。也称为动作查询语言。

  1. 删除表中的数据

    先查看下mysql(库),user(表)中的数据

    mysql> select user,host from mysql.user;

    +-----------+---------------+

    | user      | host          |

    +-----------+---------------+

    | nginx     | 192.169.5.144 |

    | mysql.sys | localhost     |

    | root      | localhost     |

    | zabbix    | localhost     |

    +-----------+---------------+

    4 rows in set (0.00 sec)

    然后把mysql库user表中的nginx删除掉:

    mysql> delete from mysql.user where user='nginx' and host='192.169.5.144';

    Query OK, 1 row affected (0.03 sec)

    说明:and host='192.169.5.144'可以不加,即:delete from mysql.user where user='nginx';

    最后,再次查看mysql(库),user(表)中的用户信息

    mysql> select user,host from mysql.user;

    +-----------+-----------+

    | user      | host      |

    +-----------+-----------+

    | mysql.sys | localhost |

    | root      | localhost |

    | zabbix    | localhost |

    +-----------+-----------+

    3 rows in set (0.00 sec)

    说明:我们可以看到,nginx这个用户已经被删除啦!

  2. 添加和修改表中的数据

    查看:http://wutengfei.blog.51cto.com/10942117/1905963

三、事务处理语言(TPL)

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语言包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

说明:MySQL默认执行commit的,Oracle需要自己手动执行commit等TPL语言。

四、数据控制语言(DCL)



DCL全称(Data Control Language),它的语句通过GRANT或REVOKE获得许可。确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

五、数据定义语言(DDL)

DDL全称(Data Definition Language),其语句包括动词CREATE和DROP。在数据库中创建新表或删除表;为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

六、指针控制语言(CCL)

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

wKioL1mJggzzY1p-AAFHAEx_3-Q728.png




     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1954569,如需转载请自行联系原作者






相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
【YashanDB知识库】字段加上索引后,SQL查询不到结果
【YashanDB知识库】字段加上索引后,SQL查询不到结果
OmniSQL:开源文本到SQL神器!自然语言秒转查询到复杂多表连接等SQL需求
OmniSQL是开源的文本到SQL转换模型,通过创新的数据合成框架生成250万条高质量样本,支持7B/14B/32B三种模型版本,能处理从简单查询到复杂多表连接等各种SQL需求。
133 16
OmniSQL:开源文本到SQL神器!自然语言秒转查询到复杂多表连接等SQL需求
玩转大数据:从零开始掌握SQL查询基础
玩转大数据:从零开始掌握SQL查询基础
126 35
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
云原生数据仓库AnalyticDB PostgreSQL同一个SQL可以实现向量索引、全文索引GIN、普通索引BTREE混合查询,简化业务实现逻辑、提升查询性能
本文档介绍了如何在AnalyticDB for PostgreSQL中创建表、向量索引及混合检索的实现步骤。主要内容包括:创建`articles`表并设置向量存储格式,创建ANN向量索引,为表增加`username`和`time`列,建立BTREE索引和GIN全文检索索引,并展示了查询结果。参考文档提供了详细的SQL语句和配置说明。
61 1
SQL为什么不建议执行多表关联查询
本文探讨了SQL中不建议执行多表关联查询的原因,特别是MySQL与PG在多表关联上的区别。MySQL仅支持嵌套循环连接,而不支持排序-合并连接和散列连接,因此在多表(超过3张)关联查询时效率较低。文章还分析了多表关联查询与多次单表查询的效率对比,指出将关联操作放在Service层处理的优势,包括减少数据库计算资源消耗、提高缓存效率、降低锁竞争以及更易于分布式扩展等。最后,通过实例展示了如何分解关联查询以优化性能。
SQL做数据分析的困境,查询语言无法回答的真相
SQL 在简单数据分析任务中表现良好,但面对复杂需求时显得力不从心。例如,统计新用户第二天的留存率或连续活跃用户的计算,SQL 需要嵌套子查询和复杂关联,代码冗长难懂。Python 虽更灵活,但仍需变通思路,复杂度较高。相比之下,SPL(Structured Process Language)语法简洁、支持有序计算和分组子集保留,具备强大的交互性和调试功能,适合处理复杂的深度数据分析任务。SPL 已开源免费,是数据分析师的更好选择。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等