Oracle操作表中的数据
一、添加数据
-
insert into 表名 (列1,列2,…) values(值1,值2,…);
-
向表中所有字段添加值
# 创建表 SQL> create table userinfo2(id number(6,0), username varchar2(20), userpwd varchar2(20), email varchar2(30), regdate date default sysdate); 表已创建。 # 插入数据 SQL> insert into userinfo2 values(1,'xxx','123123','xxx@126.com',sysdate); 已创建 1 行。 # 查询表 SQL> select * from userinfo2; ID USERNAME USERPWD ---------- -------------------- -------------------- EMAIL REGDATE ------------------------------ -------------- 1 xxx 123123 xxx@126.com 18-9月 -22
-
向表中指定字段添加值
# 插入数据 SQL> insert into userinfo2(id,username,userpwd) values(2,'yyy','123'); 已创建 1 行。 # 查询表 SQL> select * from userinfo2; ID USERNAME USERPWD ---------- -------------------- -------------------- EMAIL REGDATE ------------------------------ -------------- 1 xxx 123123 xxx@126.com 18-9月 -22 2 yyy 123 18-9月 -22
-
向表中添加默认值
SQL> insert into userinfo2(id) values(3); 已创建 1 行。 SQL> select * from userinfo2; ID USERNAME USERPWD ---------- -------------------- -------------------- EMAIL REGDATE ------------------------------ -------------- 1 xxx 123123 xxx@126.com 18-9月 -22 2 yyy 123 18-9月 -22 3 18-9月 -22
二、复制表数据
1、在建表时复制
- create table 新表名 as select 列1,…|* from 旧表名;
# 建表
SQL> create table userinfo_new as select * from userinfo;
表已创建。
# 建表时复制表
SQL> create table userinfo_new1 as select id,username from userinfo;
表已创建。
# 查看原表字段
SQL> desc userinfo_new
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
# 查看被复制表字段
SQL> desc userinfo_new1;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
# 查询原表内容
SQL> select * from userinfo_new;
ID USERNAME USERPWD
---------- -------------------- --------------------
EMAIL REGDATE
------------------------------ --------------
1 xxx 123
xxx@126.com 18-9月 -22
2 yyy 123123
1
# 查询被复制表内容
SQL> select * from userinfo_new1;
ID USERNAME
---------- --------------------
1 xxx
2 yyy
1
2、在添加时复制
- insert into 新表名 [(列1,…)] select 列1,…|* from 旧表名;
# 在添加时复制表
SQL> insert into userinfo_new select * from userinfo;
已创建4行。
# 查询新表数据
SQL> select id from userinfo_new;
ID
----------
1
2
3
4
1
2
3
4
已选择8行。
# 在添加时复制表
SQL> insert into userinfo_new(id,username) select id,username from userinfo;
已创建4行。
# 查询新表数据
SQL> select id,username from userinfo_new;
ID USERNAME
---------- --------------------
1 xxx
2 yyy
3
4
1 xxx
2 yyy
3
4
1 xxx
2 yyy
3
ID USERNAME
---------- --------------------
4
已选择12行。
三、修改数据
- update 表名 set 列1=值1,… [where 条件];
1、无条件更新
SQL> update userinfo set userpwd='111111';
已更新4行。
SQL> select userpwd from userinfo;
USERPWD
--------------------
111111
111111
111111
111111
SQL> update userinfo set userpwd='111',email='111@126.com';
已更新4行。
SQL> select userpwd,email from userinfo;
USERPWD EMAIL
-------------------- ------------------------------
111 111@126.com
111 111@126.com
111 111@126.com
111 111@126.com
2、有条件更新
SQL> select username from userinfo;
USERNAME
--------------------
xxx
yyy
SQL> update userinfo set userpwd='123456' where username='xxx';
已更新 1 行。
SQL> select username,userpwd from userinfo;
USERNAME USERPWD
-------------------- --------------------
xxx 123456
yyy 111
111
111
四、删除数据
- delete from 表名 [where 条件];
1、无条件删除
SQL> create table testdel as select * from userinfo;
表已创建。
SQL> delete from testdel;
已删除4行。
SQL> delete from testdel;
已删除0行。
SQL> select * from testdel;
未选定行
2、有条件删除
SQL> select username from userinfo;
USERNAME
--------------------
xxx
yyy
SQL> delete from userinfo where username='yyy';
已删除 1 行。
SQL> select username from userinfo;
USERNAME
--------------------
xxx