1.1 概述
SQL( Stuctured Query Language )语言和关系数据库模型是由 IBM 于本世纪七十年代初开发的。由于在实际数据库操作的应用中证明十分方便而有效,很快其他厂商也提供在不同的软硬件平台上支持了类似的产品。
INFORMIX SQL不仅与 IBM 的 SQL 以及其其它绝大多数的商用 SQL 兼容,而且在功能和能力上又做了非常重要的扩充。
1.2 SQL 与关系数据库
1. 数据库软件
操作数据库的软件通常分为两层。数据库应用软件作为操作数据库的高层软件,在对数据库进行操作时下发命令给底层软件数据库服务器。数据库完成该命令的操作,同时把结果返回应用软件。使用SQL 语言时同时使用了这两层软件。
2. 应用软件
数据库应用软件简单来说就是使用数据库的程序。它通过与数据库服务器通信完成对数据库的各种操作。应用软件下发命令给数据库服务器,数据库服务器完成命令操作后把结果传给应用软件,应用软件把结果显示给操作用户。
例如用户如要在数据库中添加一条新记录,就应该使用应用软件输入相关的数据。数据库应用软件就会把数据连同相应的查入新记录的SQL 命令传给数据库服务器,由数据库服务器完成操作。
数据库应用软件根据具体的使用对象的不同而形式多种多样。有的应用软件提供用户直接使用SQL 语言同数据库服务器实现交互。有的则使用不同形式的表格、窗口和命令按钮来实现用户的要求,而应用软件把用户的要求翻译成 SQL 语句下发给数据库服务器。智能网中的业务管理接入点 SMAP 就属于后一中情况。
3. 数据库服务器
数据库服务器是管理存储在服务器上数据的程序。数据库服务器知道数据库中的表、行和列是如何在计算机的物理存储媒介上组织的。数据库同时翻译和执行所有的SQL 命令。
1.3 SQL 命令交互软件 DB-Access
INFORMIX数据库提供了用户直接使用 SQL 语句同数据库服务器交互的工具, DB-Access 和 INFORMIX-SQL 。
用户在设置好相关的环境变量后就可以在UNIX 的 SHELL 提示符输入 dbaccess 就可里进入 DB-Access 。
DB-Access的菜单结构如 图5-1 所示。
1.4 INFORMIX SQL 语言
下面对常用的数据库表记录的操作命令加以简单介绍,并举例说明。这里是以INFORMIX 软件附带数据库 stores7 为例。详细内容可查看 INFORMIX 文档资料。
1.4.1 查询SELECT 语句
功能:查询数据库相关表的记录。
基本语法如下:
SELECT select_list
FROM table_list
WHERE search_conditios
ODER BY select_list
INTO TEMP table_list
例1 :从 custome 表中查询所有 state 名为 ‘NJ’ 的记录。
SQL语句:
SELECT * FROM customer
WHERE state=‘NJ’
操作结果如 图5-2 所示:
例 2 :查询 manufact 表中字段 manu_code, manu_name, lead_time 的所有记录并按字段 lead_time 的内容排序。
SQL 语句:
SELECT manu_code, manu_name, lead_time
FROM manufact
ORDER BY lead_time
操作结果如 图5-3 所示:
例3 :查询表 stock 的内容,按字段 unit_price, manu_code 的内容排序。
SQL语句:
SELECT * FROM stock
ORDER BY unit_price, manu_code
操作结果如 图5-4 所示。
1.4.2 添加 INSERT 语句
功能:在相应数据库表中添加新的记录。
基本语法如下:
INSERT table_name
VALUES ( constant1, constant2 )
例4 :在表 manufact 中插入一条新记录,其字段 manu_code, manu_name, lead_time 的内容分别为 ‘HWC', 'Huawei', 15 。
SQL语言:
INSERT INTO manufact ( manu_code, manu_name, lead_time )
VALUES( 'HWC', 'Huawei', 15 )
操作结果是表Manufact 中增加了一条记录,通过 SELECT 查询语句:
SELECT *
FROM manufact
ORDER BY lead_time
查询数据库Manufact 的内容如 图5-5 所示:
1.4.3 修改 UPDATE 语句
功能:修改相应数据库表中记录。
基本语法如下:
UPDATE table_name
SET column_name1=expression1, column_name2=expression2 ...
WHERE search_conditions
例 6 :把例 5 中添加的记录内容改为 'TEC', 'Huawei', 23 。
SQL 语句:
UPDATE manufact
SET manu_code='TEC', manu_name='Huawei', 23
WHERE manu_name='Huawei'
操作结果是表 Manufact 中相应记录被修改,通过 SELECT 查询语句:
SELECT *
FROM manufact
ORDER BY lead_time
查询数据库 Manufact 的内容如 图5-6 所示:
1.4.4 删除 DELETE 语句
功能:删除相应数据库表中记录。
基本语法如下:
DELETE FROM table_name
WHERE search_condition
例7 :把例 6 中 manu_name 字段为 'Huawei' 的记录删除。
SQL语句:
DELETE FROM manu_fact
WHERE manu_name='Huawei'
操作结果是表 Manufact 中相应记录被删除,通过 SELECT 查询语句:
SELECT *
FROM manufact
ORDER BY lead_time
查询数据库 Manufact 的内容如 图5-7 所示:
小 结
数据库服务器负责组织管理存储于计算机存储介质上的数据,在关系数据库中它们是以一个数据库和表的形式来构成的。
INFORMIX提供了直接利用 SQL 语言同数据库服务器进行交互的工具: DB-Access 和 INFORMIX-SQL 。
SQL语句中对表记录的操作命令主要有: SELECT, INSERT, UPDATE, DELETE 。
习 题
5-1 数据库软件通常分为哪几层?它们是如何完成对数据库的操作?
5-2 如何查询数据库 stores7 中表 manufact 中所有制造商的名字?
5-3 如何在数据库 stores7 中表 manufact 中添加一条记录,内容为‘ TTT ’ , ‘ Kelpah ’, 18?