SQL 教程

SQL 教程 ,介绍了操作关系数据库的SQL语言的使用方法。让读者循序渐进地掌握SQL的基础知识和使用技巧,切实提高编程能力。SQL 教程由浅入深地讲解了SQL的基本概念和语法,涉及数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,实例丰富,便于查阅。新版增加了针对Apache Open Office Base、MariaDB、SQLite等DBMS的描述,并根据最新版本的Oracle、SQL Server、MySQL和PostgreSQL更新了相关示例。

SQL 教程

SQL的历史

在20世纪70年代初,E.E.Codd博士首先提出了关系模型。70年代中期,IBM公司在研制SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(SEQUEL2)是在1976年11月的IBM Journal of R&D上公布的。

1979年,Oracle公司首先提供商用的SQL,IBM公司的DB2和SQL/DS数据库系统中也实现了SQL。

1986年,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSIX3.135-1986),后来被国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSIX3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL89,替代了ANSIX3.135-1986版本。

1992年,SQL又出现了新版本SQL-92,或简称SQL2.SQL-92代表了SQL的主要版本,扩展并改进了早起版本的功能特性。

1999年,SQL标准的最新版本SQL:1999发布,对SQL-92版本又新增了一些特性,标志SQL在满足用户需求方面又前进了一大步。

SQL是半衰期很长的语言

可以说在整个数字化的世界中,最重要而且最通用的元基础就是数据,而直接与数据打交道的语言就是SQL语言。很多人忽视了SQL语言的重要性,认为它不就是SELECT语句吗,掌握它应该是数据分析师的事。事实上在实际工作中,你不应该低估SQL的作用。如今互联网的很多业务处理离不开SQL,因为它们都需要与数据打交道。

SQL在各种技术和业务中无处不在,它的情况又是怎样的呢?45年前,也就是1974年,IBM研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询语言》,直到今天这门结构化的查询语言并没有太大的变化,相比于其他语言,SQL的半衰期可以说是非常长了。

SQL有两个重要的标准,分别是SQL92和SQL99,它们分别代表了92年和99年颁布的SQL标准,我们今天使用的SQL语言依然遵循这些标准。要知道92年是Windows3.1发布的时间,如今还有多少人记得它,但如果你从事数据分析,或者和数据相关的工作,依然会用到SQL语言。

作为技术和互联网行业的从业人员,我们总是希望能找到一个通用性强,变化相对少,上手相对容易的语言,SQL正是为数不多的,可以满足这三个条件的语言。

SQL语言的组成

SQL可以创建、维护、保护数据库对象,并且可以操作对象中的数据,因此SQL被认为是一种完整的语言。

我们可以把SQL语言按照功能划分成以下的4个部分:

  • DDL,英文叫做Data Definition Language,也就是数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用DDL,我们可以创建,删除和修改数据库和表结构,与其相关的主要SQL关键字包括CREATE、ALTER和DROP

  • DML,英文叫做Data Manipulation Language,数据操作语言,我们用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录,与其相关的主要SQL关键字包括INSERT、UPDATE、DELETE

  • DCL,英文叫做Data Control Language,数据控制语言,我们用它来定义访问权限和安全级别,与其相关的主要SQL关键字GRANT、DENY和REVOKE

  • DQL,英文叫做Data Query Language,数据查询语言,我们用它查询想要的记录,它是SQL语言的重中之重。在实际的业务中,我们绝大多数情况下都是在和查询打交道,因此学会编写正确且高效的查询语句,是学习的重点,与其相关的主要SQL关键字为SELECT

极客教程提供的SQL教程就是围绕这4个方面来介绍SQL语句的。

赞(3)

猜你喜欢

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址
    SQL 实例
    SQL检索所有行和列SQL 筛选行SQL 查找满足多个查询条件的行SQL 筛选列SQL 创建有意义的列名SQL 在WHERE子句中引用别名列SQL 串联多列的值SQL 在SELECT语句里使用条件逻辑SQL 限定返回行数SQL 随机返回若干行记录SQL 查找Null值SQL 把Null值转换为实际值SQL 查找匹配项SQL 以指定顺序返回查询结果SQL 多字段排序SQL 依据子串排序SQL 对含有字母和数字的列排序SQL 排序时对Null值的处理SQL 依据条件逻辑动态调整排序项SQL 叠加两个行集SQL 合并相关行SQL 确定两个表是否有相同的数据SQL 查找两个表中相同的行SQL 查找只存在于一个表中的数据SQL 从一个表检索与另一个表不相关的行SQL 新增连接查询而不影响其他连接查询SQL 识别并消除笛卡儿积SQL 组合使用连接查询与聚合函数SQL 组合使用外连接查询与聚合函数SQL 从多个表中返回缺失值SQL 在运算和比较中使用NullSQL 插入新记录SQL 判断闰年SQL 计算一年有多少天SQL 从给定日期值里提取年月日时分秒SQL 计算一个月的第一天和最后一天SQL 列出一年中所有的星期五SQL 找出当前月份的第一个和最后一个星期一SQL 插入默认值SQL 使用Null覆盖默认值SQL 复制数据到另一个表SQL 复制表定义SQL 多表插入SQL 禁止插入特定列SQL 更新记录SQL 当相关行存在时更新记录SQL 使用另一个表的数据更新记录SQL 合并记录SQL 生成日历SQL 列出一年中每个季度的开始日期和结束日期SQL 计算一个季度的开始日期和结束日期SQL 填补缺失的日期SQL 依据特定时间单位检索数据SQL 比较特定的日期要素SQL 识别重叠的日期区间SQL 定位连续的值区间SQL 计算同一组或分区的行之间的差SQL 定位连续值区间的开始值和结束值SQL 为值区间填充缺失值SQL 生成连续的数值SQL 结果集分页SQL 删除单行记录SQL 删除指定记录SQL 删除全表记录SQL 删除违反参照完整性的记录SQL 删除被其他表参照的记录SQL 删除重复记录SQL 列举字段SQL 列举模式中的表SQL 列举非索引外键SQL 列举约束SQL 跳过n行记录SQL 在外连接查询里使用OR逻辑SQL 识别互逆的记录SQL 提取最靠前的n行记录SQL 找出最大和最小的记录SQL 查询未来的行SQL 行值轮转SQL 对结果排序SQL 删除重复项SQL 查找骑士值SQL 生成简单的预测SQL 列举索引列SQL 用SQL生成SQLSQL 描述Oracle数据字典视图SQL 遍历字符串SQL 嵌入引号SQL 统计字符出现的次数SQL 删除不想要的字符SQL 分离数字和字符数据SQL 判断含有字母和数字的字符串SQL 根据字符串里的数字排序SQL 变换结果集成多行SQL 反向变换结果集SQL 反向变换结果集成一列SQL 删除重复数据SQL 变换结果集以实现跨行计算SQL 创建固定大小的数据桶SQL 创建预定数目的桶SQL 创建水平直方图SQL 创建垂直直方图SQL 返回非分组列SQL 计算简单的小计SQL 计算所有可能的表达式组合的小计SQL 识别非小计行SQL 使用CASE表达式标记行数据SQL 创建稀疏矩阵SQL 按照时间单位分组SQL 变换结果集成一行SQL 多维度聚合运算SQL 动态区间聚合运算SQL 变换带有小计的结果集SQL 按照子字符串排序SQL 提取姓名的首字母SQL 创建分隔列表SQL 分隔数据转换为多值IN列表SQL 按字母表顺序排列字符SQL 识别字符串里的数字字符SQL 提取第n个分隔子字符串SQL 解析IP地址SQL 计算平均值SQL 查找最小值和最大值SQL 展现父子关系SQL 展现祖孙关系SQL 创建层次视图SQL 找出给定的父节点对应的所有子节点SQL 确认叶子节点、分支节点和根节点SQL 使用SQL Server的PIVOT操作符创建交叉报表SQL 使用SQL Server的UNPIVOT操作符逆向转换交叉报表SQL 使用Oracle的MODEL子句变换结果集SQL 从不固定位置提取字符串的元素SQL 计算一年有多少天SQL 查找含有数字和字母的字符串SQL 在Oracle中把整数转换成二进制SQL 变换已排名的结果集SQL 为两次变换后的结果集增加列标题SQL 在Oracle中把标量子查询转换为复合子查询SQL 解析串行化的数据SQL 计算比重SQL 从Oracle中生成CSV格式的输出SQL 找出不匹配某个格式的文本SQL 使用内嵌视图转换数据SQL 测试一组数据中是否存在某个值SQL 求和SQL 计算行数SQL 计算非Null值的个数SQL 累计求和SQL 计算累计乘积SQL 计算累计差SQL 计算众数SQL 计算中位数SQL 计算百分比SQL 聚合Null列SQL 将含有字母和数字的字符串转换为数字SQL 修改累计值SQL 年月日加减法SQL 计算两个日期之间的天数SQL 计算两个日期之间的工作日天数SQL 计算两个日期之间相差的月份和年份SQL 计算两个日期之间相差的秒数、分钟数和小时数SQL 统计一年中有多少个星期一SQL 计算当前记录和下一条记录之间的日期差SQL 计算平均值时去掉最大值和最小值SQL查询优化的最佳实SQL如何打印表中重复的行
    SQL 教程
    SQL 教程SQL 语句SQL 语句是如何执行的SQL 创建数据库SQL 删除数据库SQL 创建表SQL 修改表SQL 删除表SQL 查询 SELECTSQL WHERE 条件查询SQL - 注释SQL - 别名SQL - 连接(内连接,左连接,右连接和全连接)SQL - 连接(笛卡尔连接和自连接)SQL - 约束SQL - 通配符SQL - DROP 和 TRUNCATESQL - AND和OR 运算符
    SQL 函数
    SQL 函数SQL ABS 函数
    SQL 语句
    SQL - CREATE 语句SQL - WHERE 语句SQL - UPDATE 语句SQL - GROUP BY 语句SQL - ORDER BY 语句SQL - INSERT INTO 语句SQL - Union 语句SQL - SELECT 查询SQL - SELECT TOP 语句SQL - DELETE 语句SQL - Distinct 语句
    SQL 问答
    SQL 和 MySQL 的区别