服务器 频道

Informix SQL 语句详解

  【IT168 服务器学院】1.CREATE  DATABASE  database_name [WITH  LOG  IN “pathname”]
  创建数据库。
  database_name:数据库名称。
  “pathname”:事务处理日志文件。
  创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能使用
  BEGIN  WORK等事务语句(可用START  DATABASE语句来改变)。
  可选定当前数据库的日志文件。
  如:select  dirpath  form  systables  where  tabtype = “L”;
  例:create  databse  customerdb  with  log  in “/usr/john/log/customer.log”;

  2.DATABASE  databse-name [EXCLUSIVE] 
  选择数据库。
  database_name:数据库名称。
  EXCLUSIVE:独占状态。
  存取当前目录和DBPATH中指定的目录下的数据库,事务中处理过程中不要使用此语句。

  例:dtabase  customerdb;

  3.CLOSE  DATABASE
  关闭当前数据库。
  database_name:数据库名称。
  此语句之后,只有下列语句合法:
  CREATE  DATABASE;  DATABASE;  DROP  DATABSE;  ROLLFORWARD  DATABASE;
  删除数据库前必须使用此语句。
  例:close  database;

  4.DROP  DATABASE  database_name
  删除指定数据库。
  database_name:数据库名称。

  用户是DBA或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数据库);事务中处理过程中不能使用此语句,通过ROLLBACK  WORK 也不可将数据库恢复。

  例:drop  databse  customerdb;

  5.CREATE [TEMP]  TABLE  table-name (column_name  datatype [NOT  NULL], …)

  [IN “pathname”]

  创建表或临时表。

  table-name :表名称。

  column_name:字段名称。

  data-type:字段数据类型。

  path-name:指定表的存放位置

  TEMP用于指定建立临时表;表名要唯一,字段要唯一;有CONNECT权限的用户可建立临时表;创建的表缺省允许CONNECT用户存取,但不可以ALTER。

  例:create  table  user

  (  c0  serial  not  null,  c1  char (10),

  c2  char(2),

  c3  smallint,

  c4  decimal(6,3),

  c5  date

  )  in “usr/john/customer.dbs/user;

  6.ALTER  TABLE

  ALTER  TABLE  table-name

  {ADD (newcol_name  newcol_type [BEFORE  oldcol_name], …) |  DROP (oldcol_name, …)

  |  MODIFY (oldcol_name  newcol_type [NOT  NULL], … )}, …

  修改表结构。

  table-name:表名称。

  newcol_name:新字段名称

  newcol_type:新字段类型

  oldcol_name:老字段名称

  可 以使用单个或多个ADD子句、DROP子句、MODIFY子句,但某个字句失败,操作即中止;原字段是NULL,不允许MODIFY为NOT  NULL,除非所有NULL字段中均非空,反之可以;ALTER使用者是表的拥有者或拥有DBA权限,或被授权;事务中处理过程中不要使用此语 句。

  例:alter  table  user

  add (  c6  char(20)  before  c5);

  7.RENAME  TABLE  oldname  TO  newname

  修改表名。

  oldname:原名称。

  newname:新名称。

  RENAME使用者是表的拥有者或拥有DBA权限,或被授权;事务中处理过程中不要使用此语句。

  例:rename  user  to  bbb;

  8.DROP  TABLE  table-name

  删除表。

  table-name:表名称。

  删除表意味着删除其中所有数据、各字段上的索引及对表的赋权、视图等;用户不能删除任何系统目录表;语句使用者是表拥有者或拥有DBA权限,事务中处理过程中不要使用此语句。

  9.RENAME  COLUMN  table.oldcolumn,  TO  newcolumn

  修改字段名。

  table.oldcolumn:表名及原字段名称

  newcolumn:新字段名称。

  语句使用者是表的拥有者或拥有DBA权限或有ALTER权限的用户,事务中处理过程中不要使用此语句。

  例:rename  column  user.c6  to  c7;

  10.  CREATE  VIEW  view-name  column-list

  CREATE  VIEW  view-name  column-list  AS  select_statement [WITH  CHECK  OPTION]

  创建视图。

  view-name:视图名称。

  column-list:字段列表。

  select_statement:SELECT语句。

  以 下语句不使用视图:ALTER  TABLE,DROP  INDEX,ALTER  INDEX, LOCK  TABLE,CREATE  INDEX,  RENAME  TABLE;视图 将延用基表的字段名,对表达式等虚字段和多表间字段重名必须指明标识其字段名;若对视图中某些字段命名,则所有字段都必须命名;视图中数据类型延用基表中 的数据类型,虚字段起诀于表达式;不能使用ORDER  BY和UNION子句;对视图中所有的字段要有SELECT权限;事务中处理过程 中使用此语句,即使事务回滚,视图也将建立,不能恢复。

  例:create  view  v_user  as  select *  from  user  where  c1 = “B1”;

   
  

0
相关文章