4 MySQL基礎之常用函式

2021-10-07 04:38:04 字數 3527 閱讀 2288

-- 測試字串函式

--char_length()

:得到字串的字元數

select char_length

('abc');

--length()

:返回字串的長度

select length

('abc');

--concat

(s1,s2,s3)

:將字串合併成乙個字串

select concat

('a'

,'b'

,'c');

-- 如果字串中包含null,返回拼接結果就是null

select concat

('a'

,'b'

,'c'

,null);

--concat_ws

(x,s1,s2,s3...

):以指定分隔符拼接字串

select concat_ws

('-'

,'a'

,'b'

,'c');

-- 如果null在拼接內容中,則轉化成空字串

select concat_ws

('-'

,'a'

,'b'

,'c'

,null);

-- 如果分隔符為null,拼接結果為null

select concat_ws

(null

,'a'

,'b'

,'c');

-- 將字串轉換成大寫或者小寫upper()

|ucase()

lower()

|lcase()

select upper

('hello,king'),

ucase

('hello imooc'),

lower

('hello admin'),

lcase

('hello everybody');

-- 字串的反轉reverse()

select reverse

('abc');

--left()

|right()

:返回字串的前幾個字元或者後幾個字元

select left

('hello',2

),right

('hello',2

);--lpad()

|rpad()

:用字串填充到指定長度

select lpad

('abc',10

,'?');

select rpad

('abc',10

,'!');

-- 去掉字串兩端的空格 trim()

|ltrim()

|rtrim()

;select concat

('*'

,trim

(' abc '),

'*')

,concat

('*'

,ltrim

(' abc '),

'*')

,concat

('*'

,rtrim

(' abc '),

'*');--

repeat

(s):重複指定的次數

select repeat

('hello',3

);--replace()

:字串替換

select replace

('hello king'

,'king'

,'queen');

-- 擷取字串substring

('s1'

,x,y)

;把字串從x位置開始擷取y位

select substring

('abcdef',1

,3);

-- 比較字串,按照字元的阿斯科碼進行比較

select strcmp

('a'

,'b');

select strcmp

('a'

,'a');

select strcmp

('b'

,'a');

-- 日期時間函式

-- 返回當前日期

select curdate()

,current_date()

;-- 返回當前時間

select curtime()

,current_time()

;-- 返回當前的日期時間

select now()

,current_timestamp()

,sysdate()

;-- 返回日期中的月份和月份名稱

select month

('2017-02-19');

select month

(curdate()

),monthname

(curdate()

);-- 返回星期幾

select dayname

(now()

);-- 返回一周內的第幾天

select dayofweek

(now()

);select week

(now()

);select year

(now()

),month

(now()

),hour

(now()

),minute

(now()

),second

(now()

);--datediff

()計算兩個日期相差的天數

select datediff

('2017-03-06'

,'2017-03-02');

-- 測試其他常用函式

select version()

,connection_id()

;select database()

,schema()

;select user()

,current_user()

,system_user()

,session_user()

;-- 得到上一步插入操作產生auto_increment的值

use king;

select * from user1;

select last_insert_id()

;-- 加密函式

select md5

('king');

select length

(md5

('king'))

;--password()

:密碼加密演算法

select password

('root');

select * from mysql.user where user=

'root'\g

select length

(password

('root'))

;

4 MySQL儲存引擎

檢視當前mysql提供的儲存引擎 檢視當前mysql預設的儲存引擎 1 innodb儲存引擎 innodb是mysql的預設事務型引擎,它被設計用來處理大量的短期 short lived 事務。除非有非常特別的原因需要使用其他的儲存引擎,否則應該優先考慮innodb引擎。2 myisam儲存引擎 m...

4 MySql高階之觸發器

1.介紹觸發器是與表有關的資料庫物件,指在insert update delete 之前或之後,觸發並執行觸發器中定義的sql語句集合。觸發器的這種特性可以協助應用在資料庫端確保資料的完整性 日誌記錄 資料校驗等操作 使用別名 old 和 new 來引用觸發器中發生變化的記錄內容,這與其他的資料庫是...

mysql基礎 4 mysql支援的資料型別

1.數值型別 1 整數型別 tinyint,1個位元組,有符號 128 127,無符號 0 255 smallint,2個位元組,有符號 32768 32767,無符號 0 65535 mediumint,3個位元組,有符號 8388608 8388607,無符號 0 16777215 int in...