zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
    用户画像——“打标签”
    python replace函数替换无效问题
    python向mysql插入数据一直报TypeError: must be real number,not str
    《亿级用户下的新浪微博平台架构》读后感
    【2-10】标准 2 维表问题
    【2-8】集合划分问题(给定要分成几个集合)
    【2-7】集合划分问题
    【2-6】排列的字典序问题
    【2-5】有重复元素的排列问题
  • 原文地址:https://www.cnblogs.com/jmwm/p/7289821.html
Copyright © 2011-2022 走看看