您现在的位置:首页 >> 网络教学 >> 数据库应用 >> 内容

结构化查询语言(SQL)

时间:2009-6-19 10:02:42 点击:4259

结构化查询语言(SQL

结构化查询语言SQL(读作“sequel”,Structured Query Language)是用于对存放在计算机中数据库的数据进行组织、管理和检索的工具,是操作数据库的工业标准语言。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create, 以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。在SQL语言中,指定要做什么而不是怎么做,如图9-11所示。只要告诉SQL需要数据库做什么,可以确切指定想要检索的记录以及按什么顺序检索。可以在设计或运行时对数据控件使用SQL语句。用户提出一个查询,数据库返回所有与该查询匹配的记录。

9-11 用SQL进行数据存取

从功能上来考虑,SQL语言可以分为DDLDML DCL 3大类。DDLData Definition Language),数据定义语言,在SQL中,数据库、表、视图、索引等都被看作对象,这些对象需要对过DDL数据定义语言来定义和管理;DML Data Manipulation Language),数据操纵语言,SQL中处理数据包括数据的增加INSERT、删除DELET、修改UPDATE、查询SELECT等操作统称为数据操纵语言;DCLData Control Language),数据控制语言,主要实现对用户权限的分配,事务(Transaction)的控制等处理。

SQL规范中所包含的命令和子句数量虽然不多,但却可以完成各种复杂的数据库操作。表9-1和表9-2列出了常用的SQL命令和子句。另外,我们经常涉及到对数据作统计运算。统计操作除了可以使用常运算符外,还可以使用统计函数,在SQL中统计函数称为聚合函数,聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。常用的聚合函数列于表9-3中。

9-1 常用的SQL命令

命令

描   述

SELECT

从数据库中查找满足指定条件的记录。

CREATE

创建数据库、表、视图等。

INSERT

向数据库表中插入或添加新的记录。

UPDATE

更新(修改)指定记录。

DELETE

从数据库表中删除指定记录。

9-2 常用SQL子句

子句

描   述

FROM

为从其中选择记录的表命名。

WHERE

指定所选记录必须满足的条件。

GROUP BY

把选定的记录分组。

ORDER BY

选定的对记录排序。

9-3 常用SQL聚合函数

聚合函数

描   述

AVG

返回组中值的平均值。空值将被忽略。

SUM

返回表达式中所有值的和。

COUNT

返回组中项目的数量。

MAX

返回表达式的最大值。

MIN

返回表达式的最小值。

下面对以上常用SQL命令逐个加以介绍。

1SELECT命令。在众多的SQL命令中,SELECT语句应该算是使用最频繁的。Select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。Select语句的语法格式如下:

SELECT [DISTINCT] 1 [,2,] FROM表名 [WHERE 条件] [ GROUP BY 表述式 ] [ ORDER BY 表达式 [ ASC | DESC ] ]

说明:

1DISTINCT指定不返回重复记录。

2)列1 [,2,]:决定那些列将作为查询结果返回,若要返回表格中的所有,使用通配符“*”来设定。

3FROM表名:决定查询操作的数据来源表格。

4WHERE 条件:规定哪些数据值或哪些行将被作为查询结果返回。“条件”的运算符包括各种常见运算符和LIKE运算符。LIKE运算符的功能非常强大,通过使用LIKE运算符可以设定只选择与用户规定格式相同的记录。此外,还可以使用通配符“%”用来代替任意字符串。

5GROUP BY 表述式:按“表达式”对查询结果进行分组。

6ORDER BY 表达式:按“表达式”对查询结果排序。ASC表示升序(默认),DESC表示降序。

[9-1]SELECT命令完成以下各种操作:

l        从学生成绩表中查询所有王姓同学的“姓名”和“成绩”:

SELECT 姓名, 成绩 FROM score WHERE 姓名 LIKE ‘王%

注:字符串必须被包含在单引号内。

l        查询学生成绩表中的所有信息:

SELECT * FROM score

l        查询数学和英语成绩均不及格的学生信息:

SELECT * FROM score WHERE 数学<60 AND 英语<60

l        查询学生成绩表中的所有数学成绩及格的学生信息,并将查询结果按数学成绩降序排列:

SELECT * FROM score WHERE 数学>=60 ORDER BY 数学 DESC

l        查询数学成绩不及格的人数、数学平均分、最高分:

SELECT COUNT*AS 人数 FROM score WHERE 数学<60

SELECT AVG(数学)AS 平均分,MAX(数学)AS 最高分 FROM score

注:子句“AVG(数学)AS 平均分”的意思是把查询结果中数学平均分以“平均分”作为字段名返回。

l        查询男生与女生的数学平均分:

SELECT 性别,AVG(数学)AS 平均分FROM score GROUP BY 性别

l        设学生成绩表中未包含学生的籍贯等信息,但在student表中则包含了这些信息。则查询学生的学号、姓名和籍贯及数学成绩:

SELECT score.学号,score .姓名,score .数学,student .籍贯 FROM scorestudent WHERE score.学号 = student.学号

2CREATE TABLE命令。该语句被用来建立新的数据库表格,格式如下:

CREATE TABLE 表名(列名1 数据类型,…)

说明:

1)“列名”与“数据类型”之间用空格分隔。

2SQL语言中较为常用的数据类型为:

l        char(size):固定长度字符串,其中括号中的size用来设定字符串的最大长度。Char类型的最大长度为255字节。

l        varchar(size):可变长度字符串,最大长度由size设定。

l        number(size):数字类型,其中数字的最大位数由size设定。

l        Date:日期类型。

l        number(size,d):数字类型,size决定该数字总的最大位数,而d则用于设定该数字在小数点后的位数。

[9-2] 创建一个名为student学生基本信息表。

CREATE TABLE student(学号 char(7),姓名 varchar(8),性别 char(2),年龄 number(3), 籍贯 varchar(20))

3INSERT命令。用于向数据库表中插入或添加新的数据行(记录),格式如下:

INSERT INTO 表名(1,列2,…) VALUES(1,值2,…)

说明:向数据库表格中添加新记录时,在关键词INSERT INTO后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列名。最后,在关键词VALUES的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。

[9-3] student表插入一条新记录。

INSERT INTO student(学号,姓名,性别,年龄,籍贯) VALUES(0801001, ‘张三’, ‘男’, 21, ‘江西赣州’)

4UPDATE命令。UPDATE用于更新或修改满足规定条件的现有记录,其使用格式为:

UPDATE 表名 SET 1 = 1 [, 2 = 2,] WHERE 条件

[9-4] student表中的“张三”同学加1岁。

UPDATE student SET 年龄 =年龄+1 WHERE 姓名= ‘张三’

5DELETE命令。删除数据库表中的行(记录),格式为:

DELETE FROM 表名 WHERE 条件

说明:如果用户在使用DELETE时不设定WHERE子句,则表格中的所有记录将全部被删除。

[9-5] 删除student表中“张三”同学的记录。

DELETE FROM student WHERE 姓名= ‘张三’

作者:Admin  
  • 上一篇:数据库管理器
  • 下一篇:数据控件
  • 相关文章
    • 没有相关文章
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4