我们常用的两大数据库:MySQL和Oracle,首先记录与分析两者的常见区别:Oracle数据库收费的 MySQL开源的免费,Oracle是大型数据库而Mysql是中小型数据库。
一、类型的区别:
MySQL:【1、mysql没有number、varchar2()类型; 2、mysql可以声明自增长:auto_increment; 3、mysql有double,float类型;】
Oracle:【1、oracle没有double类型、有int类型但多数会用number来代替int; 2、oracle不可以声明自增长:auto_increment,主键自带自增长; 3、oracle小数只有float类型;】
二、sql查询语句的区别
三、oracle sql语句和mysql sql语句有一定的区别. 1. oracle左连接,右连接可以使用(+)来实现. Mysql只能使用left join ,right join等关键字.
四、空字符串问题
五、Oracle中空字符串’‘就是null(也就是说,只有null,没有空字符) ,而MySQL是区分null和’'的。
六、左、右、全、连接的区别:
(A)内连接:查询两张表公用的数据
方法①:MySQL的语法
关键字:inner join
SELECT * FROM student01
st INNER JOIN class01
cl ON st.student01
= cl.studentId
方法②:Oracle的语法
找到这些表的相同字段,在where后面,把这些字段用等于号连接起来;
SELECT * FROM student01
st, class01
cl WHERE st.student01
= cl.studentId
(B)左连接
方法一:MySQL的语法
关键字:left join
SELECT * FROM student01 LEFT JOIN class01 ON student01.student01 = class01.studentId
方法②:Oracle的语法
右(+)连接:(相当于Left Join)
SELECT * FROM student01
st, class01
cl WHERE st.student01
= cl.studentId
(+);
(C)右连接
方法一:MySQL的语法
关键字:rift join
SELECT * FROM student01 RIGHT JOIN class01 ON student01.student01 = class01.studentId
方法二:Oracle的语法
左(+)连接:(相当于Right Join)
SELECT * FROM student01
st, class01
cl WHERE st.student01
(+) = cl.studentId
;
注意:不可以左右都加(+)。
【从这里我们应该注意到了Oracle的左右链接的区别了
用(+)来实现, 这个+号可以这样来理解: + 表示补充,即哪个表有加号 ,这个表就是匹配表。如果加号写在右表 ,左表就是全部显示,所以是左连接。
】
【D】全连接