六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 84|回复: 0

oracle基础总结(九)

[复制链接]

升级  60%

6

主题

6

主题

6

主题

童生

Rank: 1

积分
30
 楼主| 发表于 2013-1-15 08:07:04 | 显示全部楼层 |阅读模式
                         修改SQL数据
     操作存储的数据是所有数据库的主要功能之一。对于数据库而言,它比寻能够让用户添加、修改和删除其中的数据,以保持数据的适时性和准确性。对数据库的这些操作需要使用一定的语句来完成,执行数据操作任务的语句被称为数据操作语言DMLDML也是PL/SQL语言的重要组成部分,常用的DML语言包括insertupdatedelete语句,它们分别完成了对数据的添加、修改和删除等操作。
DML(Data Manipulation Language – 数据操作语言) 可以在下列条件下执行:
•    向表中插入数据
•    修改现存数据
•    删除现存数据
 
1、插入语句
使用 INSERT 语句向表中插入数据。
INSERT INTO   table [(column [, column...])]
VALUES             (value [, value...]);
使用这种语法一次只能向表中插入一条数据
//users表中插入一条完整的记录
SQL> insert into users(username,password,name,address,zip) values('zp','1234','鹏
','北京',100089);
备注:如果是字符串加’’ 如果是数字可与加’’也可以不加===>一般不加
SQL> commit;
注意:oracle数据库在DOS命令中执行插入,修改等操作时,必须手动完成提交。否则不会(正真)插入成功。
在插入完整的记录是users()中的表对应的字段可以省略不写.但一定要与数据库中表的结构对应才行。
//users表中插入一条非完整的记录
 

SQL> insert into users(username,password) values('zp','123');

//注意:在插入部分子段的时候,必须满足的表的约束条件,否则会出现如下异常信息。

insert into users(username,password) values('zp','123')

RA-01400: 无法将 NULL 插入 ("RED"."USERS"."NAME")

SQL> insert into users(username,password,name) values('mj','123','张鹏');

1 row inserted

SQL> commit; //必须手动提交

Commit complete

以上简单总结如下:

为每一列添加一个新值。
按列的默认顺序列出各个列的值。
在 INSERT 子句中随意列出列名和他们的值。
字符和日期型数据应包含在单引号中
 

补充知识点:

隐式方式: 在列名表中省略该列的值

SQL> insert into users(username,password,name) values('zp','123','张鹏');

显示方式: 在VALUES 子句中指定空值。

SQL> insert into users  values('test','123','test',null,null);

 

常见面试题:

//备份一张表

SQL> create table usess as select * from users;

//清空表中的记录

SQL> delete from usess;

//使用插入语句把users表中记录插入到usess中

SQL> insert into usess(username,password,name,address,zip) select username,password,name,address,zip from users;

SQL> commit

注意:

不必书写 VALUES 子句。
子查询中的值列表应于 INSERT 子句中的列名对应
 

 

2、更新数据
采用update语法进行更新数据:
语法如下:
  UPDATE                 table
  SET                column = value [, column = value, ...]
  [WHERE               condition];
备注:一次可以更新多条记录
//更新数据:更新users 重新设置了passwrod 条件是唯一(主键是唯一)的条件。
SQL> update users set password='redarmy' where username='redarmy';
SQL> commit
注意:当更新多个字段时,可以采用逗号进行区分.举例如下:
SQL> update users set password='zpa' , name='张鹏'  where username='rrmy';

SQL> commit
备注:如果省略WHERE子句,则表中的所有数据都将被更新
SQL> update users set password='zpa' , name='张鹏';

6 rows updated

SQL> commit;

Commit complete

SQL> select * from users;

USERNAME      PASSWORD      NAME             ADDRESS             ZIP

-------------------- -------------------- -------------------- -------------------- -------

huxz               zpa        张鹏           北苑家园          100012

liucy               zpa         张鹏            清华园             100084

redarmy          zpa          张鹏            北京                100089

rrmy               zpa         张鹏          北京                100089

mj                  zpa         张鹏                               

test               zpa         张鹏                                

6 rows selected
 
补充:在update语句中使用子查询
//更新huxz的邮编与用户liucy的邮编一致
SQL> update users set zip=(select zip from users where username='liucy') where username='huxz';
//备注:在更新数据的时候 where条件中也可以使用子查询。
 
3、删除数据
    在表中如果某些数据不在需要就可以使用delete语句进行删除,并释放该数据所占用的存储空间删除语法如下:
DELETE [FROM]         table
[WHERE    condition];
备注:delete语句只是从表中删除数据,不会删除表结构.删除表结构采用drop语句。
注意:删除表中的数据时,一定要考虑表的约束(否则会出现一些异常信息)
//清空表  delete from 表名 ||delete 表名 
//删除数据 where条件与更新一致,必须保证唯一性(主键是唯一)条件
SQL> delete from users where username='test';
 
 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表