在線文檔參考
jdbc url:
詳細屬性可參考
Eg:
jdbc:mysql://localhost:3306/test?user
=root&password=&useUnicode=true&characterEncoding=utf8
mysql URL: mysql -uroot -p --default-character-set=utf8
協調 SQL 詳細:
這就重點說下:SHOW
1. 查看全部庫支持字符 如:'gb%' -gbk,gb2312
SHOW CHARACTER SET LIKE '%' ;
2. 查看列
show columns from user from mysql ;
show columns from mysql.user ;
desc mysql.user ;
//簡化
//更方便的 查看 列名 模糊查詢列名為 'Select%' (desc information_schema.columns 還有更多驚喜)
select column_name from information_schema.columns where column_name like 'Select%' ;
3. 查看數據庫,表結構;當然你們也可以仿照下此再建自己的庫,表
show
show create database information_schema"G
show create table mysql.user"G
4.權限查看
SHOW GRANTS FOR 'root'@'localhost';
.....(詳細參考
)
SQL 詳細
這就上寫自己一些有感覺的sql :參考
1.只查詢重復 Eg:
create
table
c (id
int
);
insert
into
c
values
(
1
),(
2
),(
3
),(
4
),(
3
),(
5
),(
6
),(
1
);
結果:
select
id
from
c
group
by
id
having
count
(id)
>
1
;
2.報表查詢橫向輸出 Eg:
Create table d(id int,name varchar(50));
insert into d values(1,'gly');
insert into d values(2,'ptgly');
insert into d values(3,'ybgly');
insert into d values(4,'ptgly');
insert into d values(5,'ybgly');
+---+-----+------+
|gly |ptgly|ybgly|
+---+-----+------+-
|1 |2 |2 |
+---+-----+------+
select
sum
(
case
when
name
=
'
gly
'
then
1
else
0
end
)
as
gly ,
sum
(
case
when
name
=
'
ptgly
'
then
1
else
0
end
)
as
ptgly ,
sum
(
case
when
name
=
'
ybgly
'
then
1
else
0
end
)
as
ybgly
from
d ;
3.復雜組合查詢
create table table_a (No int, No2 int,num double,itime date);
insert into table_a values
(1234,567890,33.5,'2004-12-21'),
(1234,598701,44.8,'2004-11-21'),
(1234,598701,45.2,'2004-10-01'),
(1234,567890,66.5,'2004-9-21'),
(3456,789065,22.5,'2004-10-01'),
(3456,789065,77.5,'2004-10-27'),
(3456,678901,48.5,'2004-12-21');
按月統計銷售表中貨物的銷售量數
查詢結果如下:
No, No2 , 九月, 十月,十一月,十二月
1234,567890, 66.5 , 0 , 0 , 33.5
1234,598701, 0 , 45.2, 44.8, 0
3456,789065, 0 , 100, 0 , 0
3456,678901, 0 , 0, 0 , 48.5
-----------------------------------------------------------------------
//當然也可以 使用mysql 時間函數 在軟件編輯時 你可以輸入 String[] 并根據數據動態拼寫 sql( case部分!! )
//這個 例子很好 哦!報表可以一句sql 得出!
select
NO,NO2,
sum
(
case
when
itime
like
'
2004-%9%
'
then
num
else
0
end
)
as
9M,
sum
(
case
when
itime
like
'
2004-10%
'
then
num
else
0
end
)
as
10M,
sum
(
case
when
itime
like
'
2004-11%
'
then
num
else
0
end
)
as
11M,
sum
(
case
when
itime
like
'
2004-12%
'
then
num
else
0
end
)
as
12M
from
table_a
group
by
no,no2
order
by
no,no2 ;
4.字符集子層關系
1 a
2 b
11 c
(代碼11表示為1的下級)
我要通過一條句子,得出如下結果:
Create table TabTest(t_Code varchar(10),t_Name varchar(10));
insert into TabTest values('1','a');
insert into TabTest values('2','b');
insert into TabTest values('11','c');
--------------------------------------------------------------
select
tt1.t_Code,tt1.t_name,(
case
when
exists
(
select
1
from
tabtest tt2
where
tt2.t_code
like
CONCAT(tt1.t_code,
'
%
'
)
and
tt2.t_code
<>
tt1.t_code )
then
'
you
'
else
'
wu
'
end
)
as
you_wu
from
tabtest tt1 ;