ITPub博客

首页 > 数据库 > Oracle > 数据库常用语句

数据库常用语句

Oracle 作者:wanwan_kankan 时间:2013-06-23 17:35:52 0 删除 编辑

一.Mysql事务

1.MySql事务处理

事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!删除的SQL语句

如果没有事务处理,在你删除的过程中,假设出错了,只执行了第一句,那么其后果是难以想象的!但用事务处理。如果删除出错,你只要rollback就可以取消删除操作(其实是只要你没有commit你就没有确实的执行该删除操作)一般来说,在商务级的应用中,都必须考虑事务处理的!

 

 

先简单介绍一下事务吧!事务是DBMS得执行单位。它由有限得数据库操作序列组成得。但不是任意得数据库操作序列都能成为事务。一般来说,事务是必须满足4个条件(ACID)

(1).原子性(Autmic):事务在执行性,要做到“要么不做,要么全做!”,就是说不允许事务部分得执行。即使因为故障而使事务不能完成,在rollback时也要消除对数据库得影响!
   (2).
一致性(Consistency):事务得操作应该使使数据库从一个一致状态转变倒另一个一致得状态!就拿网上购物来说吧,你只有即让商品出库,又让商品进入顾客得购物篮才能构成事务!

(3). 隔离性(Isolation):如果多个事务并发执行,应象各个事务独立执行一样!

(4). 持久性(Durability):一个成功执行得事务对数据库得作用是持久得,即使数据库应故障出错,也应该能够恢复

 

MYSQL的事务处理主要有两种方法。
     1
、用begin,rollback,commit来实现

     begin 开始一个事务

rollback 事务回滚

commit  事务确认

 

2.直接用set来改变mysql的自动提交模式

    MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过

   set autocommit=0   禁止自动提交

set autocommit=1 开启自动提交

 

 

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!)

 

 

 

 

二.  数据库索引

根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。

1.       唯一索引:

   唯一索引是不允许其中任何两行具有相同索引值的索引。
     
当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。

 

2.       主键索引:

 数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。

  在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问

3. 聚集索引:

在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。

如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

 

 

 

唯一性索引(Unique Index)与普通索引(Normal Index)差异

 

/普通索引

SQL> create index idx_t_normalid on t(object_id);

Index created

 

//唯一性索引

SQL> create unique index idx_t_uniid on t(data_object_id);

Index created

 

 

三.数据库的端口:

     1. oracle 端口:1521

  2.sql server 2005 端口:1433
  3. mysql
端口:3306

 

四.分页的实现

  1. Oracle没有top指令,可以采用伪列rownum完成此功能
  2.sql server
用top

  3.mysql 用 limit

 

五.常用sql语句

1.连接查询

     左连接查询:select * from test1 a left join test2 b on a.id=b.id
    
右连接查询:select * from test1 a right join test2 b on a.id=b.id
    
内连接查询:select * from test1 a join test2 b on a.id=b.id
                 select * from test1 a inner join test2 b on a.id=b.id

                 Select * from test1 a,test2 b where a.id=b.id

 

 

2.添加,修改,删除

 添加:insert into student(id,name)  values(‘1’,’abc’)
 
修改:update 表名 set 字段名=字段值 where 条件
 
删除:delete from 表名 where 条件

3.       数据记录统计函数

AVG(字段名) 得出一个表格栏平均值

COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计

MAX(字段名) 取得一个表格栏最大的值

MIN(字段名) 取得一个表格栏最小的值

SUM(字段名) 把数据栏的值相加

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21699587/viewspace-1116043/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-05-20