步入正题,大数据项目筹备阶段,我感觉我成数据管理员了, 天天就是各种导数据, 天天写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性能更高等。。。
下一篇: