Oracle操作表中的数据


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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值