Informix数据库SQL介绍
INFORMIX SQL 介绍
一、简介:
1)、INFORMIX主要产品分为三大部分:
?; 数据库服务器(数据库核心)
?; 应用开发工具
?; 网络数据库互联产品
2)、数据库服务器有两种,作用都是提供数据操作和管理:
?; SE:完全基UNIX操作系统,主要针对非多媒体的较少用户数的应用
?; ONLINE:针对大量用户的联机事务处理和多媒体应用环境
3)、应用开发工具是用以开发应用程序必要的环境和工具,主要也有两个系列:
?; 4GL:INFORMIX传统的基字符界面的开发工具,该系列的主要产品有五个,他们是I-SQL、4GL RDS、4GL C COMPILER、4GL ID和ESQL/C;
?; NewEra:INFORMIX最新提供的具有事件驱动能力、面向对象的基各种图形界面的开发工具。
4)、INFORMIX的网络数据库互联产品:提供给用户基多种工业标准的应用程序接口,通过它可以和其它遵守这些工业标准的数据库联接。
二、I-SQL菜单简介:
Form可以执行、创建、修改、编译屏幕格式或删除已存在的屏幕格式
Run执行某一已经存在的屏幕格式
Modify修改指定的已经存在的屏幕格式
Generate 为指定的表创建一个缺省的屏幕格式
Compile编译一个制定的屏幕格式
New创建特定的用户屏幕格式
Drop删除某已经存在的格式文件
Exit退出Form菜单
Report 可以执行、建立、修改、编译、或删除报表
Run执行某一报表
Modify修改指定的报表
Generate 为某一个表建立一个缺省的报表
New建立一个用户指定的报表
Compile编译指定的报表
Drop删除一个指定的已经存在的报表
Exit退出Report菜单
Query-Language详见实用程序说明:dbaccess
User-menu 可以执行、建立或修改用户建立的菜单
Run执行当前数据库的用户菜单
Modify允许用户建立或修改用户菜单
Exit退出User-menu菜单
Database详见实用程序说明:dbaccess
Table详见实用程序说明:dbaccess
Exit退出实用程序isqlrf(或isql)
三、常用操作:
?; 创建数据库
ISQL==》DATABASE==》CREATE==》输入新建数据库名称
?; 创建表
ISQL==》TABLE==》CREATE==》输入欲建的表名==》ADD
==》输入欲建的字段名及类型等==》EXIT==》BUILD-NEW-TABLE
?; 生成缺省表格式
ISQL==》FORM==》GENERATE=》选择数据库==》输入表格式名称==》选择表==》TABLE-SELECTION-COMPLETE-----》编译成功==》RUN
四、使用RDSQL(交互式查询语言)编写SQL语句
方法:ISQL==》Query Langavage==》NEW==》RUN
?; 建立数据库
CREATE DATABASE数据库名
?; 建表(格式及可选数据类型)
基本格式:
CREATE TABLE表名
(字段名类型,
字段名类型,
---字段名类型);
详细定义:
CREATE TABLE表名
(COL1INTEGER NOT NULL,
COL2CHAR(2)CHECK ( COL2IN (“??”,“??”),
COL3DATE DEFAULT TODAY,
COL4SMALLINT UNIQUE,
---字段名类型)
FRAGMENT BY ROUND ROBIN (BY EXPRESSION)IN DB1,DB2
EXTENT SIZE 1000 NEXT SIZE 600
WITH NO LOG (LOG;BUFFERED LOG;LOG MODE ANSI
LOCK MODE ROW(PAGE);
例1:
CREATE TABLE ORDERS
(ORDER_NUM INTEGER
UNIQUE CONSTRAINT ORDER_NUM_UQ,
ORDER_DATE DATE
NOT NULL CONSTRAINT ORDER_DA TE_NN
DEFAULT TODAY ;
例2:
CREATE TABLE CUSTOMER (
CUSTOMER_NUM SERIAL,
FNAME CHAR(20),
PRIMARY KEY (CUSTOMER_NUM)
CONSTRAINT PK_CNUM
);
CREATE TABLE ORDERS (
ORDER_NUM SERIAL,
CUSTOMER_NUM INTEGER,
FOREIGN KEY (CUSTOMER_NUM)
REFERENCES CUSTOMER
CONSTRAINT FK_CNUM
);
数据类型:
字符型(CHAR(20)),V ARCHAR(MINSIZE, MAXSIZE)
数值型(六种,DECIMAL(16,2),SMALLINT,INTEGER,SMALLFLOAT,FLOAT,SERIAL ) 日期型( DATE,默认格式为:MM/DD/YYYY )
**要修改DATE类型的缺省格式, 只要在用户主目录的.profile文件中做如下说明: DBDATE=Y4MD/
EXPORT DBDA TE**
货币型(MONEY (8,2))
其它(如:INTERV AL,DA TETIME等)
?; 建立索引(必须建立命名索引)
CREATE[ UNIQUE ]INDEX索引名ON表名(字段名)
CREATE[ UNIQUE ]INDEX索引名ON表名(字段名)DISABLED;
SET INDEXES索引名ENABLED
DROP INDEX索引名
?; 数据库权限
CONNECT:访问数据库
RESOURCE:允许用户建立或清除数据库中的表和索引
DBA:数据库管理员,所有权限,一般建表者即为DBA
GRANT权限TO〈PUBLIC | 用户名〉
REVOKE权限FROM〈PUBLIC | 用户名〉
?; 检索数据库
DA TABASE数据库名
SELECT * FROM表名
SELECT字段名,字段名FROM表名
SELECT字段名,字段名+-*/新字段名FROM表名
SEKECT A VG(字段) ,MIN(),MAX(),SUM(),COUNT()FROM表名
WHERE子句 =〈〉!=< <=>>=
MATCHES* 0多个? 单个[ ] 单个字符或一个范围\ 转义下一个字符
LIKE %:0--多个 _ 单个\ 转义下一个特殊字符
ORDER BY(DESC)
时间函数: DAY MDY MONTH WEEKDAY YEAR DATE CURRENT
其它函数:LENGTH USER CURRENT TODAY
从多个表中查找, SELECT嵌套
字段名不同可直接写出,若不同表中有相同字段名,则前缀表名
SELECT表一.字段名FROM表一, 表二
向表中插入数据
INSERT INTO表名 [ 列1, 列2。。。。]V ALUES [ ]
修改
UPDATE表名SET字段名=WHERE
删除
DELETE FROM表名WHERE
修改表的结构:
例1:
ALTER TABLE表名
DROP COL2 ,
MODIFY COL1INTEGER NOT NULL ,
ADD COL4INTEGER ,
ADD COL3CHAR(20)BEFORE COL4;
例2:
ALTER TABLE ORDERS
MODIFY NEXT SIZE300;
改名:
RENAME COLUMN TABLE。COL TO NEWCOL_NAME
RENAME TABLE TABLE_NAME TO NEWTABLE_NAME
RENAME DATABASE DA TABASE_NAME TO NEWDATABASE_NAME 删除:
DROP TABLE TABLE_NAME
DROP DATABASE DATABASE_NAME
练习题:
建立一个公司职员库,其中包含一个公司职员表,内容包括:
EMPLOYEE_NAME , EMPLOYEE_NUM, HIRE_DATE ,SALARY等