红联Linux门户
Linux帮助

向你介绍我的Oracle数据库学习笔记

发布时间:2006-11-04 00:43:15来源:红联作者:qingniaox
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(保存点)进行选择性的回滚。
文章评论

共有 0 条评论