菜鸟菜菜的问关于InterBase的SQL语句问题: (100分送上)

zousoft 2003-08-20 10:46:48
大家好, 我是名InterBase的初学者, 在自学中遇到一些问题, 希望大家能帮我解决.

Q1:
如何判断我的InterBase是单机版还是网络版? 我在Help里只看到InterBase6.5没看到具体是什么版. 在哪里或有什么功能可以区分出我的InterBase是什么版本?
---------------------------------
Q2:
CREATE TABLE STOCK (
MODEL SMALLINT NOT NULL,
MODELNAME CHAR(10) NOT NULL,
CONSTRAINT MOD_UNIQUE UNIQUE (MODEL, MODELNAME));

CREATE TABLE STOCK (
MODEL SMALLINT NOT NULL UNIQUE,
MODELNAME CHAR(10) NOT NULL UNIQUE);
有什么区别? Help里说前者UNIQUE是基于表的, 后者是基于列的. 我不太明白, 使用中有什么影响呢?
---------------------------------
Q3:
CREATE TABLE BOOKADVANCE (
BOOKNO CHAR(6),
TITLE CHAR(50) COLLATE ISO8859_1,
EUROPUB CHAR(50) CHARACTER SET ISO8859_1 COLLATE FR_FR);
是什么意思呀? ISO8859_1, FR_FR是干什么的?
---------------------------------
Q4:
CREATE TABLE DEPARTMENT
(
DEPT_NO DEPTNO NOT NULL,
MNGR_NO EMPNO,
HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
FULL_NAME COMPUTED BY (last_name || ', ' || first_name),
PRIMARY KEY (DEPT_NO)
);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO);
为什么外键总要最后再添上, 在建表时直接写上不好吗?
TIMESTAMP是什么意思与DATE和TIME有什么区别?
COMPUTED BY (last_name || ', ' || first_name)中的表达式是什么意思? 尤其是||
---------------------------------
Q5:
CREATE TABLE JOB
(
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400,
LANGUAGE_REQ VARCHAR(15)[1:5] ,
PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY)
);
其中LANGUAGE_REQ的定义是什么意思? 是个下标从1到5的数组吗? 为什么我用select * from job看不到这个字段?
BLOB SUB_TYPE TEXT SEGMENT SIZE 400这句中BLOB的SUB_TYPE除了有TEXT类型外, 还有什么类型?
---------------------------------
Q6:
The following isql statements deactivate and reactivate an index to rebuild it:
ALTER INDEX BUDGETX INACTIVE;
ALTER INDEX BUDGETX ACTIVE;
索引的rebuild有什么用? 而且是不是不能对UNIQUE, PRIMARY KEY, 或FOREIGN KEY操作?
---------------------------------
Q6:
存储过程和触发器中的EXIT和SUSPEND有什么区别? 两者分别在什么时候用?
---------------------------------
Q7:
SHADOW有什么用? CREATE SHADOW()怎么用?
---------------------------------
Q8:
SET TERM !! ;
CREATE TRIGGER POST_NEW_ORDER FOR SALES
AFTER INSERT AS
BEGIN
POST_EVENT 'new_order';
END !!
SET TERM ; !!
存储过程和触发器中的POST_EVENT 'new_order'有什么用? 怎么使用?
---------------------------------
Q9:
CURSOR有什么用? 与视图有什么区别? 怎么用?
---------------------------------
Q10:
建立视图的WITH CHECK OPTION有什么用?
CREATE VIEW HALF_MILE_CITIES AS
SELECT CITY, STATE, ALTITUDE
FROM CITIES
WHERE ALTITUDE > 2500
WITH CHECK OPTION;
为什么这句不行:
INSERT INTO HALF_MILE_CITIES (CITY, STATE, ALTITUDE)
VALUES ('Chicago', 'Illinois', 250);

而这句允许:
INSERT INTO HALF_MILE_CITIES (CITY, STATE, ALTITUDE)
VALUES ('Truckee', 'California', 2736);
----------------------------------

回答时请在前面注明所答问题编号, 谢谢!
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sduzjw 2003-08-22
  • 打赏
  • 举报
回复
UNIQUE约束可以基于字段,也可以是表一级的,如果是一个字段则是基于列的,否则是基于表的,就跟主键一个样,
外键可以在建表时一起添加,alter table是原先的表中没有,后来想加时才修改表,加的时候起一个名字,以后将来可以DROP掉此外键,根据名字,
hp0773 2003-08-22
  • 打赏
  • 举报
回复
帮你顶一下
zousoft 2003-08-22
  • 打赏
  • 举报
回复
没有人会InterBase吗?
mashuo 2003-08-22
  • 打赏
  • 举报
回复
Q2中CONSTRAINT MOD_UNIQUE UNIQUE (MODEL, MODELNAME)约束的是表中的所有字段,所以是基于表的, 而后者是基于列的。
Q4中TIMESTAMP是带日期的时间,也可以说是DATE和TIME的结合吧
Q6中EXIT和SUSPEND在执行式时都是跳到最后一个END语句上。而在选择式时SUSPEND将挂起存储过程的执行,直到下一个FETCH为止,并且输出参数传出,EXIT挑到最后一个END语句。
Q8中POST_EVENT是先前声明的一个事件,他的内容是字符串'new_order'。
Q9中CURSOR是游标,主要是用来FETCH一个一个取数据的。
Q10中WHERE ALTITUDE > 2500 WITH CHECK OPTION说明ALTITUDE字段要大于2500才有效。
我也仅知道这些希望对你有帮助,
http://expert.csdn.net/Expert/topic/2027/2027622.xml?temp=.0187189去下载看看吧
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理之三,主要讲解以下内容:1.     PostgreSQL约束讲解和剖析2.     PostgreSQL数据类型3.     PostgreSQL的结构管理4.     PostgreSQL条件表达式和操作5.     PostgreSQL使用小技巧

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧