
第4章 SQL基础知识
学习指引
SQL是用于访问和处理数据库的标准计算机语言。SQL指结构化查询语言,全称是Structured Query Language。使用SQL可以访问和处理数据库。本章就来学习SQL基础知识,主要内容包括认识SQL、常量、变量、运算符以及各种类型的SQL语句等。
重点导读
- 了解SQL的概念。
- 掌握SQL的常量。
- 掌握SQL的变量。
- 掌握SQL的运算符。
- 掌握SQL的通配符。
- 掌握SQL的注释符。
4.1 认识SQL
对数据库进行查询和修改操作的语言叫作SQL,下面从SQL的标准、种类和功能三个方面来认识一下SQL。
4.1.1 SQL的标准

SQL是数据库沟通的语言标准,有以下三个主要的标准:
(1)ANSI(American National Standards Institute,美国国家标准机构)SQL,对ANSI SQL修改后在1992年采纳的标准,称为SQL-92或SQL2。
(2)最近的SQL-99标准,SQL-99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能。
(3)其次,各大数据库厂商提供了不同版本的SQL,这些版本的SQL不但包括原始的ANSI标准,而且在很大程度上支持新推出的SQL-92标准。
注意:虽然SQL是一门ANSI标准的计算机语言,但是仍然存在着多种不同版本的SQL。然而,为了与ANSI标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如SELECT、UPDATE、DELETE、INSERT、WHERE等)。
4.1.2 SQL的种类

SQL共分为4大类:数据查询语句DQL、数据操作语句DML、数据定义语句DDL、数据控制语句DCL。具体介绍如下。
(1)数据查询语句(DQL):SELECT语句。
(2)数据操作语句(DML):INSERT、UPDATE、DELETE语句。
(3)数据定义语句(DDL):DROP、CREATE、ALTER等语句。
(4)数据控制语句(DCL):GRANT、REVOKE、COMMIT、ROLLBACK等语句。
4.1.3 SQL的功能

SQL的主要功能是管理数据库,具体来讲,它可以面向数据库执行查询操作,还可以从数据库中取回数据。除了这两个主要功能外,使用SQL还可以执行如下操作。
- 可在数据库中插入新的记录。
- 可更新数据库中的数据。
- 可从数据库中删除记录。
- 可创建新数据库。
- 可在数据库中创建新表。
- 可在数据库中创建存储过程。
- 可在数据库中创建视图。
- 可以设置表、存储过程和视图的权限。
4.2 常量
常量也称为文字值或标量值,是表示一个特定数据值的符号。常量的格式取决于它所表示的值的数据类型。一个常量通常有一种数据类型和长度,这二者取决于常量格式。根据数据类型的不同,常量可以分为数字常量、字符串常量、日期和时间常量以及符号常量。
4.2.1 数字常量

在SQL中,数字常量包括整数常量、小数常量以及浮点常量。
整数常量在SQL中被写成普通的整型数字,而且全部为数字,它们不能包含小数,前面可加正负号,例如:

注意:在数字常量的各个位之间不要加逗号,例如,123456这个数字不能表示为123,456。
小数常量由没有用引号括起来并且包含小数点的数字字符串来表示,例如:

浮点常量使用科学记数法来表示,例如:

货币常量以前缀为可选的小数点和可选的货币符号的数字字符串来表示,货币常量不使用引号括起来,例如:

在使用数字常量的过程中,若要指示一个数是正数还是负数,对数值常量应用“+”或“-”一元运算符,如果没有应用+或-一元运算符,数值常量将使用正数。
4.2.2 字符串常量

字符串常量括在单引号内,包含字母和数字字符(a~z、A~Z和0~9)以及特殊字符,如感叹号(!)、at符号(@)和#号(#)。
如果单引号中的字符串包含一个嵌入的引号,可以使用两个单引号表示嵌入的单引号。如下列出了常见字符串常量实例:

4.2.3 日期和时间常量

在SQL中,日期和时间常量使用特定格式的字符日期值来表示,并用单引号括起来,例如:

4.2.4 符号常量

在SQL中,除了为用户提供一些数字常量、字符串常量、日期与时间常量外,还提供了几个比较特殊的符号常量,这些常量代表不同的常用数据值,如CURRENT_DATE表示当前系统日期、CURRENT_TIME表示当前系统时间等,这些符号常量可以通过SQL Server的内嵌函数访问。