SQL是结构化查询语言( Structured Query Language)的缩写,它是目前关系数据库系统中通用的标准语言。
SQL在字面上虽然称为结构化查询语言,实际上它还包括数据操纵、数据定义、事务控制、安全控制等一系列命令。
SQL操作的基本对象是表,也就是关系。
它可以对表中的数据进行查询、增加、删除、修改等常规操作,还可以维护表中数据的一致性、完整性和安全性,能够满足从单机到分布式系统的各种应用需求。
SQL是一种非过程化的语言,用户在使用SQL操作数据时,只需要告诉系统做什么,而不需要关心怎么做,系统会根据用户的意图自动完成相应的操作。
由于SQL的这一特点,它被人们称为“第四代语言”(4GL ),以区别于面向过程的高级语言。
用SQL语言编写的SQL语句有两种执行方式,一种是联机交互方式, SQL语句在一定的平台上执行,例如数据库管理系统提供的实用程序。
这个执行平台将SQL语句提交给数据库服务器,并将从数据库服务器返回的执行结果显示给用户。
另一种方式是嵌入方式,用户在用C/C++ 、Java等高级语言编写应用程序时,可能需要操作数据库中的数据,这时SQL作为一种嵌入式语言,嵌入到高级语言程序中,通过数据库接口;如ODBC 、JDBC访问数据库中的数据。
SQL包括一系列命令,可以满足对数据的各种访问。
按照通用的分类标准, SQL命令分为以下几种类型:
·查询命令包括SELECT命令
•DML命令包括INSERT 、DELETE 、UPDATE命令
•DDL命令包括CREATE 、D·ROP 、ALTER 、RENAME 、TRUNCATE命令
·事务控制命令包括COMMIT 、ROLLBACK 、SAVEPOINT命令
•DCL命令包括GRANT 、REVOKE命令
命令和相关的参数一起构成了SQL语句。
查询语句
查询语句是使用最为频繁的数据库访问语句,对应的SQL命令是SELECT 。
虽然只有一条命令,但是由于它有灵活多样的形式,以及功能强大的子句,可以组成各种复杂的查询语句,能够完成各种复杂的查询。
SELECT语句可以根据用户的要求查询数据库中的数据,并且可以对它们进行简单的计算和统计。
最简单的SELECT语句只有一个FROM子句,格式如下:
SELECT 表达式 FROM 表名称;
其中SELECT之后引导一个或多个列名,或者表达式,用来指定需要查询的列,或者对数据所进行的计算。
在FROM子句指定一个或多个表名,用来指定本次查询所涉及的表。
查询的结果是返回一行或多行数据,每行由一个或多个列的列值组成。
完整的SELECT语句包括WHERE 、ORDER 、GROUP等子句。格式如下:
SELECT 表达式
FROM 表名
WHERE 条件
GROUP BY 列名
HAVING 条件
ORDER BY 表达式
SELECT语句最灵活的用法体现在WHERE子句中的查询条件,这个条件用来指定查询什么样的数据。
查询语句的基本用法
如果要查询某个表中一个或多个列的数据,需要在SELECT 命令之后指定列名,并在FROM子句中指定查询所涉及的表。
格式如下:
SELECT 列名称列表 FROM 表名称;
查询的结果是从指定的表中将指定列的数据显示出来。
这样的语句可以在Oracle提供的实用工具SQL*Plus 中执行,也可以在其他实用工具或应用程序中执行。
SQL语句中除字符串外,各个部分是大小写不敏感的。
如果在SQL*Plus 中执行SQL语句,还要在语句末尾加上一个分号。
分号并不是SQL语句的一部分,只是语句结束的标志。
一条句可以在一行中书写,也可以分行书写。
如果要查询表中的所有的列,可以用“*”符号代替所有的列名。
如果不了解表的结构,可以在SQL*Plus 中执行命令DESCRIBE (简写为DESC ),查看表的结构。
这个命令的参数是表名,或者其他对象名。
注意,这条命令不是SQL 命令,而是SQL*Plus 中的命令。
在默认情况下,在显示数据时,各列的标题就是列的名称。
在SELECT语句中可以定义列的别名,这样在显示数据时,列的标题就是这个别名,在整个SQL语句中都可以使用这个别名。
使用别名的SELECT语句格式为:
SELECT 列1 AS 别 名1 ,列2 AS 别名2 •••
或者在列名后直接指定别名,省略AS 关键字。
在查询结果中如果有重复行,可以使用DISTINCT关键字去掉重复行的显示。
重复行是指在SELECT语句中涉及的所有列的列值完全相同的行。
SELECT语句不仅可以进行简单的查询,还可以对查询的列进行简单的计算,也可以在两个列之间进行计算,或者将某个列与其他表达式,或者两个表达式进行计算。
使用||运算符可以将两个数据连接起来。
无论是数字型还是日期型数据,在进行这种运算时,都可以看做是字符型数据。
通过||运算符,用户可以设计自己喜欢的数据显示方式,如将两个列的值连接起来,也可以将列的值与其他文字连接起来。
连接以后所得的数据可以当做一个列来显示。