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 / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了