Sybase数据库 ASAASE的 区别
发布时间:2025-05-23 01:29:00 发布人:远客网络
一、Sybase数据库 ASA\ASE的 区别
Sybase数据库引擎饱含了三个产品:
ASA轻量级数据库服务器,适合用于移动计算(PDA、带操作系统的手机等)/嵌入式计算(POS机、路由器等),和工作组级OLTP环境,特别是移动计算/嵌入式计算
ASE企业及数据库服务器,适合用于企业级OLTP(和混合负载)环境
ASIQ企业级数据仓库数据库服务器,适合于DSS环境中的企业级数据仓库和数据集市
2.ASE和ASA时两个不同的产品,它们之间没有发展上的继承关系。ASE和ASA存在细节上的差异
a.ASA尚没有数据库层逻辑结构(一个服务器只管理一个数据库)
b.ASA的T-SQL中包含一些ASE中没有的特有语句,反之亦然
c.ASA和ASE对少数SQL语义的表达,使用的T-SQL语法不同
d.ASA还支持WATCOM-SQL,尤其是触发器,可能需要用到这种SQL方言 e.ASE中的很多企业及应用需要用到的功能和选项,ASA中没有对应功能(因为其目标不是企业级OLTP应用)
1.ASA是一个真正的关系型DBMS,虽然小,但具备了RDBMS的所有基本要素(如日志、强制一致性、除法器等等)
2.ASA支持ASE的相当大部分的T-SQL语法
3.ASA的默认连接接口是ODBC、JDBC,但也支持Sybase Open Client(包括DB-Library)、OLE DB等接口
4.ASA支持主流的MS、UNIX、LINUX和嵌入式操作系统(用于PDA、路由器),包括sun sparc solaris 8.0
由于ASA产品应用目标未放在企业级OLTP应用上,在处理该类应用时,性能比ASE低很多。
二、五个常见的数据库软件
五个常见的数据库软件如下:MySQL,SQLServer,Oracle,Sybase,DB2。
MySQL是最受欢迎的开源SQL数据库管理系统,由MySQLAB开发、发布和支持,MySQLAB是一家基于MySQL开发人员的商业公司,是一家使用一种成功的商业模式来结合开源价值和方法论的第二代开源公司,MySQL是MySQLAB的注册商标。
SQLServer是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。
提起数据库,第一个想到的公司,一般都会是Oracle甲骨文)该公司成立于1977年,最初是一家专门开发数据库的公司,Oracle在数据库领域一直处于领先地位,Oracle产品覆盖大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。
Sybase主要有三种版本:一是UNIX操作系统下运行的版本,二是NovellNetware环境下运行的版本,三是WindowsNT环境下运行的版本,对UNIX操作系统,目前应用最广泛的是SYBASE10及SYABSE11forSCOUNIX。
DB2是内嵌于IBM的AS/400系统上的数据库管理系统,直接由硬件支持,支持标准的SQL语言,具有与异种数据库相连的GATEWAY,具有速度快、可靠性好的优点,只有硬件平台选择了IBM的AS/400,才能选择使用DB2数据库管理系统。
三、数据库表查询进阶(1)
in操作符允许我们在 WHERE子句中规定多个值。
where字段名 in(值1,值2,值3....)
age字段的值只要是 20或者21或者25的数据都满足条件
where not in(值1,值2,值3....)</pre>
age字段的值只要不是 20或者21或者25的数据都满足条件
where score not in(70,80,90);
where birthday in('1990-01-01','1990-12-21','2017-12-20','2012-06-06');</pre>
where birthday not in('1990-01-01','1990-12-21','2017-12-20','2012-06-06');
MySQL中的分页查询, limit通常放在sql语句的最末尾
从第4条数据之后开始,查询3条数据
从第10条之后的数据开始查询4条数据
select* from student limit 5;
select* from student limit 9,6;
select* from student limit 6 offset 9;
如果字段没有要求非空,则字段值可以为空,就是null值。如果要查询某个字段为 null的数据,不能使用字段名=null,要用字段名 is null;
1.查询teacher表,给tid起别名为教师编号,tname起别名为教师姓名
select tid as教师编号,tname as教师姓名 from teacher
2.查询 sc表,给 cid起别名为课程编号,sid起别名为学生编号, score起别名为分数;
select cid课程编号,sid学生编号,score分数 from sc
3.查询 course表,给表起别名为 c,使用 c.字段查询表数据
起别名是为了后续学习多表联查做铺垫,语法十分简单
比如查询 student表的学生姓名和生日的sql语句:
select sname,birthday from student;
给 sname,birthday字段起别名,改为中文
select sname as姓名,birthday as生日 from student;
起了别名后,查出来的字段会以别名展示。
as关键字也可以省略,字段名和别名之间用空格隔开即可
select sname姓名, birthday生日 from student;
select a.sname, a.birthday from student as a;
给表起别名同样是使用 as关键字(可以使用空格隔开代替as关键字), a就代表 student表,查询字段时,可以使用 a.sname代表 student的sname字段。
给表起别名通常用在多表查询,本次使用演示,先熟悉语法。
在某些复杂的场景下,可能需要多条sql才能查询出想要的数据,把多条sql拼接起来就是嵌套查询
select XXX from A表 where xx=/in(select XXX from B表)
select XXX from(select XXX from XXXX)b
join(select XXX from B表)b on a.xx= b.xx
select* from sc where sid=(select sid from student where sname='周梅');
select* from sc where sid in(select sid from student where sex='女');
select a.sname,b.score,c.score from student a
inner join(select sid,score from sc where cid=1) b on a.sid= b.sid
inner join(select sid,score from sc where cid= 2) c on a.sid= c.sid
where b.score› c.score;
聚合函数对一组值执行计算,并返回单个值,也被称为组函数。
就是sql提供的一种查询方法,比如查询最大值,最小值,总数,平均等等。
聚合函数不能写在where的查询条件里面
select max(tid) from teacher;
select min(tid) from teacher;
select max(a.score),b.cname from sc a
inner join course b on a.cid=b.cid
where a.sid=(select sid from student where sname='周梅') group by b.cname limit 1;
select avg(s.score) from student a inner join sc s on a.sid= s.sid
count()是查询总共有多少条数据
count(字段)是查询该字段不为 null的总共有多少条数据
去重,查询数据时,相同的数据只展示一条
例:去重查询学生表中的生日字段
select distinct birthday from student;