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;