增加数据
语法
INSERT INTO table_name(column1,column2,....)
VALUES(value1,value2,....)
实例
向用户表中的所有字段都添加值
insert into uinfo (id,name,password,regdate) values(1,’shaoduo’,’123’,sysdate) ;
或者
insert into uinfo values(1,’shaoduo’,’123’,sysdate) ;
SQL> desc uinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PASSWORD VARCHAR2(30)
REGDATE DATE
SQL> insert into uinfo (id,name,password,regdate) values(1,'shaoduo','123',sysdate) ;
已创建 1 行。
SQL>
SQL> select * from uinfo ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 123 02-4月 -17
SQL>
其中sysdate 是当前时间,字符串需要用单引号引起。
向用户表中的指定字段添加记录
insert into uinfo (id,name,regdate) values(1,’shaoduo’,sysdate) ;
只添加除密码以外的字段。
SQL> insert into uinfo (id,name,regdate) values(2,'shao',sysdate) ;
已创建 1 行。
SQL> select * from uinfo ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 123 02-4月 -17
2 shao 02-4月 -17
SQL>
向用户表中的添加默认值
创建一个新表
creae table userinfo1(
id number(5,0) ,
regdate date default sysdate) ;
)
为 regdate 指定默认值 sysdate当前时间,插入时可以不写自动添加默认值。
insert into userinfo1 values(3) ;
SQL> create table userinfo1( id number(6,0),
2 regdate date default sysdate) ;
表已创建。
SQL>
SQL> insert into userinfo1 (id) values(1) ;
已创建 1 行。
SQL> select * from userinfo1 ;
ID REGDATE
---------- --------------
1 02-4月 -17
SQL>
修改表的默认值
修改uinfo表中 注册时间 的默认时间是 sysdate当前时间。
alter table uinfo modify regdate default sysdate ;
SQL> alter table uinfo modify regdate default sysdate ;
表已更改。
SQL> insert into uinfo (id,name,password) values(3,'duo','222') ;
已创建 1 行。
SQL> select * from uinfo ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 123 02-4月 -17
2 shao 02-4月 -17
3 duo 222 02-4月 -17
SQL>
复制表数据
创建时复制
语法
CREATE TABLE table_new AS SELECT column1,...|*FROM table_old
实例
创建一个 user_new 的表 复制 uinfo表
SQL> create table user_new as select * from uinfo ;
表已创建。
SQL> select * from user_new ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 123 02-4月 -17
2 shao 02-4月 -17
3 duo 222 02-4月 -17
SQL> desc user_new
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PASSWORD VARCHAR2(30)
REGDATE DATE
SQL>
**由此可见 复制完后 ,新建的数据库 与被复制的数据库 表结构和数据都是一样的。
同样也可是选择 其中一些 字段来复制,这样选择的结构和数据与被复制的表是一样的。**
添加数据时复制
语法
INSERT INTO table_new [(column1,...)] SELECT column1,...|*FROM table_old
实例
SQL> insert into user_new select * from uinfo ;
已创建3行。
SQL> select * from user_new ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 123 02-4月 -17
2 shao 02-4月 -17
3 duo 222 02-4月 -17
1 shaoduo 123 02-4月 -17
2 shao 02-4月 -17
3 duo 222 02-4月 -17
已选择6行。
后边的三行是新复制上去的。
同样 可以自己选择某些字段来复制。select into user_new(id,name) select id,name from uinfo ;
SQL>
SQL> insert into user_new(id,name) select id,name from uinfo ;
已创建3行。
SQL> select * from user_new;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 123 02-4月 -17
2 shao 02-4月 -17
3 duo 222 02-4月 -17
1 shaoduo 123 02-4月 -17
2 shao 02-4月 -17
3 duo 222 02-4月 -17
1 shaoduo
2 shao
3 duo
已选择9行。
可见id 和name 复制到了表中
SQL>
修改数据
语法:
UPDATE table_name SET column1 =value1,... [where conditions] ;
实例:
- 有条件更新,将 name 是 shao 改 为gongshihang 并且 password 改为 111 。
SQL> UPDATE uinfo set name = 'gongshihang',password= '111' where name =shao' ;
已更新 1 行。
SQL> select * from uinfo ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 123 02-4月 -17
2 gongshihang 111 02-4月 -17
3 duo 222 02-4月 -17
SQL>
- 无条件更新, 一个字段的所有值都改变
update uinfo set password=’11111’ ;
SQL> update uinfo set password='11111' ;
已更新3行。
SQL> select * from uinfo ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 11111 02-4月 -17
2 gongshihang 11111 02-4月 -17
3 duo 11111 02-4月 -17
SQL>
可见password 字段被全部修改。
删除数据
语法
DELETE FROM table_name [WHERE conditions]
实例
1.无条件删除
将user_new 表所有的数据无条件全部删除
SQL> delete from user_new ;
已删除9行。
SQL> select * from user_new ;
未选定行
SQL> desc user_new ;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PASSWORD VARCHAR2(30)
REGDATE DATE
SQL>
可见无条件删除把表中数据全部删除,但是desc查看表结构时,表结构还在。不删除表结构。
2.有条件删除
删除uinfo表中一个用户名为 ‘duo’ 的记录。
SQL> delete from uinfo where name ='duo' ;
已删除 1 行。
SQL> select * from uinfo ;
ID NAME PASSWORD REGDATE
---------- -------------------- ------------------------------ --------------
1 shaoduo 11111 02-4月 -17
2 gongshihang 11111 02-4月 -17
SQL>
可见,记录已经被删除。
版权声明
author :shaoduo
原文来自:http://blog.csdn.net/shaoduo/article/details/68952201
其他出处均为转载,原创作品欢迎读者批评指正