数据库
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语句有一定的区别
oracle左连接,右连接可以使用(+)来实现.
Mysql只能使用left join ,right join等关键字
关于使用(+)的一些注意事项:
1.(+)操作符只能出现在WHERE子句中,并且不能与OUTER JOIN语法同时使用。
2. 当使用(+)操作符执行外连接时,如果在WHERE子句中包含有多个条件,则必须在所有条件中都包含(+)操作符。
3.(+)操作符只适用于列,而不能用在表达式上。
4.(+)操作符不能与OR和IN操作符一起使用。
5.(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。
下面的图来源于网络,忘记是从哪个文章看到的了,觉得很好就引用到这里,便于理解,知道原图出处的可以在评论区帮忙贴一下链接
空字符串问题
Oracle中空字符串’‘就是null(也就是说,只有null,没有空字符)
,而MySQL是区分null和’'的
Double、decimal和float的区别
区别是 :
double 精度高,有效数字 16 位,
float 精度 7 位。但 double 消耗内存是 float 的两倍,double 的运算速度比 float 慢得多
区别:Decimal
【MYSQL】金额(金钱)相关的数据存储类型
int
对于游戏币等代币,一般存储为int类型是可行的。
问题在于越界,int类型长度为11位。
在存储人民币相关的金额的时候,则只能存储到9长度的人民币,也就是说,最大只能存储999999999,不到10亿的数值,如果业务增长很快的话,就会给自己留下隐患。
Decimal
Decimal为专门为财务相关问题设计的数据类型。
DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下:
·M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认 值是10。
·D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。
说明:float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。
如DECIMAL(5,2) 的最大值为9 9 9 9 . 9 9,因为有7 个字节可用。
能够解决数据的范围和精度的问题。
总结
这两种方式都是可行的解决方案,我们可以根据具体情况使用合适的方案。
sql常用语句
4.1.新增表:
Create table 表名{
字段 类型 限制(主键/是否自增/是否允许为空)
//主键:PRIMARY KEY ; 自增:AUTO_INCREMENT ;不允许为空:NOT NULL
}
4.2.删除表:
delete from 表 (删表数据可以回滚rollback)
Truncate table 表 (删表数据不可以回滚)
Drop table 表 (删除数据和表结构)
4.3.新增数据:
insert into表 (列1,列2…)values (值1,值2…)
4.4.修改数据:
update 表 set列1=新设值1,列2=新设值2……where 过滤条件
4.5.删除数据:
delete from 表where 过滤条件
4.6.查询:
select 列/* from 表/表达式 where 过滤条件/group by 分组内容/having 组内条件/order by 字段 排序方式(asc/desc)
①Having 和where 的区别:having是在分组后对数据进行过滤
where是在分组前对数据进行过滤
having后面可以使用聚合函数
where后面不可以使用聚合
在查询过程中执行顺序:from>where>group(含聚合)>having>order>select。
②聚合语句:sum、min、max、avg、count
having的作用和where的作用类似,但是where不能和聚合函数(max,min,sum,avg等)一起使用,因此需要having。
Eg:select * from table having max(column_name);
4.7.模糊查询:
select 字段 from 表 where条件 like ‘模糊查询内容’
//查询内容例如:姓苏的 like ‘苏%’;姓苏且长度为3 的 like ‘苏__’ 这_代表占用一个字位置
左连接与右连接以及全连接的区别?
左连接:left join 左表主表,右表是匹配表,左表存在数据右表不存在时显示的是左表字段有数据右表null
右连接:right join
内连接:inner join 显示左右表共有的数据
全连接:union
注意:使用union进行拼接查询的时候,表中字段要一致的数才可以进行查询,要不容易出错
union会自动将完全重复的数据去除掉;union all会保留那些重复的数据
浅谈Java SE、Java EE、Java ME三者的区别
- Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
- Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
- Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
说得更简单点
Java SE 是做电脑上运行的软件。
Java EE 是用来做网站的-(我们常见的JSP技术)
Java ME 是做手机软件的。
sqlyog是工具还是数据库?
MySQL,oracle是数据库,SQLyog是连接MySQL的可视化客户端软件(数据库管理工具,数据库软件)。SQLyog 可以快速直观地让用户完成对数据库的操作