久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL數據庫常用操作的示例分析

135次閱讀
沒有評論

共計 4252 個字符,預計需要花費 11 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 MySQL 數據庫常用操作的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下:

一、查詢不同表中同名字段 (表連接查詢條件神器)

use information_schema;
select * from columns where column_name= 字段名 

二、查詢記錄總數

SELECT SQL_CALC_FOUND_ROWS * FROM TABLE WHERE 1=1;

即可得出總數據行數

SET @RowCount=found_rows();

三、存儲過程數據查詢分頁

預定義變量:

/* 錯誤代碼 */
SET @RetCode= 1 
/* 錯誤提示 */
SET @RetVal= 1 
/* 返回記錄行數 */
SET @RowCount= 0 
/* 頁碼 */
SET @PageCount= 0 
/* 每頁顯示數 */
SET @CurrentItem=0;
/* 每頁顯示數 */
SET @PageSize=arg_page_size;
/* 頁碼 */
SET @PageCurrent=arg_page_current;
SET @SqlExe= select * from table where 1=1 
入參:arg_page_size int,arg_page_current int
IF(@PageCurrent IS NOT NULL   @PageSize IS NOT NULL) THEN
SET @CurrentItem = (@PageCurrent-1)*@PageSize;
SET @SqlExe=CONCAT(@SqlExe, LIMIT  , @PageSize,  OFFSET  , @CurrentItem);
SET @SqlExe=CONCAT(@SqlExe,   
END IF;
prepare stmt from @SqlExe;
execute stmt;
deallocate prepare stmt;
IF(@RowCount IS NOT NULL   @RowCount != 0) THEN
IF(@PageSize is null)then
SET @PageSize= @RowCount;
END IF;
SET @PageCount = ceiling(@RowCount/@PageSize);
SET @RowCount = 0;
SET @PageCount = 1;
END IF;

四、字符串相關操作

1、從左開始截取字符串

left(str, length)

說明:left(被截取字段,截取長度)

例:

select left(content,200)as abstract from my_content_t

2、從右開始截取字符串

right(str, length)

說明:right(被截取字段,截取長度)

例:

select right(content,200)as abstract from my_content_t

3、截取字符串

substring(str, pos)

substring(str, pos, length)

說明:

substring(被截取字段,從第幾位開始截取)

substring(被截取字段,從第幾位開始截取,截取長度)

例:

select substring(content,5)as abstract from my_content_t
select substring(content,5,200)as abstract from my_content_t

(注:如果位數是負數 如 - 5 則是從后倒數位數,到字符串結束或截取的長度)

4、按關鍵字截取字符串

substring_index(str,delim,count)

說明:substring_index(被截取字段,關鍵字,關鍵字出現的次數)

例:

select substring_index(blog.csdn.net,.,2)as abstract from my_content_t

結果:

blog.csdn

(注:如果關鍵字出現的次數是負數 如 -2 則是從后倒數,到字符串結束)

函數簡介:

SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

不帶有 len 參數的格式從字符串 str 返回一個子字符串,起始于位置 pos。帶有 len 參數的格式從字符串 str 返回一個長度同 len 字符相同的子字符串,起始于位置 pos。使用 FROM 的格式為標準 SQL 語法。也可能對 pos 使用一個負值。假若這樣,則子字符串的位置起始于字符串結尾的 pos 字符,而不是字符串的開頭位置。在以下格式的函數中可以對 pos 使用一個負值。

MySQL 字符串大小寫轉換

deMySQL 字符串大小寫轉化函數有兩對:lower(), uppper() 和 lcase(), ucase()

mysql select lower( DDD 
結果:ddd
mysql  select upper( ddd 
結果:DDD
mysql  select lcase( DDD 
結果:ddd
mysql  select ucase( ddd 
結果:DDD

通常情況下,我選擇 lower(), upper() 來轉換字符串大小寫,因為這和其他數據庫中函數相兼容。

五、時間獲取相關操作

declare _LastWeekStartTime date; --  上周開始時間
declare _LastWeekEndTime date; --  上周結束時間 

— 因系統為星期日為每星期第一天 所以需要減 1

set @A = date_add(curdate(), interval -1 day);

— 算出本周星期一的日期

set @B = subdate( @A,date_format(@A, %w)-1);

— 因系統為星期日為每星期第一天 所以需要 減 2 獲取上星期最后一天 (上星期星期六)

set @C = date_add(@B, interval -2 day);
set _LastWeekStartTime = ( subdate( @C,date_format( @C, %w)-1));
set _LastWeekEndTime = ( date_add(subdate( @C,date_format( @C, %w)-1), interval 6 day));

— 獲取當前日期是星期幾 1 為周日 2 為周一 以此類推

SET @nowdate=(select DAYOFWEEK(NOW()));
SET @NowD=case @nowdate
when 1 then  星期日 
when 2 then  星期一 
when 3 then  星期二 
when 4 then  星期三 
when 5 then  星期四 
when 6 then  星期五 
when 7 then  星期六 
end;

— 周日時間需要重新計算

if (DATE_FORMAT(CURDATE(), %w )=0) then
SET @curmon=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(), %w )+6));
SET @cursun=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(), %w )));
else

— 開始時間 (周一)

SET @curmon=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(), %w )-1));

— 結束時間 (周日)

SET @cursun=(SELECT SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(), %w )-7));

六、排序技巧

CREATE TABLE test (
id INT PRIMARY KEY not null auto_increment,
val nvarchar (50) NOT NULL
INSERT INTO test(val) VALUES ( 0 
INSERT INTO test(val) VALUES ( 1 
INSERT INTO test(val) VALUES ( 2 
INSERT INTO test(val) VALUES ( 3 
SELECT * from test;
--  根據  id 為  2 0 1 3 的優先級自定義排序
SELECT * FROM test ORDER BY instr(2013 ,id);
--  原理樣例
SET @ORDBYD= 2013 
SELECT  2 ,instr(@ORDBYD, 2) as `INDEX`
union
SELECT  0 ,instr(@ORDBYD, 0) as `INDEX`
union
SELECT  1 ,instr(@ORDBYD, 1) as `INDEX`
union
SELECT  3 ,instr(@ORDBYD, 3) as `INDEX`;

instr 函數 (摘自百度百科 instr 函數語法)

instr(string1, string2, start_position,nth_appearance)

string1: 源字符串,要在此字符串中查找。
string2: 要在 string1 中查找的字符串。
start_position: 代表 string1 的哪個位置開始查找。此參數可選,如果省略默認為 1. 字符串索引從 1 開始。如果此參數為正,從左到右開始檢索,如果此參數為負,從右到左檢索,返回要查找的字符串在源字符串中的開始索引。
nth_appearance: 代表要查找第幾次出現的 string2. 此參數可選,如果省略,默認為 1. 如果為負數系統會報錯。

注意:

位置索引號從 1 開始。

如果 String2 在 String1 中沒有找到,instr 函數返回 0。

示例:

SELECT instr(syranmo , s) FROM dual; --  返回  1
SELECT instr(syranmo , ra) FROM dual; --  返回  3
SELECT instr(syran mo , at ,1,2) FROM dual; --  返回  0

以上是“MySQL 數據庫常用操作的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計4252字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 历史| 双牌县| 佳木斯市| 康马县| 江阴市| 平阳县| 萨嘎县| 乌兰县| 梅州市| 平度市| 板桥市| 普格县| 海盐县| 松潘县| 莱阳市| 万山特区| 张家口市| 新丰县| 霍州市| 台前县| 贵阳市| 大连市| 安福县| 盐边县| 乡城县| 佛坪县| 甘谷县| 高碑店市| 读书| 西盟| 工布江达县| 嘉荫县| 涡阳县| 井冈山市| 林甸县| 康乐县| 简阳市| 铁岭县| 涿州市| 仙桃市| 阳城县|