Orace 增删改查

Posted 冬天tao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Orace 增删改查相关的知识,希望对你有一定的参考价值。

 

数据库增删改查对数据库表的四种操作:

  • 增:insert, 增加数据
  • 删:delete,删除数据
  • 改: update,更新数据
  • 查:select,查找数据

一、insert

基本语法:insert into 表名 [(column[,column]) values (value[,value])

说明:1.插入的数据应该与字段数据类型相同

   2.数据的大小应该在规定的范围内。例如不能将一个长度为80的字符加入到长度为40的列中。

   3.在value中列出的列的位置必须与被加入列的位置相同

   4.字符和日期类型必须包含在单引号中

   5.插入空值。不指定或 insert into table value(null)

6.给表的每列都添加值,则可以不带列名。如 insert into table values (列值)

insert into test2 values(\'xiaoqiang\',36);

二、Update 表

基本语法:update 表名 set 列名=表达式[,表达式]where 条件

说明:1.update 语法可以用新值更新原有表中的旧值,set 字句指示要修改哪些列和要给予哪些值

   2.update 用来修改列值

   

   3.将每个人的奖学金提高50%

   update test set scolarship =scolarship*1.5;

   

  4.将没有奖学金的人的奖学金改为750,注意null字段的判断

   update test set scolarship=750 where scolarship is null;

   

三、delete

基本语法: delete 表名 where 条件

说明:

  1.如果不使用where 字句,将删除表中所有的数据

  2.delete 语句不能删除某一列的值

  3.使用delete 仅删除表记录,不删除表本身。如果要删除表,使用drop table 语句

  4.同update和insert 一样,从一个表中删除记录将引起其他表的参照完整性问题,在修改数据库数据时,头脑中始终不能忘记这个潜在的问题

  删除表的几种方法比较:

  1.delete from 表名;

    删除所有记录,表结构还在,写日志,可以恢复,删除速度慢。

  

2.drop table 表名

 删除表的结构和数据

3.truncate table 表名

  删除表中所有记录,表结构还在,不写日志,无法找回删除的表记录。速度快。

  和delete 相比,truncate 无法添加where字句。

四、select

基本语法:select [distinct]*{colum1,column2....}from 表名 [where {条件}];

说明:

  select: 指定要查哪些列的数据

  column:指定列名

  * :代表所有列

  from: 指定查询哪张表

  distinct 可选,指显示结果时是否删除重复数据

  1. 查询所有列和指定列

  select * from 表名

  select 列名1,列名2 from 表名

  注: 尽可能返回较少的列

  2 如何取消重复行

  select distinct deptno job from emp;

     //返回的数据完全一样才是重复行

  select sal,job from emp where name=\'Smith\'; //引号中的内容区分大小写,SQL语句其他部分不区分大小写。

  3. Oracle 查询中使用算数表达式

  显示每个员工工资

  select ename,sal*13 from emp;

  select ename,sal*13+comm*2 from emp;  如果comlumn 为空,则sal*13+comm*2 为空,空的算数运算为空,如何解决这个问题?

  oracle 提供相关的函数:

  select ename, sal*13+nvl(comm,0)*2 from emp;

      nvl(comm,0):如果comm为空,返回0;否则返回comm.可用于处理null的问题。

  注:可以使用别名Oracle 使用别名时要用双引号,也可以不使用双引号。

      select ename,sal*13+nvl(comm,0) [as] "年薪" from emp;

 

 

 

  字符串连接(报表时可以使用)||

  select ename || \'is\' ||job from emp;    在查询时如果希望把多列拼接起来,作为一列返回,可以使用||

  select \'工号为\'||FNumber||\'的员工姓名为\'||FName from T_employee where FName is not null

 

  除了"||" Oracle 还支持使用Concat()函数进行字符串拼接。如:select CONCAT(\'工号:\',FNumber) from T_Employee

  如果CONCAT中连接的不是字符串,Oracle会尝试将其转换为字符串。如执行下面的SQL语句:select concat(\'员工:\',FAge) from T_employee; // FAge 被转为字符串型

  多个字符串拼接的话,可以使用多个函数CONCAT()嵌套使用。如:select CONCAT(CONCAT(CONCAT(’工号:‘,FNumber)),FName) from T_employee;

  

  

 

 

   

  

 

以上是关于Orace 增删改查的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-增删改查简易操作

Laravel框架——增删改查

库表的增删改查

mysql数据库增删改查

mysql增删改查

django配置模型增删改查