安装后首次登录Oracle数据库只能以管理员身份登入。
管理员登录后需要创建普通用户。
Oracle中有一个表空间概念,类似MySQL中的database,存放一些表。

//Oracle相比MySQL是大型数据库,承载着大量级数据。所以在创建表空间时会设置表文件的大小
create tablespace [Name] datafile '[dir]/[filename].dbf' size xxxM autoextend on next xxxM maxsize xxxM;
//创建用户,一个用户会对应一块默认表空间
create user [Name] identified by [Pwd] default tablespace Name;
//赋权给用户,这是连接和操作表空间中资源的权限
grant connect,resource to userName;

创建好表空间与对应用户后,并得到授权后。用户可以直接登录进入表空间,也可以通过

conn username/password;命令中途连接进表空间。

图片

另外,用户还常用的基本命令还有如下几种:

//断开连接
disconnect;
//将上一句SQL语句保存到文件中,当文件不存在,默认create;当文件存在,默认replace
save dir/file [create|replace|append];
//就是引入sql文件。(顺带一提,mysql中导入脚本是通过source 命令)
@ dir/file;
//可以查看当前用户下有哪些表或视图,tabs更加详细
select * from tab/tabs;
注:select * from all_tables where owner=upper(name);功能相同

//查看用户下所有对象(表,视图,索引,分区,序列,函数,存储过程,触发器等)
select object_name,object_type from sys.all_objects where owner=upper(name);
//命令行可以查看当前用户
show user;
注:select user from dual;

//运行上一条SQL语句
/ 一个符号就行

至于对表的操作,oracle与MySQL的表操作基本一致。毕竟两者都是采用SQL语言的。但是Oracle的语句书写要比mysql的更加严格。

  • Oracle每个用户一般只对自家表空间表进行操作,如果涉及其他表空间的表查询,必须带上人家的用户名

  • 还有,Oracle是一个事务范围较高的数据库。它不像MySQL那样一句语句就是一个事务,执行完就立即同步。在Oracle中,只要不执行commit;命令提交,他就认为这个事务没完成。这就导致当前会话关闭但是没提交就会白做。所以在创建数据表等结构时,一定要记得随手commit一下。

  • Oracle的表字段约束与MySQL基本一致,就是MySQL中有一个自增约束,Oracle是没有这个约束的。但是在Oracle中可以通过序列这种结构实现自增。
    序列就是一串有序自增的数字集合。可以从中挨个取值实现主键的有序递增。

    create sequence Name 
    start with xxx increment by xxx  
    minvalue xxx maxvalue xxx
    order
    cache xxx
    cycle;
    select seqName.currval,seqName.nextval from dual;
    

    可以直接从序列中取值赋给表的对应字段,序列会自动后移一位。
    序列从0开始,取值从1开始。

  • 对于alter这类操作也是差不多。对于具体的column操作要加上column标识

posted on 2021-08-23 15:23  让代码运行一会~  阅读(92)  评论(0)    收藏  举报