程序员的知识教程库

网站首页 > 教程分享 正文

SQL科普1章3讲:SQL初体验—SQL语言概述

henian88 2024-08-16 17:28:59 教程分享 8 ℃ 0 评论


一、前言

大家好,上一讲我们对数据库的基本概念有了一个详细的了解。在我们进入SQL数据库的使用和开发之前,必须要对SQL语言有一个基础性的了解。那么这节课我们就重点学习下SQL语言的相关知识。

二、SQL概述

1、SQL 的定义及简要描述

那么,SQL语言到底是怎样的一种语言呢?所谓的SQL语言其实就是“结构化查询语言”,而S Q L(分开读)就是结构化查询语言的首字母的缩写。

SQL语言的核心功能包括数据查询、数据操纵、数据定义和数据控制四个部分。

SQL语言具有简洁、方便、实用的优点,为完成其核心功能。

SQL语言只用了6个动词,即查询(SELECT)、创建(CREATE)、插入(INSERT)、修改(UPDATE)、删除(DELETE)和授权(GRANT (REVOKE) )。

2、 SQL到底能干些什么?

那么,我们会有所疑惑,SQL语言到底能干什么?

假如有一天,公司领导要求你根据公司已有的销售数据生成一些统计信息,考虑到传统办公软件已不能胜任这样的业务需求,那么使用数据库来完成数据的统计分析似乎成了唯一的选项。

对于这样的一组销售数据,如果我们用SQL查询数据库来实现,那么只需要写出这样的一组语句,就能统计出指定月份的销售金额,那么这就是我们的可以使用SQL语言去实现的功能。

二、SQL语言组成

SQL语言是具有强大查询功能的数据库语言。除此以外,SQL语言还可以控制数据库管理系统为用户提供其它的相关功能,它们分别是 数据定义语言、数据检索语言、数据操纵语言、数据控制语言、数据共享、数据完整性。

1、 数据定义语言

SQL语言允许用户定义存储数据的结构和组织,以及存储数据项之间的关系,这就是数据定义语言。数据定义语言包括了表操作、视图操作、索引操作在内的诸多操作语句,比如常用的表创建语句就是典型的数据定义语言。

2、 数据检索语言

SQL允许用户或应用程序从数据库中检索存储的数据并使用,那么这就要用到数据检索语言。数据检索语言包括了查询语句和过滤语句在内的多种操作语言,像我们常用的条件语句、最小值函数、最大值函数、均值函数、求和函数都是属于数据检索语言。

3、数据操纵语言

SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据对数据库进行更新,那么这就需要用到我们SQL中非常重要的数据操纵语言。

像我们使用最多的查询语句、插入语句、删除语句、修改语句就是属于数据操纵语言。

4、 数据控制语言

我们可以使用SQL语言来限制用户检索、添加和修改数据的能力,保护存储的数据不被未授权的用户所访问,那么这时我们就会用到数据控制语言。数据控制语言包括了数据控制和事务控制两类语言,像我们用到的授权控制语句、事务控制语句都是属于数据控制语言。

5、 程序化SQL语句

那么最后我们来说一下程序化SQL语句,程序化SQL语句包括了像变量的定义、动态执行SQL语句在内的一些语法,相比较前面我们说到的语言种类,这些语法我们用到的不是很多,在这我们不做重点讲解。

三、SQL语句的结构

1、 注意语法顺序

那么下面我们了解下SQL语句的结构,首先我们了解下SQL语句的语法顺序,我们就以查询语句为例来给大家作详细的讲解。

好,如果我们想要得到右边的数据结果,那么查询语句的语法顺序应该是查询,字段列表,从,表名,条件是,年龄大于10,按年龄分组,取分组后计数大于1的,最后再输出前4条。

由此我们可以总结出查询语句的语法顺序是:

第1步,先选择from后面跟的表,产生虚拟表1;

第2步,当如果有Join和ON,那么我们会再连接其它表,合并生成虚拟表2;

第3步,对虚拟表2进行条件过滤,符合条件的记录会被插入到虚拟表3中;

第4步,对虚拟表3中的记录进行分组操作,产生虚拟表4;

第5步,再对虚拟表4进行HAVING条件过滤,符合条件的记录会被重新插入到虚拟表5中;

第6步,再用Select关键字选择指定的列并插入到虚拟表6中;

第7步,如果遇到UNION,那么会再连接两个SELECT查询语句,重复步骤1~6,并将2个虚拟表合并到虚拟表7中;

第8步,再将虚拟表7中的记录进行排序,重新生成虚拟表8。

第9步,那么最后再次取出指定行的记录,返回结果集。

那么这就是整个查询语句的执行顺序。


从上面的语法顺序解析中我们也可以总结出以下几2点,

1、 SELECT 语句总是写在最前面,但在大部分语句之后才执行。所以在SQL语句中,我们不能在WHERE、GROUP BY、 HAVING语句中使用在 SELECT 中设定的别名。

2、 无论是书写顺序,还是执行顺序,UNION 都是排在 ORDER BY 前面的。SQL语句会将所有UNION 的查询记录合并在一起,再进行排序。

2、 不区分大小写

SQL语句的关键字是不区分大小写。在SQL语句的关键字中,无论是小写还是大写我们在执行的时候都是可以的。

3、 不同数据库系统之间SQL语法的异同

我们说下不同数据库系统之间SQL语法的差别问题。我们说不同的数据库系统,比如MySql、SQL Server或者说Oracle,他们在SQL的语法上是存在着差别的。

但是大家不用担心,这种差别是不大的,因为它们同属结构化查询语言,它们都遵循着结构化查询语言的语法标准,所以如果你学会了MySql版本的SQL语言再来学习SQL Server版本的,那么也是水到渠成的。

那么考虑到使用的覆盖率问题,后续我们绝大多数时间内都会以MySql数据库,再结合数据库管理工具Navicat来跟大家一起学习SQL语言。


四、本讲总结

通过本节课的学习,我们对SQL语言的基本概念有了一个较为基础的了解。那么下一课我们将一起学习下数据库、表、行列键等概念。

好,本节课就先到这里,谢谢大家!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表