• 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:

       

        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:

        

    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通过下面例子说明,以下举例:

      2. 重命名表格

        RENAME oldtablename TO newtablename;

     

    --The end, to be continued...

  • 相关阅读:
    [LUOGU] NOIP提高组模拟赛Day1
    关于NX Check_Mate功能外部开发心得
    hibernate增删改
    eval转json
    day24(JAVAWEB上传与下载)
    struts2执行流程
    oracle之简单总结
    设计模式之装饰者模式
    第五周学习总结
    第四周学习总结
  • 原文地址:https://www.cnblogs.com/imjustice/p/2198117.html
Copyright © 2020-2023  润新知