菜鸟菜菜的问关于InterBase的SQL语句问题: (100分送上)
大家好, 我是名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);
----------------------------------
回答时请在前面注明所答问题编号, 谢谢!