SQL常用语法回忆及备忘之表的创建及管理 - 1

以下SQL均在Oracle10g环境下编写

一、两个基本的查询表信息的语句:

1 查看这个用户下一共有多少表

    SELECT table_name

        FROM user_tables;

2 查看表结构

    DESCRIBLE/DESC example

二、表创建(Table Creation)

1 用'CREATE TABLE'创建表

    CREATE TABLE [schema] tablename

        (columnname datatype [DEFAULT value],

         columnname datatype [DEFAULT value], …);

    example

    CREATE TABLE student

(

    stu_id VARCHAR2(20),

    fname VARCHAR2(20),

    lname VARCHAR2(20),

    phone VARCHAR2(15)

);

    Ps. 表创建后如果要重新创建需要先用DROP语句把这个表格销毁掉才能重新定义。DROP详见后面。

2 用'CREATE TABLE … AS'来创建表

    CREATE TABLE tablename [(columnname, columnname,…)]

    AS (subquery)

    //列名可以不写出来,那样默认就是subquery选出来的名字

    example:

    CREATE TABLE stu2 (studentid, familyname)

    AS (SELECT stu_id, fname

FROM student)

    Result:

   

SQL常用语法回忆及备忘之表的创建及管理 - 1

    PS. 用着个方法创建表格不仅仅把结构都复制过来,里面的数据也都会原封不动的复制过来。

三、表格修改(Table modification)

1 用'ALTER'来修改表

    基本语法:

    ALTER TABLE tablename

    ADD|MODIFY|DROP COLUMN| columnname [definition]

1.1 ALTER TABLE … ADD 命令

ALTER TABLE tablename

ADD (columnname datatype, [DEFAULT] …)

    Example:

    

SQL常用语法回忆及备忘之表的创建及管理 - 1

1.2 ALTER TABLE … MODIFY 命令

ALTER TABLE tablename

MODIFY columnname datetype [DEFAULT], …

这条命令看上去简单,但是用的时候要注意,不是所有的数据类型都能顺利的转换成其他类型的数据类型的。

这条指令能够完成的任务有如下三条:

  1. 改变某一列的大小(SIZE),可以变大和变小
  2. 改变数据类型,如将VARCHAR2 改成 CHAR
  3. 改变或者增设某列的默认值(DEFAULT)

还有三个很重要的规定要遵守,否则会出现错误:

  1. 你改成的那个类型可以比原先的数据类型小,但是必须比存在表中的数据大。比如,原先有一列数据类型为VARCHAR2(10),存的最大的为长度为8的字符串,那么你可以将这个数据类型修改为8,但是不能小于8;
  2. 如果一个列的数据类型是NUMBER且里面装有数据,那么你不能修改它的精度和范围;
  3. 改变一列的默认值并不会改变这一列中已经存在的数据。

1.3 ALTER TABLE … DROP COLUMN 命令

ALTER TABLE tablename

DROP COLUMN columnname

example

ALTER TABLE student

DROP COLUMN fname;

  1. 这个命令的注意事项如下:

    1. 表格的最后剩下的一列不能drop
    2. 主码不能drop
    3. 这个是不可撤销的命令。

1.4 ALTER TABLE … SET UNUSED/DROP UNUSED COLUMNS 命令

ALTER TABLE tablename

SET UNUSED (columnname)

OR

ALTER TABLE tablename

SET UNUSED COLUMN columnname;

    1. 这个命令很简单,它的功能跟DROP的功能几乎是一样的,但是它存在肯定有它存在的理由。当Oracle10g中如果数据量很大,执行DROP指令的时候,会消耗很多很多系统资源,会严重印象其他SQL语句的执行。这个命令的功能就是将要删除的列标记为不可用,但是并没有物理上删除,等到系统比较空闲的时候在彻底删除这些列。需要注意的是虽然说这个指令执行后并未真正删除,但也无法恢复!DROP UNUSED COLUMNS通过下面例子说明,以下举例:

      SQL常用语法回忆及备忘之表的创建及管理 - 1

       

       

    2. 重命名表格

      RENAME oldtablename TO newtablename;

 

--The end, to be continued...

你可能感兴趣的:(sql)