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;