Oracle篇章系列二oracle相关命令

前言概要总结:

关于序列,就是一个东西,供类似事项mysql下自动增加id键值功能所出来的产物,就是mysql实现这种功能简单,oracle实现多了一步罢了:

  1.可以把序列名称想象成一个全局对象,不管在哪个"表"中插入使用时,调用名称.nextval.将会提出下一个值进行写入表中.全局对象,值自动加一.
  2.调用select 名称.nextval from dual;dua为系统维护的表,并且当前序列值加一,所以,一个表对应一个序列.不然多表用就乱了.

 关于事务:实际上我们在cmd下sql>执行的命令,实际上都是在所谓的"事务"上操作的,对真是数据库中国的数据并没有发生改变,知道提交(commit)或者放弃(rollback)事务,前者将变化后的数据回写到数据库中,后者则回退到执行sql语句前数据库信息的样子.重点提示,所有操作完数据库后应该commit数据否则数据库中数据不变.

          对于sql语言俩将,所有语法格式是标准的,大多数的关键词也是通用的,但是每一种数据库系统还是做了很多拓展,所以SQL语言并不是100%通用的.
oracle 和 mysql一些区别.<大部分都是一样的,将区别学会了,基本就贯通了>

1.创建用户:

Linux要以oracle管理员登陆,添加用户,create user dbuser2 identifien dbuser2;
2.给用户赋权限:<否则连登陆什么的都是无权限的>
grant connet,resource to dbuser2;
3.删除用户:
drop user 用户名;
4.创建表:<这里区别mysql,要是用varchar的话,要用varchar2,官方推荐>
create tabel 名字 (name vacher2(100),age int);
5.查看字段属性:
desc 表名字;
6.创建带主键的表:<新增为主键起一个名称,并且指定主键,注意两个关键字>
create table one (id int,name varchar(100),age int,constraint pk_id primary key(id));
7.查询有哪些表存在:
当前用户:select * from tab; //较为常用,谨记.
其它用户:select table_name from all_tables where owner = 'TIAN';<最后引号为用户名> <备注:可能创建的时候是tian但是查询语句这个引号参数就必须大写了>.
注意点:要想实现向mysql那种id自动增长功能,除了要指定主键,还要穿件序列.
注意点:主键只是一种唯一索引而已,与序列无关,序列是事项增长功能使用的.


8.序列相关:<这是为了实现插入时候,某个键值能自动增长>
创建序列.
create sequence 名称 //创建序名称
incremment by 数值 //序列步长
start with 数值 //序列起始值
maxvalue 数值 //序列最大值
例如:
SQL> create sequence
   increment by 1
   start with 1
   maxvalue 999999;


删除序列
drop sequence 名称.

9.简单查询表里面数据:
select * from 表名字;


10.简单进行数据插入:
insert into 表名(字段排列)values(各个字段值);
备注:当使用带自动增长的序列方法插入. insert into one (id,name,age)values (seq1.nextval,'tian',10);
<前提是:seq1序列已经建,并且指定好了相关参数>.


11.删除表数据:
delete from 表名.实际上是清空表了.


oracle中"事务"概念:
在oracle当中,所有对表的修改,都是在一个事务当中操作的.(事务就像一个内存缓冲而已,就是相当于命令行下操作只是当前零时内存,数据未写入数据库中).
12.提交数据的语句:<才是真实将数据写入到数据库中>,必须要提交.
commit;
13.放弃事务,允许误操作:
就是当各个sql语句执行后(这里不包括commit),可以使用rollback.进行回退事务.恢复到执行sql语句之前状态.
    eg:update 进行跟新所有数据后反悔


12和13点的总结:

    oracle所有对表的修改都是在事务当中,并不会直接修改到表,只有执行了commin或者rollbakc在生效或者摒弃.


14,输出指定行数据

      select * from table where rownum <= 5;

你可能感兴趣的:(Oracle)