zoukankan      html  css  js  c++  java
  • oracle数据库之数据插入、修改和删除

      作为一合格的测试人员对数据库的单表查询、多表查询、分组查询、子查询等等这些基本查询方法还是要会的。不然到企业中,容易被一些人鄙视,或者说如果数据库学不好,表查不明白,那么对自己能力来说也是一种侮辱,因为你可以证明自己,你是可以的,尤其是你在面试的时候面对面试官的给你出的一道sql语句题目,你能马上用你的套路把这道题做出了,那么恭喜你过了第一个小关卡。ok,我们今天学习一下数据库中的第一个查询,也是最简单,容易入门的查看----表的一些操作。

    我们在上一篇中创建了一个classinfo和studentinfo表,这两个表都是没有任何数据的。如下图所示:

    我们在看看studentinfo表

    select * from classinfo;   --用于查询班级表的sql 

    select * from studentinfo;   --用于查询学生表的sql

    --向数据中插入数据 insert into用法

    那么我们接下来往表中插入数据,插入数据的套路有两种比较常用的方法,我们先看第一种方法,请看 insert into关键字的正确使用姿势。我们先向classinfo表中插入如下数据:01,测试1班     02,测试2班   03,测试3班 , 04 测试4班(插入数据时,一定要注意插入数据的类型和约束,不要违背我们创建表时的约束,具体可以看我的上一篇介绍---oracle创建表操作) ,好继续看表演:

    insert into classinfo(classid,classname) values(01,'测试一班');
    insert into classinfo(classid,classname) values(02,'测试二班');
    insert into classinfo(classid,classname) values(03,'测试三班');
    insert into classinfo(classid,classname) values(04,'测试四班');
    commit;
    
    --commit  是一次性提交到数据库保存,不commit就不会真正存储到数据库中。
    --rollback 是回滚操作,代表的意思就是不commit就可以回滚到上一次操作

    我们向classinfo表中插入了4条数据,看一下sql解析:

    insert into ---插入表的sql关键字

    classinfo ---插入数据的表的名字 

    classid ,classname ---表中的列名

    values ---插入数据的 sql 关键字 

    我们看一下插入后的结果,插入运行完成后,需要select * from classinfo这个表来看一下,有没有成功。如下图:

    很完美,插入完成了,插入成功以后,如果我们向提交到数据库中,需要commit一下,不然只是临时创建成功,没有真正保存到数据库中。然后我们继续往studentinfo表中插入一些数据,看表演:

    insert into studentinfo
      (studentid,
       studentname,
       studentsex,
       studentage,
       studenttel,
       studentaddress,
       classid)
    values (1, '张山', '', 15, '13789895566', '北京',1);

     我们看一下插入后的结果:

    OK,我们在看第二种插入方式,第二种的方式比第一种更加的方便,如果明确要往表中插入数据,可以省掉values前面的列名。我们来看一下插入的sql语句:

    insert into studentinfo values(2,'李四','',18,'1325655563','南昌',2);
    insert into studentinfo values(3,'王五','','25','13855223322','深圳',3);
    insert into studentinfo values(4,'丽丽','','23','13256232236','新疆',4);

    查看一下插入后的结果。是不是很完美呢?那classinfo表,我就不给大家演示了,一样的套路。

    2.修改表中的数据 update  set用法 

    --修改某列数据

    我们现在呢,有需求了,比如我要修改studeninfo表中的数据呢?那么我们细化一下需求,比如修改某几行?修改某几列数据或者清空数据呢?

    --修改张山的性别为女
    update  studentinfo set  studentsex='' where studentid=1;
    select * from studentinfo;

    查询结果:

    --修改某几列数据

    update studentinfo set studentname='李五',studentsex='',studentage=15 where studentid=2;
    commit;
    select * from studentinfo;

    查询结果:

     

    --清空某几个数据 比如张山的sex 

    update studentinfo set studenttel=null where studentid=1;
    commit;
    select * from studentinfo;

    查看结果:

    --将所有数据中的age设置为女

    update studentinfo set studentsex='';
    commit;

    查看结果:

    update studentsex后面不接条件,默认修改所有数据。

    同样的,我们可以对表中的数据进行相加、相乘

    --对表中的数据进行想加运算

    --将张山的年龄增加10岁
    update studentinfo set studentage=studentage+10 where studentid=1;
    commit;

    查看结果:

    --对表中的数据进行相乘运算

    --将王五的年龄乘3岁
    update studentinfo set studentage=studentage*3 where studentid=3;
    commit;
    select * from studentinfo;

    查看结果:

    --删除表中的数据

    --删除表中的数据  关键字 delete from 表名 where 筛选条件
    --删除张山的数据
    delete from studentinfo where studentid=1;
    commit;

    查看结果:

    --删除李五和王五的信息
    delete from studentinfo where studentid=2 or studentid=3;
    commit;
    
    --我们使用的是or链接2个条件,使用and是不符合条件的,因为or是或的关系。

    查看结果:

    删除后只剩下丽丽的数据在这里,那如果我们想要把所有的数据都删除呢?换句话说就是把表删除了。看表演姿势:

    --删除studentinfo表 即删除整个表中所有的数据
    drop table studentinfo;

    删除后,在查询studentinfo表,提示该表不存在。

    OK,到此关于数据库中的插入/修改/删除等等基本操作就给大家分享完了。下一篇我们介绍单表查询。

    知识点总结:

    --插入数据 insert into     表名(列名) values(插入的数据)
    --修改数据 update         表名 set   where (筛选条件)
    --删除数据 delete from 表名 where(筛选条件)
    --删除表   drop table     表名 
     
  • 相关阅读:
    yii中sphinx索引配置解析
    Java HashMap工作原理及实现?
    Spring AOP 实现原理与 CGLIB 应用
    Spring 容器AOP的实现原理——动态代理
    代理模式(静态代理)
    Java中的字符串常量池
    JAVA对象的深度克隆
    重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
    访问修饰符public,private,protected和default的区别?
    Java中的字符串常量池?
  • 原文地址:https://www.cnblogs.com/fighter007/p/8287780.html
Copyright © 2011-2022 走看看