Oracle5

    技术2022-05-20  45

    DML

    DML(Data Manipulation Language – 数据操作语言可以在下列条件下执行:

    • 向表中插入数据

    • 修改现存数据

    • 删除现存数据

    1、插入语句

    使用 INSERT 语句向表中插入数据。

    INSERT INTO table [(column [, column...])] 

    VALUES (value [, value...]);

    使用这种语法一次只能向表中插入一条数据

    //users表中插入一条完整的记录

    SQL> insert into users(username,password,name,address,zip) values('rrmy','1234','','北京',100089);

    备注:如果是字符串加’’ 如果是数字可与加’’也可以不加===>一般不加

    SQL> commit;

    注意:oracle数据库在DOS命令中执行插入,修改等操作时,必须手动完成提交。否则不会(正真)插入成功。

    在插入完整的记录是users()中的表对应的字段可以省略不写.但一定要与数据库中表的结构对应才行。

    //users表中插入一条非完整的记录

    SQL> insert into users(username,password) values('hy','123');

    //注意:在插入部分子段的时候,必须满足的表的约束条件,否则会出现如下异常信息。

    insert into users(username,password) values('hy ','123') 

    RA-01400: 无法将 NULL 插入 ("RED"."USERS"."NAME")

    SQL> insert into users(username,password,name) values('mj','123','马杰');

    1 row inserted

    SQL> commit; //必须手动提交

    Commit complete

    以上简单总结如下:

    为每一列添加一个新值。

    按列的默认顺序列出各个列的值。 

    在 INSERT 子句中随意列出列名和他们的值。 

    字符和日期型数据应包含在单引号中。

    补充知识点:

    隐式方式: 在列名表中省略该列的值

    SQL> insert into users(username,password,name) values('hy','123','');

    显示方式: 在VALUES 子句中指定空值。

    SQL> insert into users  values('test','123','test',null,null);

    常见面试题:

    //备份一张表

    SQL> create table usess as select * from users;

    //清空表中的记录

    SQL> delete from usess;

    //使用插入语句把users表中记录插入到usess中

    SQL> insert into usess(username,password,name,address,zip) select username,password,name,address,zip from users;

    SQL> commit

    注意:

    不必书写 VALUES 子句。 

    子查询中的值列表应于 INSERT 子句中的列名对应

    2、更新数据

    采用update语法进行更新数据:

    语法如下:

      UPDATE table 

      SET column = value [, column value, ...]

      [WHERE  condition];

    备注:一次可以更新多条记录

    //更新数据:更新users表 重新设置了passwrod 条件是唯一(主键是唯一)的条件。

    SQL> update users set password='123' where username='123';

    SQL> commit

    注意:当更新多个字段时,可以采用逗号进行区分.举例如下:

    SQL> update users set password='123' , name='123'  where username='rrmy';

    SQL> commit

    备注:如果省略WHERE子句,则表中的所有数据都将被更新

    SQL> update users set password='123' , name='123';

    6 rows updated

    SQL> commit; 

    Commit complete

    SQL> select * from users;

    USERNAME      PASSWORD      NAME             ADDRESS             ZIP

    -------------------- -------------------- -------------------- -------------------- -------

    huxz               123         123           北苑家园          100012

    liucy               123          123            清华园             100084

    redarmy          123          123            北京                100089

    rrmy              123         123            北京                100089

    mj                  123         123                                

    test                123        123                                 

    6 rows selected

    补充:在update语句中使用子查询

    //更新huxz的邮编与用户liucy的邮编一致

    SQL> update users set zip=(select zip from users where username='liucy') where username='huxz';

    //备注:在更新数据的时候 where条件中也可以使用子查询。

    3、删除数据

        在表中如果某些数据不在需要就可以使用delete语句进行删除,并释放该数据所占用的存储空间删除语法如下:

    DELETE [FROM]   table 

    [WHERE   condition];

    备注:delete语句只是从表中删除数据,不会删除表结构.删除表结构采用drop语句。

    注意:删除表中的数据时,一定要考虑表的约束(否则会出现一些异常信息)

    //清空表  delete from 表名 ||delete 表名  

    //删除数据 where条件与更新一致,必须保证唯一性(主键是唯一)条件

    SQL> delete from users where username='test';

    未完,待续......


    最新回复(0)