mysql 學習碎片

2021-09-08 22:21:48 字數 2808 閱讀 9400

1、mysql 中執行 sql字串

set

@strsql='

select 1200 as item';

prepare select_sql from

@strsql;

execute

select_sql;

#輸出+

------+

| item |+--

----+

|1200|+

------+

2、字元型別字段轉換成整型

select

cast( '

123'

as signed) as

id;+

-----+

| id |+--

---+

|123|+

-----+

3、將查詢結果批量寫入表中

insert

into tb_1(id,title) select id,title from tb_2;

4、判斷儲存過程是否存在,存在則刪除

drop

procedure

ifexists b2b_bidding.temp_proc_update_zb_table_uid;

5、簡單儲存過程定義

create

procedure

proc_modify_tb1_id()

begin

#定義變數

declare _max_uid integer

;

declare _table_name varchar(1000

);

# 招標附屬表 b2b_bidding.bid_announcements_expand

set _max_uid=( select

max(cast(str_id as signed))+

1from

tb_1) ;

set _table_name=

'tb_1';

ifexists(select

*from tb_id_generation where table_name=_table_name) then

update tb_id_generation set table_id= _max_uid where table_name=

_table_name;

else

insert

into tb_id_generation (table_name,table_id ) values

(_table_name,_max_uid);

endif

;

end;#執行儲存過程

call proc_modify_tb1_id();

6、常用insert/updata語句

6.1》 通過 ignore 實現插入資料主鍵衝突,sql執行不成功但不丟擲異常。

insert ignore into  mytab(id,title,`where`) values (1,'

aaaa

','aaaaaa

');

6.2》主鍵衝突,則通過 on duplicate key  執行update

insert ignore into  mytab(id,title,`short_title`) values (1,'

xx****

','xx公司')

on duplicate key

update title=

'update-xx****

',`short_title` =

'update——xx公司

';

6.3 》存在滿足條件記錄,則新增記錄進入表中

insert

into mytab(id,title,`where

`) select

3,'3

','333

'from

mytab

where

exists (select

1from mytab where

1<>

1);

6.4》存在主鍵相同的記錄著直接替換已經存在的記錄 字段值

replace

into mytab select

1, '

t1','

tttttt2

'from mytab;

7、find_in_set函式,匹配字段屬性值

mysql>

select

*from test.my_tb where find_in_set(parent_code,'

01,02');

+----+-------------+------+

| id | parent_code | code |+--

--+-------------+------+|1

|01|001||

2|01|

001||3

|02|001||

4|01|

003||5

|02|002|+

----+-------------+------+

8、根據 漢字對應的首字母排序

order by	convert(chinese_file using gbk )

mysql碎片空間 mysql碎片應用

1.查詢結果集中自增功能 set i 0 select i i 1 id 2.資料庫備份 mysqldump database uroot p beifen.sql 3.資料庫表空間tablespace優化 show table status from database like table nam...

mysql索引碎片整理 MysqL碎片整理優化

先來說一下什麼是碎片,怎麼知道碎片有多大!簡單的說,刪除資料必然會在資料檔案中造成不連續的空白空間,而當插入資料時,這些空白空間則會被利用起來.於是造成了資料的儲存位置不連續,以及物理儲存順序與理論上的排序順序不同,這種是資料碎片.實際上資料碎片分為兩種,一種是單行資料碎片,另一種是多行資料碎片.前...

mysql碎片整理 提速 MysqL碎片整理優化

先來說一下什麼是碎片,怎麼知道碎片有多大!簡單的說,刪除資料必然會在資料檔案中造成不連續的空白空間,而當插入資料時,這些空白空間則會被利用起來.於是造成了資料的儲存位置不連續,以及物理儲存順序與理論上的排序順序不同,這種是資料碎片.實際上資料碎片分為兩種,一種是單行資料碎片,另一種是多行資料碎片.前...