mysql 较 oracle 查询语句的不同

2023-10-20 18:23:17 浏览数 (3)

mysql 与 oracle 的查询语法有一部分不太相同,特别是在多表查询时,mysql 无法适应 oracle 的做外连接和右外连接的查询语法,自己有另外一套查询语法,与 ms sql server 相似。所以这里列举一下,方便以后查询和使用。


数据库操作

创建

代码语言:javascript复制
create database dbname
create database dbname character set utf8
create database dbname character set utf8 collate utf8_general_ci

查看

代码语言:javascript复制
show databases;
show create database dbname

修改

代码语言:javascript复制
alter database dbname character set utf8

删除

代码语言:javascript复制
drop database dbname

表操作

创建

代码语言:javascript复制
create table tablename(tid int, tname varchar(20))
create table tablename(tid int, tname varchar(20)) character set utf8 collate utf8_general_ci

查看

代码语言:javascript复制
show create table tablename
desc tablename

修改

代码语言:javascript复制
rename table oldname to newname
alter table tablename add column height double
alter table tablename modify column height float
alter table tablename drop column height
alter table tablename character set utf8

删除

代码语言:javascript复制
drop table tablename

时间处理函数

当前时间

代码语言:javascript复制
now()

日期加减

代码语言:javascript复制
date_add(now(), INTERVAL 2 year)
date_sub(now(), INTERVAL 1 month)
date_add(now(), INTERVAL -1 day)

日期转换

代码语言:javascript复制
select date_format(now(), ‘%Y-%m-%d’)
select date_format(now(), ‘%Y-%c-%d’);
select date_format(now(), ‘%Y-%c-%d %h:%i:%s’);

年月日

代码语言:javascript复制
year(now())
month(now())
day(now())

内连接

代码语言:javascript复制
select d.deptno, count(e.empno)
from dept d left outer join emp e /* 取 join 左侧表的数据 */
on d.deptno = e.deptno
group by d.deptno;

select d.deptno, count(e.empno)
from emp e right outer join dept d /* 取 join 右侧表的数据 */
on d.deptno = e.deptno
group by d.deptno;

0 人点赞