暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL 方言

鸡仔说 2021-05-26
2941

鸡仔说:SQL 方言和我们日常生活的方言很类似,如果是学习,鸡仔建议学适用性广的,比如我们日常生活中的普通话


在了解 SQL 方言之前,我们应该先了解一下,什么是 SQL(Structured Query Language),翻译过来是结构化查询语言,但是这样还是不知道是个啥,我们可以简单的理解为,和数据库进行对话的语言。

既然是和数据库对话的语言,那么它的发展一定离不开数据库的发展。19世纪80年代数据库市场百花齐放,出现了众多数据库供应商,每个版本的 SQL 千差万别,并且彼此之间不兼容。这样带来了一个问题,是学习成本太高。人们发现学完了一套语言,在
另外一个数据库产品上,又没法使用了。所以,人们开始研究一套适用大多数数据库的 SQL 标准。经过几年努力,于 1986 年被正式引入 ANSI (美国国家标准学会),并在之后被纳入 ISO(国际标准化组织)。

Mysql 、PostgreSQL、Oracle 都有自己的方言,那么我应该学习哪一个呢?如果你已经知道你要使用的数据库供应商了,比如 postgresql,那么你可以学习 POSTGRESQL,而如果你是一个初学者,那么我更建议你学标准的 SQL,类似于你学普通话,绝大部分地方都会懂的。

你可能还听过其他的名词,比如 PL/SQL、PL/pgSQl或者T-SQL之类的名词,这是由 SQL 发展起来的面向各复杂场景的 SQL ,因为有时候简单的查询可能并不能满足你的需求,因此需要一些条件、循环逻辑,你可以自定义其中的逻辑。

比如 mysql:

    mysql> delimiter //


    mysql> CREATE PROCEDURE dorepeat(p1 INT)
    -> BEGIN
    -> SET @x = 0;
    -> REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
    -> END
    -> //
    Query OK, 0 rows affected (0.00 sec)


    mysql> delimiter ;


    mysql> CALL dorepeat(1000);
    Query OK, 0 rows affected (0.00 sec)


    mysql> SELECT @x;
    +------+
    | @x |
    +------+
    | 1001 |
    +------+
    1 row in set (0.00 sec)
    复制

    参考资料:

    [1] AKK (2020). What Is a SQL Dialect, and Which one Should You Learn.

    https://learnsql.com/blog/what-sql-dialect-to-learn/

    [2] Mysql doc(v=5.7). Defining Stored Programs.

    https://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html

    以上,如果觉得内容对你有所帮助,还请点个「在看」支持,谢谢各位dai佬!




    好看的人都点了在看


    文章转载自鸡仔说,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论