2024年4月2日发(作者:)
SQL语言的组成一、SQL语言有命令动词、子句、运算符和统
计函数构成。这些元素结合起来组成语句,用
SQL语言的组成
一、SQL语言有命令动词、子句、运算符和统计函数构成。这些
元素结合起来组成语句,用来对数据库进行各种操作,包括创建、更
新、查询及一些其他功能。 虽名为结构化查询语言,实际上不止如
此,SQL的功能分为如下3个部分:
(1) Data Definition Language(DDL),数据定义语言
(2) Data Control Language(DCL),数据控制语言
(3) Data Manipulation Language(DML),数据处理语
言 这3种语言合起来组成了完整的SQL,其主要的命令动词如下表
所示,通过这几个动词,就可以完成对数据库的大部分操作
SQL的基本命令动词
SQL语言分类 主要命令动词
数据定义 Create,Drop,Add,Alter
(DLL)
数据处理 Select,Insert,Update,Delete,Transaction,
(DML) Execute
数据控制 Grant,Revoke
(DCL)
二、SQL的数据定义功能 SQL的数据定义功能是通过DDL部
分实现的,可以完成表、视图、索引、存储过程、用户和组的建立和
撤销。其基本命令有如下几个: 1) Create Table,创建新表
2) Create Index,在现有的表上创建新的索引 3) Create
Procedure,创建一个存储过程 4) Create View,创建新视
图 5) Create{User| Group} ,创建一个或更多的新用户或组
6) Alter Table ,修改用CreateTable创建的表 Drop
{Table | Index | Procedure | View | User | Group},撤销上述用
Create 命令建立的相应对象。 为了在Visual Basic中执行SQL语
句需要使用Database对象的Execute方法,参数写上SQL语句即可。
数据控件的 数据源(Recordsource)属性也额可以直接使用SQL
的Select语句。下面就用SQL语句建立一个数据表,并且加上索
引(以后介绍中直接写SQL语句,不再涉及Visual Basic部分)
Sub CreateTable() Dim db As Database, Sql As String Set db =
CreateDatabase('', dbLangChineseSimplified) '创建
数据库 Sql = 'create table students(XH integer,XM text(20),XB
text(2),BORN text(40),BIRTH datetime);' e Sql Sql =
'Create unique index XH on students(XH ASC) with primary;' 'ASC
是指升序,如果用降序,改为DESC e Sql '执行创建索引的
SQL语句 '关闭数据库End Sub 执行过上述Visual Basic
程序后,会建立一个带有索引的数据表。需要注意的是:SQL不能创
建数据库! 三、SQL的数据处理功能 SQL的数据处理功能是
通过DML的部分实现的,可以完成数据的查询、增加、修改、删除和
运算等功能。其基本命令如下: a) Select和
Select. . .Into 将一组符合条件的记录检索出来,从数据库返回使用或
者放入另一个表。 b) Insert Into 添加一个或多个记录至一
个表 c) Update 创建更新查询来改变基于特定准则的指定
表中的字段值,就是修改记录 d) Delete 删除符合条件的
记录 e) Execute 用于激活有Create Procedure创建的存
储过程 下面通过例子对SQL的DML使用进行说明 1) 将
一个记录插入表中。 此条SQL语句将一个
记录插入到students表中:
Insert Into
Students(xh,xm,xb,born,birth) values_(970111,”小张”,”男”,”
河北廊坊”,”1980-1-15”); 2) 删除表中的一个记
录。 将学号为970111的记录删除:
Delete * from students where xh=970111 3) 更新一个记
录。 将学号为970111的记录的出
生地改为“河北保定”: Update students set born=”河北保定”
where xh=970111 4) 找出符合条件的记
录。 从students表中找出出生日期在1980
年6月1日以后的记录: Select * from students where
birth>=”1980-6-1”
Select 语句是SQL最为常用的一个语句,有极其强大的数据检索
功能,在此列出它的语句格式,因篇幅所限,不做详细介绍。
Select[all | distinct [on (expression [,. . .])]] * | expression [ as
output_name] [,…] [ into [ temporary | temp] [table] new_table ]
[from from_item [, . . .] ] [where condition] [group by expression
[, . . . ] ] [ having condition [, . . .] ] [{union | intersect | except [all] }
select ] [ order by expression [ asc | desc | using operator] [, . . . ] ]
[ for update [ of class_name [, . . . ] ] ] [ limit { count | all } [ { offset
| , } start ] ] 再举例说明一下Select的复杂用法,下表为一个气象
表,该表记录了全国各主要城市每天的气温情况,表的名字为
weather,表中有很多记录。 全国各城市气象数据记录表
City
北京
北京
. . .
天津
天津
. . .
Temp_lo
-10
-11
. . .
-8
-9
. . .
Temp_hi
-1
1
. . .
0
2
. . .
Prcp
0.1
0.15
. . .
0.05
0.1
. . .
Date
2012-8-20
2012-8-21
. . .
2012-8-20
2012-8-21
. . .
可以用下面的语句找出气象表中的最高温度发生在哪一天哪个城
市 Select city,temp_hi,date From weather Where
temp_hi=(select max(temp_hi) From weather); 这样的语句返回
一个记录,包括3个字段,即城市名、最高程度、发生日期。可能的
结果如下所示。 City Temp_hi Date 天
津 2 2012-8-21 也可以用下面语句获取在
每个城市观察到的最高温度的最高值 Select city, max(temp_hi)
From weather Group By city; 返回的记录数和表中的城市数一样
多,每个城市一条记录,每记录两个字段。 从这两个例子中,可
以看出搜QL语言查询功能的强大,在用对象墨香编程的时候,
OpenRecordset语句的参数和其他有关记录集生成的语句中,可以直
接运用SQL的Select语句,这会给编程带来极大的方便。 如果刚
接触SQL,直接写一定会出现不少错误,给程序的调试带来麻烦,可
以在VisData中直接使用SQL进行各种操作,成功后再写到程序中,
每当打开一个数据库,VisData就会出现SQL Statement窗口,直接
在其中写上SQL语句,然后单击“Execute”命令按钮即可执行。


发布评论