当前位置:首页 » 编程语言 » oracle语句和sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle语句和sql

发布时间: 2023-05-15 17:22:36

⑴ mysql数据库的SQL语句和oracle的有什么区别详细点

首先是大体一致的,只是分页查询时oracle用的伪列(rownum),mysql用的是limit,具体的可以网络一下分页;
另外oracle对sql语句要求更为严格,而且oracle里变量较mysql更多点,oracle中有number型,有大数据类型,mysql没得;
另外举个例子,oracle不能插入为空列,而mysql是可以的(个人觉得,不知道正确与否)。还有他们两者函数有不同之处,如转日期函数oracle是to_date('要转的字符串','格式') -- select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from al,而mysql是str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09//都是针对字符串转日期来的。
还有一点,我们常常希望主键可以自动增长,避免我们插入数据时的重复问题,但是oracle不能设置列自动增长,而mysql是可以的,oracle可以用序列加触发器来解决自动增长问题达到与mysql一样的效果。

总体来说百分之九十的sql语句是没区别的。总体来说oracle的格式严格点,对有些字符型的还必须加单引号才能插入,mysql要求就没这么多了。还有当向数据库插入一个日期时,mysql可以直接插入成功,但是oracle需要先转化为sql里面的日期类型才行;oracle较mysql而言更安全,但是收费的,一般大公司用的多。oracle还有存储过程和函数,触发器这些这是mysql没有的。大体就是这样吧。

⑵ ORACLE和SQLServer-SQL语句的区别

1、Oracle对闭桐枯于外连接操轮没作可以使用(+);标准SQL用join on语法。
2、Oracle提供专门的系统变量sysdate;标准SQL没有。
3、Oracle提轿洞供特有的转换函数,例如:to_char,to_date,to_number等等;标准SQL没有。

⑶ oracle sql语句 分为哪些

Oracle SQL语句分类
SQL(Structured Query Language)即结构化查询语句,应用程序与数据库交互的接口
集数据操作、数据定义、数据控制等功能于一体
ANSI先后制定推出了SQL-89、SQL-92、SQL-99标准

oracle SQL 语句主要分为一下四类:

DML(Data Mannipulation Language)数据操纵语言:查询、操纵数据表资料行
SELECT : 检索数据库表或视图数据
INSERT : 将数据行新增至数据库表或视图中
UPDATE : 修改表或视图中现有的数据行
DELETE : 删除表或视图中现有的数据行
注意:DML语句不会自动提交事务!

DDL(Data Definition Language)数据定义语言:建立、修改、删除数据库中数据表对象
CREATE TABLE : 创建表
ALTER TABLE : 修改表
DROP TABLE : 删除表
注意:DLL语句会自动提交事务!所以:DML语句事务提交之前可以回滚,DDL语句不能回滚事务

DCL(Data Control Language)数据控制语言:用于执行权限授予与收回操作
GRANT : 给用户或角色授予权限
REVOKE : 收回用户或角色的所有权限

TCL(Transactional Control Language)事物控制语言:维护数据的一致性
COMMIT :提交已经进行的数据库改变
ROLLBACK : 回滚已经进行的数据改变
SAVEPOINT : 设置保存点,用于部分数据改变的取消

⑷ SQL SERVER和ORACLE中SQL语句一样吗

Oracle与Sql server都遵循SQL-92标准:
区别如下:

1.Oracle中表名,字段名,存储过程名,变量名不能超过30个字符串长度。

2.Oracle中不支持Top 语法。使用whererownum < n 代替。但需要注意如果在Top前有排序的操作,则需要先排序在利用rownum取得。

3.Oracle中光标的使用与SqlServer中有挺大差别,主要是在循环控制方面不一致。

在Oracle中如果某列是Date类型,那么它默认的格式是yyyy-MM-dd,如果使用where colDate = ‘2005-06-08 17:14:57’就会出错,‘2005-06-08’可以。如果此时需要精确比较时间(小时,分,秒),可以采用下列方法:TO_DATE('2005-6-8 17:14:57','yyyy-mm-dd hh24:mi:ss')。由于Oracle和SQLServer在DateTime上对SQL标准的拓展实现方式不同,因此不能用同一个SQL实现。

4.Oracle中的TimeStamp(时间戳)与SqlServer中的差别很大。SqlServer中的TimeStamp是二进制格式存储在数据库中,可以将DataSet中的这个字段类型设定为base64Binary类型。Oracle中的TimeStamp是时间格式存储的。因此,无法用同一个DataSet既装载SqlServer的TimeStamp,有装载Oracle的TimeStamp.由于在应用程序中很少用到这个值,因此可以不检索这个字段。

5.Oracle中的TimeStamp不能像SqlServer在传入数据的时候自动填充,可以设定默认值systimestamp来实现类似功能。

6.Oracle中没有Boolean的字段类型,可以用intger或者char代替SqlServer中的bit类型。

7.Oracle中会将””空字符串当多NULL处理,也就是说,当应用程序往数据库中插入一个空字符串时,实际数据库会尝试插入一个NULL。如果这个字段是NOTNULL类型,那么就会出错,这种情况下可以用别的默认值代替空字符串。当从SqlServer导入数据到Oracle的时候,在NOTNULL列上的空字符串会导致导出操作失败。此时可以在导出向导中手工修改SQL脚本,将空字符串设定成一个特殊值。

8.Oracle中不支持,SELECT . . INTO创建新表,要用CREATE TABLE 表名AS SELECT 语句 ,创建新表。

9.在Oracle中连接字符串用 ‘||’ 或CONCAT(COL1,COL2)函数,不能使用‘+’。

统配符 [],[^] ,Oracle好像也不支持。

⑸ ORACLE 和 SQL区别

这两种数据库在不同方面都有着很大的区别,以下是具体的区别:

1.开放性: 1. SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。 2. Oracle 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。

2.可伸缩性:并行性 1. SQL server 并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 2. Oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。

3.性能: 1. SQL Server 多用户时性能不佳 2. Oracle 性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。

4.客户端支持及应用模式 :1. SQL Server C/S结构,只支持windows客户,可以用ADO、DAO、OLEDB、ODBC连接。 2. Oracle 多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。

5.操作简便性: 1. SQL Server 操作简单,但只有图形界面。 2. Oracle 较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同。

6.使用风险性 :1. SQL server 完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容。 2. Oracle 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。

7.价格:ORACLE贵过SQLSRVER

⑹ oraclesql条件语句

1. oracle SQL查询中,如何在where中用条件语句,判断不同情况,追加不同的And条件

1、先创建一个简单的数据表。

2. oracle数据库中多条脊碧件查询语句怎么写

1、首先需要打开一个oracle数据库界面。

3. oracle sql条件查询

update tb
set studystatus = '002'
where exsist (
select c.courseid
from tb c
where c.courseid = tb.courseid and c.studystatus = '002'
) and studystatus != '002';

说明: 使用exists做条件, 如果有courseid值相同的, 且studystatus为002的, 则将studystatus更新为002, 条件studystatus != '002'则是限制已经为002的记录不需要更新.

你是要修改查询到的结果? 可以在查询语句中使用case when来根据条件得到不同的值:
select s.courseid, case when exists (select c.courseid from tb c where c.courseid = s.courseid and c.studystatus = '002' and rownum < 2) then '002' else s.studystatus end as studystatus
from tb s;
这个是不是你想要的?

4. oracle sql语句时间条件

where time beeen '08:00' and '18:00'

以上是大概意思,具体时间的表示方法要根据数据库时间字段的类型和格式来。

5. ORACLE sql 里面可以用if 语句吗语法是什么

insert 语句中值的顺序如果和表结构一致可以省略列名列表。
这个物野册SQL的意思没看懂,我给分析一下看对不对,
你是不是想表达这个意思:
如果在yangao这个表中存在age3=4的数据,那么,就向yangao中插入一行数据,行数据的内容是罩宏(4,NULL,1).
如果是这样的话,那么IF用的是不对的。
在SQL里面条件的关键字是WHERE。
insert into yangao values(4,NULL,1)
where exists (select * from yangao where(AGE3=4));
mit;
但如果你想表达的是:
在yangao表中插入一条数据,如果存在(select * from yangao where(AGE3=4)) 这样的数据就提交的话,那么应该这么写:
insert into yangao values (4, NULL, 1);
select count(*) into n_count from yangao where (AGE3 = 4);
if n_count > 0 then
mit;
end if;

6. vc 中Oracle sql多条件查询语句怎么写
where1=1--这个你写在后台
and条件1--其他的你就按这种方式来拼就行了,其他的条件不输入也不影响你前边的执行
and条件2
and条件3
and条件4
能按懂吧?

7. oracle数据库条件判断的查询语句怎么写

建表,测试数据:
createtabletest
(收款标志int)

insertintotestvalues(1);
insertintotestvalues(1);
insertintotestvalues(1);
mit;
执行:

selectcase
whena.cnt=b.cntthen
'未收款'
whena.cnt=d.cntthen
'已收款'
whenc.cnt<>0then
'部分收款'
end收款状态
from(selectcount(*)cntfromtest)a,
(selectcount(*)cntfromteshere收款标志=1)b,
(selectcount(*)cntfromteshere收款标志=2)c,
(selectcount(*)cntfromteshere收款标志=3)d
结果:

然后你自己换点其他数据测试一下吧,思路就这么个思路了。

8. 如何在Oracle的Where语句中添加条件判断

*******************
plsql写法:
*******************
1、在sqlplus 中定义一个 游标变量
var p_cursor refcursor

2、写一个plsql过程块
declare
sql_str varchar(1000) := ' ';
begin
if 2 > 1 then
sql_str := 'select * from student where Name=''小王''';
else
sql_str := 'select * from student where Name=''小李''';
end if;
open :p_cursor for sql_str;
end;

3、在sqlplus中打印输出结果
print p_cursor;

***************
补充:有点错误修正了下
***************

---
以上,希望对你有所帮助。

9. Oracle sql查询 in 条件语句

你这样的语句本身应该是有问题的吧,你是想要实现什么样的效果,如果只是想找出tableName表中不同的id,可以这样查:
select distinct id from tableName;

10. Oracle SQL语句实现按条件表达式更新列数据

update .. set col_length=(length(col_number)-4)/2+1

⑺ Oracle和MySQL在SQL语句方面的区别

首先是大体一致滑顷的,只是分页查询时oracle用的伪列(rownum),mysql用的是limit,具体的可以网络一下分页;
另外oracle对sql语句要求更为严格,而且oracle里变量较mysql更多点,oracle中有number型,有大数据类型,mysql没得;
另外举个例子,oracle不能插入为空列,而mysql是可以的(信瞎陆个人觉得,不知道正确神亩与否)。还有他们两者函数有不同之处,如转日期函数oracle是to_date('要转的字符串','格式') -- select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from al,而mysql是str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09//都是针对字符串转日期来的。

⑻ oracle sql与标准的sql语句的区别

SQL语句区别!你能告诉我,哪一种数据库的SQL语句才是标准的SQL语句了我倒是可以说一下SQLSERVER与ORACLE的小区别SQLSERVER 里面取前几条数据都是用Top 而ORACLE里面没有S: select top (5) * from 表O:select * from 表 rownum>0 and rownum<6再有一个是ORACLE要查一个任意字符的话,一定要借助临时表daul;而SQLSERVER 不用例:S:select '我是一个中国人'O:select '我是一个中国人' from daul;

⑼ oracle数据库的基本语法与SQL一样吗

sql语句基本相同,各厂商有自己新加语句,相似功能不同实现方法,所以某些语句有不同。