Oracle系列三 :Oracle 增删改查

步入正题,大数据项目筹备阶段,我感觉我成数据管理员了, 天天就是各种导数据, 天天写SQL,所以就想多了解一下更深入的知识点。比如:各种优化, 存储过程,触发器,索引等方面的知识
我们循序渐进, 这里先说说《增删改查》

首先创建一个测试用表:

create table TEST
(
  id       VARCHAR2(30),
  name     VARCHAR2(30),
  sex      NUMBER(1),
  birthday TIMESTAMP(6)
)

1、新增

语法

--插入表所有字段,按照字段顺序插入
INSERT INTO 表名称 VALUES (值1, 值2,....);

--也可以插入指定列,只要前后列对应就好
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);

样例:

--第一种,所有列都插入数据
insert into test values('1','tom',1, sysdate);

--第二种,插入指定列
insert into test(id,name,sex) values('2','lily',2)

批量插入:

我在数据整理中, 有过这种想法,把一个表中的某些数据复制到另一张表中,或者说多表查询出来的结果,放到另一张表中存储起来,该怎么操作呢?
(这个自己找个表测试下,我就不测试了,语句保证没问题)

insert into test(id,name) select t.open_id,t.name from test_user t where rownum <= 10

这里注意: 没有values字段,每次写这个语句,都想加上values,这里是没有的。还有列对应的字段类型要匹配

2、更新

语法

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

样例:

update test set name='lucy' where name='tom'

更改前:

id name sex birthday
1 tom 1 30-MAY-18 10.49.53.000000 AM
2 lily 2

更改后:

id name sex birthday
1 lucy 1 30-MAY-18 10.49.53.000000 AM
2 lily 2

如果想更改多列:

UPDATE 表名称 SET 列名称1 = 新值1,列 名称2 = 新值2, 列名称3 = 新值3  WHERE 列名称 = 某值

注意这里列的分隔用的是逗号“,”, 我以前老是写 “and”,多注意下就好了

update test set name='sb', sex=3 where id='2'

结果为:

id name sex birthday
1 lucy 1 30-MAY-18 10.49.53.000000 AM
2 sb 3

3、删除

删除操作用的比较少,因为公司不会让你真正删除数据的, 万一删除错误,数据是很难找回的(还是可以找回,但是一般公司都不会让真正删除操作)。一般公司的删除都是逻辑删除,也就是update更新操作。设置一列:isDelete,1:表示删除,0:表示未删除,来表示是否该行数据是否有效。
这里我们不用逻辑删除, 我们这里讲下真正的删除操作:delete

语法:

DELETE FROM 表名称 WHERE 列名称 = 值

样例:

delete from test where name='sb'

结果:

id name sex birthday
1 lucy 1 30-MAY-18 10.49.53.000000 AM

注意:特别说一点,每次删除一定要添加 where条件,否则像如下

delete from test

表示删除表所有数据。除非你真要删除所有,否则一定要添加条件限制,这个删除操作是非常危险的。(听说一个互联网公司程序员,把正式表里的数据删除了,还用的是永久删除,不可恢复那种,都坐牢了,不知道真的假的。所以说,删除是很危险的,一定要谨慎)

4、删除表:

语法:

drop table 表名;

注意事项同上↑, 这里不再啰嗦

5、查询

这个是比较多用到的, 也涉及到很多性能问题,这里先介绍基本查询功能,性能等问题下一篇在做介绍

语法:

--查询指定列
SELECT 列名称 FROM 表名称 

--查询所有列
SELECT * FROM 表名称

样例:

select * from test

结果:

id name sex birthday
1 lucy 1 30-MAY-18 10.49.53.000000 AM

总结:

关于查询的知识还是比较多的,多表联合查询,自连接,内外连接等等,还有什么时候适合建立索引,怎么样写SQL性能更高等。。。

下一篇:

猜你喜欢

转载自blog.csdn.net/qq_19467623/article/details/80507030
今日推荐