一.安装MySQL
略
注意,MySQL默认字符集是latin1(ISO_8895_1)。可以在安装MySQL的时候设置默认字符集。
MySQL默认帐户名称为root。
二.MySQL基本使用
MySQL命令行下输入?,回车,显示常用命令。
MySQL命令行下执行SQL脚本文件:使用 \. 后加sql脚本文化路径。
例如:
\. c:\\musql_script\\create_table_dept.sql
Oracle安装完毕,会直接有一个全局数据库。很多表建立在全局数据库中。每个人都只有自己的表。这些表创建在全局数据库中。
在MySQL中,没有全局数据库,需要自己创建数据库。
create database 数据库名称;
例如:create database mydatabase;
使用数据库: use 数据库名称;
创建表,标准SQL语句。
例如:
create table dept
(
deptno int primary key,
dname varchar(14),
loc varchar(13)
);
create table emp
(
empno int primary key,
ename varchar(10),
job varchar(10),
mgr int,
hiredate datetime,
sal double,
comm double,
deptno int,
foreign key (deptno) references dept(deptno);
);
查询MySQL中的数据库
show database;
显示数据库中的表
show tables;
注意,在显示数据库中的表之前,先要使用use命令选择数据库。
例如:
use mydatabase;
show tables;
查询表结构,即表的字段,字段的数据类型,字段的约束。
desc dept;
插入数据,使用标准SQL语句
insert into dept value(10,'A','a');
插入数据库后要提交数据
commit;
三.分页显示
在Oracle中的分页显示
MySQL中的分页显示,使用limit命令。
select * from dept order by deptno desc limit 3,2;
即显示第三条向之后的两条数据,不包括第3条数据。
select * from dept order by deptno desc limit 3;
即显示三条数据。
四.自动递增
Oracle自动递增
创建序列。递增即调用nextvalue;
MySQL的自动递增,使用auto_increment关键词
例:
create table article
(
id int primary key auto_increment,
title varchar(255)
)
插入数据
insert into article values(null,'a');
第一个字段可以为空。mysql会自动赋值。自增长列的第一个数字为1。
insert into article values(null,'b');
再插入则为2.
或者可以这样
insert into article (title) values(‘c');
五.日期处理
Oracle中的日期处理
待写。
MySQL中显示当前时间
select now();
日期格式转换函数
使用date_format()函数,把日期以一定格式的字符串返回(http://www.w3school.com.cn/sql/func_date_format.asp)
select date_format(now(),'%y-%m-%d %h:%i:%s');
向数据库中插入指定的日期
数据库内部将该格式的字符串转换成日期:'year-month-day hours:min:sec'
insert into emp values(9999,'test' ,'clerk',7369,'1981-12-23 12:23:23',1800,20,10);
六.JDBC连接MySQL
JDBC连接MySQL的常用url:jdbc:mysql://localhost/数据库名?user=用户名&password=密码
普通格式:jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值2]...
常用的几个较为重要的参数:
参数名称 | 参数说明 | 缺省值 | 最低版本要求 |
user | 数据库用户名 |
| 所有版本 |
password | 用户密码 |
| 所有版本 |
useUnicode | 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true | false | 1.1g |
characterEncoding | 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbk | false | 1.1g |
autoReconnect | 当数据库连接异常中断时,是否自动重新连接 | false | 1.1 |
autoReconnectForPools | 是否使用针对数据库连接池的重连策略 | false | 3.1.3 |
failOverReadOnly | 自动重连成功后,连接是否设置为只读 | true | 3.0.12 |
maxReconnects | autoReconnect设置为true时,重试连接的次数 | 3 | 1.1 |
initialTimeout | autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 | 2 | 1.1 |
connectTimeout | 和数据库服务器建立socket连接时的超时,单位:毫秒。0表示永不超时,适用于JDK 1.4及更高版本 | 0 | 3.0.1 |
socketTimeout | socket操作(读写)超时,单位:毫秒。 0表示永不超时 | 0 | 3.0.1 |
说明:
对应中文环境,通常mysql连接URL可以设置为:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
在使用数据库连接池的情况下,最好设置两个参数:autoReconnect=true&failOverReadOnly=false
注意:
在xml配置文件中,url中的&需要使用转义 & 。
比如在tomcat的server.xml中配置数据库连接池时,mysql jdbc url样例如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
JDBC连MySQL代码大概:
try{
Class.forName(“org.git.mm.mysql,Driver”).newInstance();
//或者这样:Class.forName(“com.mysql.jdbc.Driver);
String url=”jdbc:mysql://localhost/myDataBase?user=root&password=root”;
Connection conn=Drivermanager.getConnection(url);
...
}catch(IOEcception ex){
…
}finally{
…
}