1 操作表中数据
添加
修改
删除
添加
INSERT INTO table_name
(column1,column2,...)
VALUES(value1,value2,...)
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
SQL> insert into userinfo
2 values(1,'xxx','123','736478610@qq.com',sysdate);
已创建 1 行。
SQL> select * from userinfo;
ID USERNAME USERPWD
---------- -------------------- --------------------
EMAIL REGDATE
------------------------------ --------------
1 xxx 123
736478610@qq.com 30-10月-16
向表中指定字段添加值
SQL> insert into userinfo(id,username,userpwd)
2 values(2,'yyy','123');
已创建 1 行。
SQL> select username,userpwd from userinfo;
USERNAME USERPWD
-------------------- --------------------
xxx 123
yyy 123
向表中添加默认值
create table userinfo1(
id number(6),
regdate date default sysdate);
SQL> create table userinfo1(
2 id number(6),
3 regdate date default sysdate);
表已创建。
SQL> insert into userinfo1
2 values(1);
insert into userinfo1
*
第 1 行出现错误:
ORA-00947: 没有足够的值
SQL> insert into userinfo1(id)
2 values(1);
已创建 1 行。
SQL> select * from userinfo1;
ID REGDATE
---------- --------------
1 30-10月-16
SQL> alter table userinfo
2 modify email default '无';
表已更改。
SQL> insert into userinfo(id)
2 values(3);
已创建 1 行。
SQL> select id,email from userinfo;
ID EMAIL
---------- ------------------------------
1 736478610@qq.com
2
3 无
SQL> insert into userinfo(id,email)
2 values(4,'aaa');
已创建 1 行。
SQL> select id,email from userinfo;
ID EMAIL
---------- ------------------------------
1 736478610@qq.com
2
3 无
4 aaa
2 复制表
在建表时复制
添加时复制
as
SELECT column1,...|*FROM table_old
[(column1,...)]
SELECT column1,...|*FROM table_old
SQL> insert into userinfo_new
2 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)
2 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行。
3
修改数据
UPDATE语句
UPDATE table_name
SET column1 = value1,...
[where conditions]
无条件更新
SQL> update userinfo
2 set userpwd = '111111';
已更新4行。
SQL> select userpwd from userinfo;
USERPWD
--------------------
111111
111111
111111
111111
SQL> update userinfo
2 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 set userpwd = '123456'
3 where username = 'xxx';
已更新 1 行。
SQL> select username,userpwd from userinfo;
USERNAME USERPWD
-------------------- --------------------
xxx 123456
yyy 111
111
111
3 删除数据
DELETE语句
DELETE FROM table_name
[WHERE conditions]
无条件删除
SQL> create table testdelete1
2 as
3 select * from userinfo;
表已创建。
SQL> delete from testdelete1;
已删除4行。
SQL> select * from testdelete1;
未选定行
有条件删除
SQL> delete from userinfo
2 where username = 'yyy';
已删除 1 行。
SQL> select username from userinfo;
USERNAME
--------------------
xxx
添加
修改
删除
添加
INSERT INTO table_name
(column1,column2,...)
VALUES(value1,value2,...)
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
SQL> insert into userinfo
2 values(1,'xxx','123','736478610@qq.com',sysdate);
已创建 1 行。
SQL> select * from userinfo;
ID USERNAME USERPWD
---------- -------------------- --------------------
EMAIL REGDATE
------------------------------ --------------
1 xxx 123
736478610@qq.com 30-10月-16
向表中指定字段添加值
SQL> insert into userinfo(id,username,userpwd)
2 values(2,'yyy','123');
已创建 1 行。
SQL> select username,userpwd from userinfo;
USERNAME USERPWD
-------------------- --------------------
xxx 123
yyy 123
向表中添加默认值
create table userinfo1(
id number(6),
regdate date default sysdate);
SQL> create table userinfo1(
2 id number(6),
3 regdate date default sysdate);
表已创建。
SQL> insert into userinfo1
2 values(1);
insert into userinfo1
*
第 1 行出现错误:
ORA-00947: 没有足够的值
SQL> insert into userinfo1(id)
2 values(1);
已创建 1 行。
SQL> select * from userinfo1;
ID REGDATE
---------- --------------
1 30-10月-16
SQL> alter table userinfo
2 modify email default '无';
表已更改。
SQL> insert into userinfo(id)
2 values(3);
已创建 1 行。
SQL> select id,email from userinfo;
ID EMAIL
---------- ------------------------------
1 736478610@qq.com
2
3 无
SQL> insert into userinfo(id,email)
2 values(4,'aaa');
已创建 1 行。
SQL> select id,email from userinfo;
ID EMAIL
---------- ------------------------------
1 736478610@qq.com
2
3 无
4 aaa
2 复制表
在建表时复制
添加时复制
在建表时复制
as
SELECT column1,...|*FROM table_old
在添加时复制
[(column1,...)]
SELECT column1,...|*FROM table_old
SQL> insert into userinfo_new
2 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)
2 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行。
3
修改数据
UPDATE语句
UPDATE table_name
SET column1 = value1,...
[where conditions]
无条件更新
SQL> update userinfo
2 set userpwd = '111111';
已更新4行。
SQL> select userpwd from userinfo;
USERPWD
--------------------
111111
111111
111111
111111
SQL> update userinfo
2 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 set userpwd = '123456'
3 where username = 'xxx';
已更新 1 行。
SQL> select username,userpwd from userinfo;
USERNAME USERPWD
-------------------- --------------------
xxx 123456
yyy 111
111
111
3 删除数据
DELETE语句
DELETE FROM table_name
[WHERE conditions]
无条件删除
SQL> create table testdelete1
2 as
3 select * from userinfo;
表已创建。
SQL> delete from testdelete1;
已删除4行。
SQL> select * from testdelete1;
未选定行
有条件删除
SQL> delete from userinfo
2 where username = 'yyy';
已删除 1 行。
SQL> select username from userinfo;
USERNAME
--------------------
xxx