MySql/JDBC
1.数据库测试:/usr/local/mysql/bin
启动:net start mysql
停止:net stop mysql
连接:mysql -uroot -p
显示:show database;
创建:create database dbname;
使用:use database;
显示表:show tables;
显示详细信息:desc table_name;
2.数据库的数据类型
分为三种:数值类、字符串类、和日期时间类型;
(1)数值类:
整型
tinyint: 1字节 非常小的正整数
smallint: 2字节 小整数
mediuint: 3字节 中等大小的整数
int: 4字节 标准整数
bigint: 8字节 大整数
浮点型
float: 4字节 单精度浮点数
double: 8字节 双精度浮点数
decimal: M+2字节 以字符串形式存放的浮点数
数值类型数据列的属性
unsigned: 不允许数据出现负数
zerofill: 如果数值小于定义的宽度,则在数值前补0
null/not null: 设置数据列是否为空
default: 指定数据列的默认值
auto_increment: 该列可产生一个独一无二的序列
(2)字符串类:(可以存放任何数值,存放文字、图片、声音、压缩包)
char:固定长度,存储数据时不够长度的右边补空格
varchar:可变长类型,存储数据时按实际长度存储
blob:二进制字符串,可存放大容量信息
text:非二进制字符串,可存放大容量的信息
(3)时间日期类型:
date: "YYYY-MM-DD"
time: "hh:mm:ss"
datetime: "YYYY-MM-DD hh:mm:ss"
year: "YYYY"
3.数据库中的基本操作:create select insert update delete
create table t_name(is int(10),...);
drop table t_name;
delete from t_name;
insert into t_name values(...);
select * from t_name;
select id,name from t_name;
update t_name set id=2 where id=1;
alter t_name add column_name char(5);
修改字段名和类型:alter t_name change old_column_name new_column_name new_type;
删除字段:alter t_name drop column_name;
修改字段属性:alter t_name modify column_name date;
例子:
drop table if exists user;
create table if not exists user(
id int not null primary key auto_increment,
name varchar(40) not null unique,
age int,
sex boolean default false,
email varchar(50),
phone int(11),
idcard char(18),
qq varchar(10)
)engine=innoDB;
4.分页浏览
mysql:(查询从第m条开始的k个记录)
每页pagesize 第n页
m = (n-1)*pagesize;
k = pagesize;
select * from t_name limit m,k;
oracle:
select id, name, age from(
select id, name, age, rownum rn from user where rn < m+k
) where rn >= m;
5.JDBC
(1) 注册驱动
Class.forName("com.mysql.jdbc.Driver"); 驱动名:mysql-connection-java-bin.jar;
Class.forName("oracle.jdbc.driver.OracleDriver"); 驱动名:ojdbc14.jar;
(2) 创建连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", username, password);
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:db_name", username, password);
(3) 通过连接(Connection)创建Statement对象
Statement stmt = conn.createStatement();
PreparedStatement ps = conn.prepareStatement(sql);
(4) statement执行sql
stmt.executeQuery();
ps.executeQuery();
ps.set(key,value);
执行sql的三种方法:
ResultSet executeQuery(); ---select
int executeUpdate(); ---insert update delete
boolean execute(); ---可以执行以上两种
(5) 处理结果并返回
(6) 关闭资源
rs.close();
stmt.close();
conn.close();
6.补充(设置编码问题)
(1) 创建数据库时启动mysql使用参数
mysql -uroot --default -character -set utf8;
(2) 创建数据库
create database summer(库名) default character set utf8;
执行脚本
(3) 创建表
create table emp(表名)(列表……) default character set utf8;
(4) sql脚本的执行
source /home/XX.sql
(5) 修改mysql数据库连接
jdbc:mysql://localhost:3306/dy(库名)?useUnicode=true&characterEncoding=utf8;