SQL 教程

本文目录结构

什么是 SQL?

SQL 是用于访问和处理数据库的标准的计算机语言。

简单地说,SQL 就是访问和处理关系数据库的计算机标准语言。也就是说,无论用什么编程语言(Java、Python、C++……,当然也包括我们大 Node.js)编写程序,只要涉及到操作关系数据库,比如,一个电商网站需要把用户和商品信息存入数据库,或者一个手机游戏需要把用户的道具、通关信息存入数据库,都必须通过 SQL 来完成。

所以,现代程序离不开关系数据库,要使用关系数据库就必须掌握 SQL。

在本教程中,你将学到关系数据库的基本概念,如何使用 SQL 操作数据库,以及一种最流行的开源数据库 MySQL 的基本安装和使用方法。

NoSQL

你可能还听说过 NoSQL 数据库,也就是非 SQL 的数据库,包括 MongoDB、Cassandra、Dynamo 等等,它们都不是关系数据库。有很多人鼓吹现代 Web 程序已经无需关系数据库了,只需要使用 NoSQL 就可以。但事实上,SQL 数据库从始至终从未被取代过。回顾一下 NoSQL 的发展历程:

1970: NoSQL = We have no SQL
1980: NoSQL = Know SQL
2000: NoSQL = No SQL!
2005: NoSQL = Not only SQL
2013: NoSQL = No, SQL!

今天,SQL 数据库仍然承担了各种应用程序的核心数据存储,而 NoSQL 数据库作为 SQL 数据库的补充,两者不再是二选一的问题,而是主从关系。所以,无论使用哪种编程语言,无论是 Web 开发、游戏开发还是手机开发,掌握 SQL,是所有软件开发人员所必须的。

不要再犹豫了!从现在开始,坚持一周,拿下 SQL!

语法

https://a.axihe.com/img/edu/sql/wiki-sys.png

图表显示了SQL语言元素组成的一个语句

SQL 语言分成了几种要素,包括:

  • 子句,是语句和查询的组成成分。(在某些情况下,这些都是可选的。)[14]
  • 表达式,可以产生任何标量值,或由列和行的数据库表
  • 谓词,给需要评估的 SQL 三值逻辑(3VL)(true/false/unknown)或布尔真值指定条件,并限制语句和查询的效果,或改变程序流程。
  • 查询,基于特定条件检索数据。这是 SQL 的一个重要组成部分。
  • 语句,可以持久地影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。
    • SQL 语句也包括分号(”;“)语句终结符。尽管并不是每个平台都必需,但它是作为 SQL 语法的标准部分定义的。
  • 无意义的空白在 SQL 语句和查询中一般会被忽略,更容易格式化 SQL 代码便于阅读。

语言特点

SQL 是高级的非过程化编程语言,它允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式。而它的界面,能使具有底层结构完全不同的数据库系统和不同数据库之间,使用相同的 SQL 作为数据的输入与管理。它以记录项目〔records〕的合集(set)〔项集,record set〕作为操纵对象,所有 SQL 语句接受项集作为输入,回提交的项集作为输出,这种项集特性允许一条 SQL 语句的输出作为另一条 SQL 语句的输入,所以 SQL 语句可以嵌套,这使它拥有极大的灵活性和强大的功能。在多数情况下,在其他编程语言中需要用一大段程序才可实践的一个单独事件,而其在 SQL 上只需要一个语句就可以被表达出来。这也意味着用 SQL 可以写出非常复杂的语句,在不特别考虑性能下。

SQL 同时也是数据库文件格式的扩展名。

SQL 包含四个部分:

  • 数据定义语言
  • 数据操纵语言
  • 数据控制语言
  • 事务控制语言

SQL 函数

函数描述
AVG平均值
COUNT计数(不含 Null)
FIRST第一个记录的值
MAX最大值
MIN最小值
STDEV样本标准差
STDEVP总体标准差
SUM求和
VAR样本方差
VARP总体方差
UCASE转化为全大写字母
LCASE转化为全小写字母
MID取中值
LEN计算字符串长度
INSTR获得子字符串在母字符串的起始位置
LEFT取字符串左边子串
RIGHT取字符串右边子串
ROUND数值四舍五入取整
MOD取余
NOW获得当前时间的值
FORMAT字符串格式化
DATEDIFF获得两个时间的差值

SQL 速查手册

本站提供一个 SQL 速查手册,您可以通过SQL速查手册来快速找到对应的SQL语句,直接复制即可

SQL 数据类型

介绍 Microsoft Access、MySQL 和 SQL Server 的数据类型和范围。

SQL 数据类型

阿西河

AXIHE / 精选教程

浏览全部教程

HTML

CSS

JS

关于本站

阿西河前端教程more,是一个提供大前端开发教程的网站;这里不仅会有传统的WEB开发教程,还会包含Nodejs,Docker,云服务相关的介绍;