• DDL与DML语句


    1. DDL语句

    SQL语句:结构化查询语句,使用SQL与数据库“沟通”,完成相应的数据库操作。

    l DDL:数据定义语言,用来维护数据库对象

    1.1 创建表

    Ø CREATE:创建表

    演示:创建员工表

    CREATE TABLE employee(

    id NUMBER(4),

    name VARCHAR2(20),

    gender CHAR(1),

    birth DATE,

    salary NUMBER(6,2),

    job VARCHAR2(30),

    deptno NUMBER(2)

    );

    Ø DESC:查看表的数据结构

    演示:查看创建的员工表

    DESC employee;

    clip_image002

    Ø DEFAULT:设置默认值

    可以通过DEFAULT子句给列指定默认值

    演示:建表时给gender默认值为”M”

    CREATE TABLE emptest(

    id NUMBER(4),

    name VARCHAR2(20),

    gender CHAR(1) DEFAULT 'M',

    birth DATE

    );

    Ø NOT NULL:非空

    默认情况下,任何列都允许有空值。非空(NOT NULL)是一种条件约束,用于确保字段值不为空,当某个字段被设置了非空约束条件,这个字段中必须存在有效值,即:当执行插入数据操作时,必须提供这个列的数据;当执行更新操作时,不能给这个列的值设置为NULL。

    演示:创建员工表设置那么为非空字段

    CREATE TABLE emptest(

    id NUMBER(4) ,

    name VARCHAR2(20) NOT NULL,

    gender CHAR(1) DEFAULT 'M',

    birth DATE

    );

    clip_image004

    1.2 修改表

    Ø RENAME:修改表名

    演示:修改表名

    RENAME emptest to testemp;

    Ø ALTER TABLE的ADD子句

    增加列,列只能增加在最后,不能插入现有的列中。

    演示:在testemp表下面增加hiredate列,并将默认值设置为当前时间

    ALTER TABLE testemp ADD(hiredate DATE DEFAULT sysdate);

    Ø ALTER TABLE的DROP子句

    删除列,删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。

    演示:删除testemp表下的hiredate

    ALTER TABLE testemp DROP (hiredate);

    Ø DROP删除表

    DROP TABLE emptest;

    Ø ALTER TABLE的MODIFY子句

    修改列,使用MODIFY可以改变表中列的数据类型、长度和默认值,注意这种修改仅对以后插入的数据有效。另外如果表中已经有数据的情况下,把长度由大改小,有可能不成功,比如原来类型是VARCHAR2(100),其中已经存放了100字节长度的数据,如果改为80字节,则不会修改成功。

    演示:修改testemp表中name的长度为30

    ALTER TABLE testemp MODIFY(name VARCHAR2(30));

    2. DML语句

    l 用于增删改表中数据,DML是伴随TCL事务控制的。

    Ø INSERT

    INSERT语句用来给数据表增加记录,每次增加一条记录。所有的DML操作,需要再执行事务提交语句COMMIT才算真正确认了此操作。

    演示:想testemp中插入一条记录

    INSERT INTO testemp (id,name,gender) VALUES (1,'张三','M');

    COMMIT;

    clip_image006

    插入数据时忽略字段则是全列插入,顺序不能错误,如下:

    INSERT INTO testemp VALUES (10,'李四','F',sysdate);

    COMMIT;

    Ø UPDATE

    更新表中的记录,需要配合WHERE子句使用,否则全表的数据都会被更新。

    演示:更新testemp表中张三的ID为2

    UPDATE testemp SET id=2 WHERE name='张三';

    COMMIT;

    clip_image008

    同时修改两个类型:

    UPDATE testemp SET id=5,name='王五' WHERE name='李四';

    COMMIT;

    Ø DELETE

    删除表中的记录,和UPDATE一样,需要配合WHERE子句使用,不然会将全表数据删除。

    演示:将testemp表中id为2的记录删除

    DELETE FROM testemp WHERE id=2;

    清空表:

    DELETE FROM testemp;

  • 相关阅读:
    C++的常量折叠(一)
    如何写面向互联网公司的求职简历
    所有的程序员都是自学成才
    [一个经典的多线程同步问题]解决方案一:关键段CS
    [一个经典的多线程同步问题]问题引入
    多线程笔记--原子操作Interlocked系列函数
    【分治法】归并分类
    内存字节对齐一网打尽,再也不纠结
    在C语言中基本数据类型所占的字节数
    多线程笔记--先了解工具
  • 原文地址:https://www.cnblogs.com/jmwm/p/7289821.html
Copyright © 2020-2023  润新知