设为首页 收藏本站
查看: 475|回复: 0

[经验分享] oracle与mysql在sql语句上的区别

[复制链接]
YunVN网友  发表于 2016-8-13 06:46:50 |阅读模式
  
1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可以保存在表空间中。而MYSQL并没有使用表空间来进行管理。
        2.查询当前所有的表。ORACLE: select * from tab,MYSQL:show tables。
        3.改变连接用户(库)。ORACLE:conn 用户名/密码@主机字符串,MYSQL:use 库名。
        4.显示当前连接用户(库)。ORACLE:show user,MYSQL:connect。
        5.执行外部脚本命令。ORACLE:@a.sql,MYSQL:source a.sql。
比版本Personal Oracle 10 mysql 5.1
默认安装目录可选择C:/program files/MYSQL
各种实用程序所在目录可选择C:/program files//BIN
控制台工具SVRMGR.EXE
SVRMGR23.EXE
mysqladmin.exe
数据库启动程序0start73.exe screenmysqld-shareware.exe
关闭数据库命令ostop73.exemysqladmin.exe -u root shutdown
客户程序SQL*Plusmysql
启动命令c:/orawin95/bin/sqlplus.exec:/mysql/bin/mysql.exe
带用户启动方式
(直接连库方式)
c:/orawin95/bin/sqlplus.exe system/manager@TNSc:/mysql/bin/mysql.exe test
c:/mysql/bin/mysql.exe -u root test
安装后系统默认用户(库)sys
system
scott
mysql
test
显示所有用户(库)SQL >select * from all_users;C:/mysql/bin>mysqlshow
C:/mysql/bin>mysqlshow --status
mysql> show databases;
退出命令SQL> exit
SQL> quit
mysql> exit
mysql> quit
改变连接用户(库)SQL> conn 用户名/密码@主机字符串mysql> use 库名
查询当前所有的表SQL> select * from tab;
SQL> select * from cat;
mysql> show tables;
c:/mysql/bin>mysqlshow 库名
显示当前连接用户(库)SQL> show usermysql> connect
查看帮助SQL> ?mysql> help
显示表结构SQL> desc 表名
SQL> describe 表名
mysql> desc 表名;
mysql> describe 表名;
mysql> show columns from 表名;
c:/mysql/bin>mysqlshow 库名 表名
日期函数SQL> select sysdate from dual;mysql> select now();
mysql> select sysdate();
mysql> select curdate();
mysql> select current_date;
mysql> select curtime();
mysql> select current_time;
日期格式化SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;
SQL> select to_char(sysdate,'hh24-mi-ss') from dual;
mysql> select date_format(now(),'%Y-%m-%d');
mysql> select time_format(now(),'%H-%i-%S');
日期函数
(增加一个月)
SQL> select to_char(add_months(to_date('20000101','yyyymmdd'),1),'yyyy-mm-dd') from dual;
结果:2000-02-01
SQL> select to_char(add_months(to_date('20000101','yyyymmdd'),5),'yyyy-mm-dd') from dual;
结果:2000-06-01
mysql> select date_add('2000-01-01',interval 1 month);
结果:2000-02-01
mysql> select date_add('2000-01-01',interval 5 month);
结果:2000-06-01
别名SQL> select 1 a from dual;mysql> select 1 as a;
字符串截取函数SQL> select substr('abcdefg',1,5) from dual;
SQL> select substrb('abcdefg',1,5) from dual;
结果:abcde
mysql> select substring('abcdefg',2,3);
结果:bcd
mysql> select mid('abcdefg',2,3);
结果:bcd
mysql> select substring('abcdefg',2);
结果:bcdefg
mysql> select substring('abcdefg' from 2);
结果:bcdefg
另有SUBSTRING_INDEX(str,delim,count)函数
返回从字符串str的第count个出现的分隔符delim之后的子串。
如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。
如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。
执行外部脚本命令SQL >@a.sql1:mysql> source a.sql
2:c:/mysql/bin>mysql <a.sql
3:c:/mysql/bin>mysql 库名 <a.sql
导入、导出工具exp.exe
exp73.exe
imp.exe
imp73.exe
mysqldump.exe
mysqlimport.exe
改表名SQL> rename a to b;mysql> alter table a rename b;
执行命令;<回车>
/
r
run
;<回车>
go
ego
distinct用法SQL> select distinct 列1 from 表1;
SQL> select distinct 列1,列2 from 表1;
mysql> select distinct 列1 from 表1;
mysql> select distinct 列1,列2 from 表1;
注释--
#
--
当作计算器SQL> select 1+1 from dual;mysql> select 1+1;
限制返回记录条数SQL> select * from 表名 where rownum<5;mysql> select * from 表名 limit 5;
新建用户(库)SQL> create user 用户名 identified by 密码;mysql> create database 库名;
删用户(库)SQL> drop user 用户名;mysql> drop database 库名;
外连接使用(+)使用left join
查询索引SQL> select index_name,table_name from user_indexes;mysql> show index from 表名 [FROM 库名];
通配符“%”“%”和“_”
SQL语法SELECT selection_list 选择哪些列
FROM table_list 从何处选择行
WHERE primary_constraint 行必须满足什么条件
GROUP BY grouping_columns 怎样对结果分组
HAVING secondary_constraint 行必须满足的第二条件
ORDER BY sorting_columns 怎样对结果排序
SELECT selection_list 选择哪些列
FROM table_list 从何处选择行
WHERE primary_constraint 行必须满足什么条件
GROUP BY grouping_columns 怎样对结果分组
HAVING secondary_constraint 行必须满足的第二条件
ORDER BY sorting_columns 怎样对结果排序
LIMIT count 结果限定

 






在Oracle中写子查询,只需要将子查询用括号括起即可
(select A, B,?C from TABLE?where CONDITION)
在MySql中写子查询,需要在括号后面写上关键字 as Alias (假名)
(select A, B,?C from TABLE?where CONDITION)as table1
?
如果在MySql中不写后面的关键字,则会有以下的错误信息
Every derived table must have its own alias
?
行号 rownum?的书写规范
在Oracle中查询行号,直接写rownum就可以,还能起别名
select?ROWNUM row from TABLE where CONDITION
在MySql中查寻行号,需要在rownum前加@,且不能起别名
select @ROWNUM from TABLE where CONDITION
?
否则会有以下错误信息
Unknown column 'rownum' in 'field list'

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-256964-1-1.html 上篇帖子: 如何让ORACLE索引不起作用(不可见) 下篇帖子: 探索ORACLE之RMAN_07单个数据文件丢失恢复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表