Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104573036
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-12 16:18:57

     来源:ccidnet博客    作者:toxm

1.SQL命令:

SQL 支持4大类型命令:

数据定义语言(DDL): Create(创建), Alter(更改), Drop(删除).

数据操纵语言(DML): Select(选择), Insert(插入), Update(更新), Delete(删除).

事务控制语言(TCL) : Commit(提交), Rollback(回滚), Savepint(保存点).

数据控制语言(DCL) : Grant(授予), Revoke(回收).

2.操作:

1)数据定义语言:用于改变数据库结构,包括创建,修改,删除数据库对象

创建表(create):

create table person(id int primary key,name varchar(16) not null,password int not null, address varchar(20));

更改(alter):

注:add:增加,modify:修改

alter table person add(age int);//增加1个属性列
alter table person add(age int,weight int);//增加多个属性列
alter table person modify(age varchar(6));//修改属性列
alter table person modify(age varchar(6),weight varchar(6));//修改多个属性列

删除(drop):

drop table person;

附加:

描述表的属性列:describe person;

2).数据操纵语言: 用于检索,插入和修改数据库信息

选择查询(select):

select * from person;//检索全部信息
select id,name from person;//检索部分信息
select distinct name from person;//检索部分信息,但消去重复行(distinct)
select * from person where id=1;//查询符合条件的信息
select * from person order by id;//查询并排序(order by)显示查询信息
select * from person where id=1 and sex='man';
select * from person where address='bj' or sex='woman';
select * from person where(address='bj' or sex='woman') or age>20;

Select 语句的总语法:

Select * | {[Distinct] 列名,列名,…… } From TableName
    [Where 条件]
    [Order By 列名,列名,……];

其中用[ ]括起来的表示是可以按自己实际选择写或不写。Order By表示结果要排序,By后指出排序的属性列名,可单列或多列排序(在前排的基础上再排序),其后可说明排序方式:DESC为降序,ASC为升序,默认为升序。在select语句中,order by子句必须在所以其他子句之后,作为最后一个子句出现。

插入(Insert):

insert into person(id,name,sex,address)values(1,'toxm','man','bj');//插入一个表的所有列:
insert into person values(1,'toxm','man','bj');//插入一个表的所有列
insert into person(id,name) values(1,'toxm');//选择性插入表中的列
insert into person select * from user;//插入来自其他表的所有记录
insert into person select id,name from user;//选择列插入来自其他表的记录
insert into person select * from user where sex='man';//按条件插入来自其他表的所有记录

更新:(Update ):

update person set name='toxm' where id=1;//按条件更新一列或多列
upsate person set name='toxm',address='bj' where id=1;//按条件更新多列
update person set name='toxm;//更新所有行

删除:(Delete):

delete from person;//删除表中所有记录
delete from person where id=1;//按条件删除表中记录

3)事务控制语言:

当用户执行创建,删除,修改数据库对象或插入,删除,修改数据库表时,用户所做的数据修改会被保存在数据缓冲区中,此时用户所做的数据库修改并没有真正的修改了数据库,只有在用执行Commit(提交)命令后才真正的修改了数据库, 如果想不修改数据库,则可以执行Rollback(回滚)命令则刚刚执行的修改不会修改数据库。

如: 当你用Insert 命令插入一条记录时,此时这条记录是保存在数据缓冲区中的,并没有真正保存到数据库中,数据库中不会有这条记录(不信你可以以另一个用户登陆然后查询插入的表,会发现无次记录), 如果你执行了Commit(提交)命令后, 才会将缓冲区的数据保存到数据库里, 既真正的修改了数据库(以另一个用户登陆可以查询到插入的记录), 如果执行Rollback(回滚)命令则会把存在缓冲区中的数据给删除掉,既用户的修改作废(如果执行Commit命令则不能回滚了)。 可以利用Savepoint(保存点)进行选择性的回滚。

阅读(196) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~