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 增删改查的主要内容,如果未能解决你的问题,请参考以下文章