八 mysql學習筆記 mysql格式化(五)

2021-10-03 12:24:55 字數 1851 閱讀 9588

上一節學習了mysql的alter語句、索引/主鍵等新增/更改操作、以及表單內重複資料的處理,本節將學習mysql的null值處理、正則化、序列(有序數列)等。

在mysql中,沒有「=null、!=null」等判斷語句,只有「is null"、「is not null」、「<=>」等判斷語句,當符合條件時返回true,否則返回為空「empty」。

mysql的正規表示式與php/perl類似,使用regexp後跟固定結構來匹配:

select column_name from table_name where column_name regexp '...';

以下是固定結構:

模式描述

^匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,^ 也匹配 '\n' 或 '\r' 之後的位置。

$匹配輸入字串的結束位置。如果設定了regexp 物件的 multiline 屬性,$ 也匹配 '\n' 或 '\r' 之前的位置。

.匹配除 "\n" 之外的任何單個字元。要匹配包括 '\n' 在內的任何字元,請使用象 '[.\n]' 的模式。

[...]

字元集合。匹配所包含的任意乙個字元。例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^...]

負值字元集合。匹配未包含的任意字元。例如, '[^abc]' 可以匹配 "plain" 中的'p'。

p1|p2|p3

匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。

*匹配前面的子表示式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於。

+匹配前面的子表示式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 。

n 是乙個非負整數。匹配確定的 n 次。例如,'o' 不能匹配 "bob" 中的 'o',但是能匹配 "food" 中的兩個 o。

m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。

例如:select name from tcount_tbl where name regexp '^mi'; 匹配以mi開頭的字串

select name from tcount_tbl where name regexp 'ok$'; 匹配以ok結尾的字串

select name from tcount_tbl where name regexp '[an]'; 匹配含『an』中任一字元的字串

select name from tcount_tbl where name regexp '[^an]'; 排除只含『an』中任一字元的字串(即只有a或n組成),匹配剩下的字串

select name from tcount_tbl where name regexp 'o'; 匹配以含連續兩個o的字串

select name from tcount_tbl where name regexp 'o'; 匹配含o最少一次最多兩次的字串

select name from tcount_tbl where name regexp '^[mi]|ok$'; 匹配以』mi『中任一字元開頭或以』ok『結尾的字串

通常的序列用來對id(整數)操作,常用的幾個操作如下:

使用auto_increment來實現id自增:

alter table table_name add id bigint not null auto_increment first;

alter table table_name add primary key(id);

MySQL讀書學習筆記(八) 複製

mysql內建的複製功能是構建基於mysql的大規模 高效能應用的基礎,這類應用使用所謂的 水平擴充套件 的架構。我們可以通過為伺服器配置乙個或多個備庫的方式來進行資料同步。複製功能不僅有利於構建高效能的應用,同時也是搞可用性 高擴充套件性 災難恢復 備份以及資料倉儲等工作的的基礎。8.1 概述 複...

mysql學習筆記(八)事務管理

事務通俗的說就是資料庫中一系列sql操作,如果操作成功,就進行提交,如果操作失敗,就回滾至sql語句操作前的狀態。建表 create table bankaccount id int not null auto increment primary key,name varchar 10 not nu...

(八)MySQL學習筆記 觸發器

觸發器有三種 觸發器型別 old的含義 new的含義 insert 型觸發器 無 因為插入前狀態無資料 new 表示將要或者已經新增的資料 update 型觸發器 old 表示修改之前的資料 new 表示將要或已經修改後的資料 delete 型觸發器 old 表示將要或者已經刪除的資料 無 因為刪除...