oracle还是和mysql有些不同的

之前学数据库只用到mysql、现在实习用的是oracle,发现oracle和mysql还是有些许不同的(实践的过程中学习记忆真的深刻),今天总结一下我遇到的不同,欢迎告知更多,以及以后我遇到后不断更新!!!

1.oracle表空间、用户的创建

我之前用mysql的时候用的是Navicat可视化工具;就直接创建连接,然后创建数据库、再创建表。

现在oracle可视化工具用的是plsql;刚开始创建表空间、用户这些就把我给搞懵了,经过几次实操和结合一点理论基础,差不多算明白怎么回事了吧!(也可能还没真正搞清楚!!)

oracle数据库是由一个数据库和n个数据库实例构成的。

Oracle数据库和表空间建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间(多个数据库可以用一个表空间,但需要为每个数据库建立用户)

这篇文章里写的很详细:https://www.cnblogs.com/adforce/p/3312252.html

2.关于主键自增

记得之前在Navicat中主键自增是就点击一个按钮即可。

然而在oracle数据库中主键自增是通过序列触发器来实现的。

懒人又附上一篇别人的帖子:https://blog.csdn.net/weixin_42285088/article/details/82222311

3.sql语法

①mysql分页用的limit关键字;oracle用的rownum

②oracle中 ||代表拼接字符串;..代表范围;&代表输入

③dbms_output是oracle中的一个输出对象;put_line是上述对象的一个方法,用于输出一个字符串自动换行eg:dbms_output.put_line('hello 你好')

④dual是oracle的系统表

1、查看当前用户,可以在 SQL Plus中执行下面语句
    select user from dual;
2、用来调用系统函数
    select to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间
  select sys_context('userenv','terminal') from dual;--获得主机名
  select sys_context('userenv','language') from dual;--获得当前locale
  select DBMS_RANDOM.random from dual;--获得一个随机数
3、可以用做计算器
  select 7*9*10-10 from dual;
4、查看系统时间
   select sysdate from dual;

⑤select 所列的非聚合函数字段,group by中一定要有

⑥字符串替换:replace(要替换的字符串,将字符串的什么,替换成什么)

eg:replace("2020/01/09",'/','-')

⑦字符串截取:substr(要截取的字符串,从哪里开始截取,截取多长)

eg:substr(SWSJ,0,10)

⑧截取字符串中数字部分:(可用于通过数字排序,截取出字符串数字部分后再转为数字)

regexp_replace(string,'[^0-9]')

⑨with……as

with  t2   as  (select * from t1) :相当于建立了一个临时表、但这个临时表不是真实存在的,创建完之后可以直接从这个临时表中查数据

优点:能够提高查询效率

用法:with a as(select * from u_sjzd)
        select * from a

https://www.cnblogs.com/ssbydk/p/9142513.html

未完结!!!

 

 

 

 

你可能感兴趣的:(oracle)