MySQL应用
关系型数据库,中小型数据库,安装使用方便。Oracle是大型,会更稳定、功能更强。MySQL方便、快捷。
MySQL和Oracle不同
-
存储结构和访问权
MySQL: 用户、库、表、索引、过程等
Oracle: 用户、用户空间、表、索引、过程、序列等Oracle登录后,默认访问用户空间下的表、索引等元素
MySQL登录后,可以访问各个库中表、索引等元素 -
MySQL安装
按提示向导,下一步、下一步即可。以下两个界面需要改变:
指定表存储默认字符集

为root帐号指定密码

-
表结构
-
建表
create table xxx(
字段名1 类型,
字段名1 类型
) -
Oracle字段类型(重点)
NUMBER、VARCHAR2、CHAR、DATE、TIMESTAMP、CLOB、BLOB等
create table dept(
deptno NUMBER primary key,
dname VARCHAR2(20),
loc VARCHAR2(50)
); -
MySql字段类型(重点)
int、long、double、float、varchar、char、date、time、datetime、timestamp、text、clob、blob等
create table dept(
deptno int primary key,
dname VARCHAR(20),
loc VARCHAR(50)
)ENGINE=InnoDB DEFAULT CHARSET=utf8; -
表引擎(重点)
MyISAM表,目前它都不支持事务,行级锁和外键约束的功能。
InnoDB:InnoDB表类型可以看作是对MyISAM的进一步更新产品,它提供了事务、行级锁机制和外键约束的功能 .通过show create table xxx;命令可以查看表的引擎和编码。
-
主键(重点)
oracle使用序列生成递增主键值。(建一个表,相应建一个序列)
mysql不支持序列,字段有自动递增功能。(建表时指定自动递增就可以)create table dept( deptno int auto_increment primary key, dname VARCHAR(20), loc VARCHAR(50) )ENGINE=InnoDB DEFAULT CHARSET=utf8; -
约束
添加约束SQL跟Oracle相同
-
修改表结构
alter table xxx 与oracle相同
-
-
SQL语句
-
DQL(select查询)
select ... from ... where ... group by ... having ... order by ...基本结构使用与Oracle相同,分页不同。
Oracle中分页使用select嵌套,基于rownum做分页
MySQL中分页使用limit ?(起点),?(数量)select * from dept limit 0,5;//前5条
select * from dept limit 5;//等价于0,5
select * from dept limit 5,5;//第6-10条 -
DML(insert,update,delete)
与Oracle没有区别,相同。注意下insert操作
//oracle
insert into dept (deptno,dname,loc) values(dept_seq.nextval,?,?)//mysql
insert into dept(dname,loc) values (?,?) //deptno设置了自动递增 insert into dept(dname,loc) values ('java','beijing'),('php','shanghai')
-
-
关键字或函数
Oracle: sysdate、字符函数、日期函数、数字函数
mysql:now()、函数查资料,与oracle不同。分组统计函数都支持,例如max,min,avg,sum,count函数。
MySQL特有使用
-
库操作
-
创建库
create database xxx;
-
查看库
show databases;
-
删除库
drop database xxx;
-
使用库
use xxx;
-
-
表操作
注意:必须先use 库,才能对表操作。
-
查看库中有哪些表
show tables; -
建表
create table direction( id int auto_increment primary key, name varchar(20), order_id int )engine=Innodb default charset=utf8; -
修改表结构
alter table direction add order_id int; -
查看表结构
desc direction; -
删除表
drop table direction;
-
-
记录操作
-
insert
insert into direction (name,order_id) values ('前端开发',1); insert into direction (name,order_id) values ('后端开发',2),('移动开发',3); -
update
update direction set order_id=1 where id=2; update direction set order_id=2 where id=1; -
delete
delete from direction; delete from direction where id=? -
select
select * from direction; select * from direction order by order_id limit 0,2; select * from direction order by order_id limit 2,2;
-
Java访问mysql
Java 访问mysql跟访问oracle代码完全相同,区别在于
-
驱动包需要改变
oracle驱动:ojdbc.jar
mysql驱动:mysql-connector-java-5.1.7-bin.jar -
连接参数需要改变
oracle 连接参数:
驱动类:oracle.jdbc.OracleDriver 连接URL:jdbc:oracle:thin:@localhost:1521:XE 帐号:scott 密码:tigermysql 连接参数:
驱动类:com.mysql.jdbc.Driver 连接URL:jdbc:mysql://localhost:3306/库名 帐号:root 密码:1234 连接URL可以指定连接编码,指定格式 连接URL:jdbc:mysql://localhost:3306/库名?useUnicode=true&characterEncoding=utf8 在XML文件中如果指定编码,需要将&替换成&实体。 因为&在XML属于敏感字符,必须用实体替换。