mysql的函數筆記

来源:https://www.cnblogs.com/0307lmy/archive/2019/09/12/11509968.html
-Advertisement-
Play Games

1. 甲骨文--oracle 和mysql( 免費,開源) 2. sqlserver 3. IBM--DB2 關係型資料庫database 資料庫 , 數據表table , 數據: 記錄-- 增刪改查結構化查詢語言 非關係型資料庫: redis, mongodb 資料庫優化: 數據類型: 創建表的語 ...


1. 甲骨文--oracle 和mysql( 免費,開源) 2. sqlserver 3. IBM--DB2 關係型資料庫
database 資料庫 , 數據表table , 數據: 記錄-- 增刪改查
結構化查詢語言

非關係型資料庫: redis, mongodb

資料庫優化:

數據類型:

創建表的語法:
create table 表名(
列名1 數據類型 [約束] [預設值],
列名2 數據類型 [約束] [預設值],
列名3 數據類型 [約束] [預設值],
。。。
列名n 數據類型 [約束] [預設值]
);

數據類型:
1.整型---整數
int ,tinyint ,smallint ,bigint
int(5) int
2. 浮點型 ---實數---小數
float ,dounle , decimal
必須加上()
float(m,n) m表示占用的符號長度,n表示小數位的個數

3. 字元串類型 ‘abc’ “ghjj”
varchar(20): 可變長度 "abc" -- 3位元組
char( 30): 不可變長度 "abc" --30位元組

text : 文本型

4. 日期類型
date ,time,datetime
5. 其他 : 集合類型 set
枚舉型: enum
二進位:blob

x的y次方法--冪 2^3= 2*2*2=8
對數: log2 8

一、 數學函數
1. 冪
2. 對數
3.絕對值
4. 三角函數
5. 上限,下限,四捨五入

1. ceil(x)和ceiling(x)意義相同,返回不小於x的最小整數數值 : 向上取整
2. floor函數返回最大整數: 向下取整3 3.5 4
3.四捨五入函數-round(x[,y])
round(x): 取最接近x的整數
select round(-1.14),round(-1.67), round(1.14),round(1.66);
+--------------+--------------+-------------+-------------+
| round(-1.14) | round(-1.67) | round(1.14) | round(1.66) |
+--------------+--------------+-------------+-------------+
| -1 | -2 | 1 | 2 |
+--------------+--------------+-------------+-------------+
1 row in set (0.00 sec)
round(x,y):
y是大於0的整數,表示保留小數點的位數, y是一個負數,表示整數位的後y位,歸零,含有四捨五入現象
select round(3741.5926,-3);
+---------------------+
| round(3741.5926,-3) |
+---------------------+
| 4000 |
+---------------------+


4. truncate()截取數字
TRUNCATE(x,y)函數對操作數進行操作,結果保留小數點後面指定y位
mysql> select truncate(3.5678,2) ,round(3.5678,2);
+--------------------+-----------------+
| truncate(3.5678,2) | round(3.5678,2) |
+--------------------+-----------------+
| 3.56 | 3.57 |
+--------------------+-----------------+
5. power(x,y)求一個數的y次冪
6. sign(x)-返回數字的符號,正數為1,負數為-1,零為0
mysql> select sign(-9.2),sign(89.8),sign(0.0);
+------------+------------+-----------+
| sign(-9.2) | sign(89.8) | sign(0.0) |
+------------+------------+-----------+
| -1 | 1 | 0 |
+------------+------------+-----------+
二、字元串函數
1. 求字元串長度
char_length(), length() 區別
mysql> select char_length("a12你好哈"),length("a12你好哈");
+--------------------------+---------------------+
| char_length("a12你好哈") | length("a12你好哈") |
+--------------------------+---------------------+
| 6 | 9 |
+--------------------------+---------------------+
char_length("a12你好哈"): 統計裡面有多少個字元 (不區分漢字還是英文)
length("a12你好哈"): 統計的是占用的位元組數()
漢字字元集: gbk: 一個漢字占用記憶體2位元組 ,utf8一個漢字占用記憶體3位元組
2. (1)使用CONCAT函數連接字元串
SELECT CONCAT('My SQL', '5.5'),CONCAT('My',NULL, 'SQL');
+-------------------------+--------------------------+
| CONCAT('My SQL', '5.5') | CONCAT('My',NULL, 'SQL') |
+-------------------------+--------------------------+
| My SQL5.5 | NULL |
+-------------------------+--------------------------+
CONCAT 可以一次拼接2個以上的字元串,當其中一個是null值時,結果是NULL
(2)CONCAT_WS函數連接帶分隔符的字元串concat_ws(x,s1,s2) x代表分割符,分割符為null返回null
mysql> select concat_ws("-","x","y","z"), concat_ws("-","x",null,"z"),concat_ws(null,"x","y","z");
+----------------------------+-----------------------------+-----------------------------+
| concat_ws("-","x","y","z") | concat_ws("-","x",null,"z") | concat_ws(null,"x","y","z") |
+----------------------------+-----------------------------+-----------------------------+
| x-y-z | x-z | NULL |
+----------------------------+-----------------------------+-----------------------------+
3. lower函數或者lcase函數將字元串中所有字母字元轉換為小寫

mysql> select LOWER("vfrvGRHG"),lcase("feGRHT");
+-------------------+-----------------+
| LOWER("vfrvGRHG") | lcase("feGRHT") |
+-------------------+-----------------+
| vfrvgrhg | fegrht |
+-------------------+-----------------+
1 row in set (0.00 sec)

upper函數或者ucase函數將字元串中所有字母字元轉換為大寫

4. 位元組的截取:
(1) left(str,n): 截取str 左邊n個字元
(2)right(str,n): 截取str 右邊n個字元
(3) substring(str,start,length);
mysql> select left("abcdefg",3),right("abcdefg",3) ,substring("abcdefg",3,4);
+-------------------+--------------------+--------------------------+
| left("abcdefg",3) | right("abcdefg",3) | substring("abcdefg",3,4) |
+-------------------+--------------------+--------------------------+
| abc | efg | cdef |
+-------------------+--------------------+--------------------------+

5. 刪除空格的函數
ltrim左邊去空格, rtrim 右邊去空格,trim兩端去空格
SELECT '* book *',CONCAT('***',LTRIM(' book '),'***') l1,CONCAT('***',RTRIM(' book '),'***') l2 ,CONCAT('***',TRIM(' book '),'***') l3;
+-----------+------------------+------------------+------------+
| * book * | l1 | l2 | l3 |
+-----------+------------------+------------------+------------+
| * book * | ***book *** | *** book*** | ***book*** |
+-----------+------------------+------------------+------------+

6. 使用REVERSE函數反轉字元串
7. 字元串替換replace(str,s1,s2)

mysql> select replace("abcdefgef","ef","***");
+---------------------------------+
| replace("abcdefgef","ef","***") |
+---------------------------------+
| abcd***g*** |
+---------------------------------+

任意的電話號碼中間四位被替換為****
select replace("13718820432",substring("13718820432",3,4),"****");
mysql> select * from person1;
+------+-------------+
| id | phone |
+------+-------------+
| 1 | 13245677777 |
| 1 | 13269879012 |
| 3 | 13287901256 |
| 3 | 13789001256 |

mysql> select replace(phone,substring(phone,4,4),"****") from person1;
+--------------------------------------------+
| replace(phone,substring(phone,4,4),"****") |
+--------------------------------------------+
| 132****7777 |
| 132****9012 |
| 132****1256 |
| 137****1256 |
+--------------------------------------------+

三 、日期函數

select current_timestamp(),localtime(),now(),sysdate();

四、系統信息函數


五、條件判斷函數
1. if(expr,v1,v2) 函數
mysql> select if(5>41,1,0);
+--------------+
| if(5>41,1,0) |
+--------------+
| 0 |
+--------------+


mysql> select if(comm is null,0,comm)+sal 總錢數 from emp;
+--------+
| 總錢數 |
+--------+
| 880 |
| 2060 |
| 1875 |
| 3273 |
| 2775 |
| 3135 |
| 2695 |
| 3300 |
| 5500 |
| 1650 |
| 1210 |
| 1045 |
| 3300 |
| 1430 |
| 3556 |
+--------+
15 rows in set (0.00 sec)

mysql> select if(comm is null,sal,comm+sal) 總錢數 from emp;
+--------+
| 總錢數 |
+--------+
| 880 |
| 2060 |
| 1875 |
| 3273 |
| 2775 |
| 3135 |
| 2695 |
| 3300 |
| 5500 |
| 1650 |
| 1210 |
| 1045 |
| 3300 |
| 1430 |
| 3556 |
+--------+
15 rows in set (0.00 sec)

2. case函數
case 條件 when 值1 then 結果1 [when 值2 then 結果2][else 結果n] end
mysql> select case 31*5%4 when 0 then "整除" when 1 then "餘數為1" when 2 then "餘數為2" else "餘數為3" end;
+--------------------------------------------------------------------------------------------------------+
| case 31*5%4 when 0 then "整除" when 1 then "餘數為1" when 2 then "餘數為2" else "餘數為3" end |
+--------------------------------------------------------------------------------------------------------+
| 餘數為3 |
+--------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)





您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載MongoDB www.mongodb.com/download-center#community 2.下一步下一步安裝. 安裝完成後配置環境變數 我的的預設安裝,環境變數地址 C:\Program Files\MongoDB\Server\4.2\bin 3. 添加配置在C:\Progra ...
  • IO分為記憶體IO,網路IO,磁碟IO IO模型: 同步IO模型: 同步阻塞:一個進程對應一個IO,進程在運行時,不能去乾別的,一直等待 同步非阻塞:一個進程對應一個IO,進程運行時,可以去做別的事,等待別的程式的數 據傳輸,進程會定時詢問是否準備完成 多路訪問的IO模型--IO復用(select p... ...
  • 無論是做資料庫運維還是資料庫開發,都是圍繞著資料庫吃飯。隨著國產風的吹起,相信很多小伙伴和我一樣,迷茫加尷尬。為什麼迷茫呢?目前國產資料庫也已經不下幾十個了,知名的至少也十多個了,這麼多,該怎麼去挖掘出適合的呢?為什麼尷尬呢?是以前太過於保守,主要著眼在了大廠的DB,尤其是國外的DB,現在一下子回歸 ...
  • 如果存儲過程和表名無重覆,這個時候要註意的是,你的索引名稱是否在用戶中有重覆。 <!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tJZCI6IjMwNTMtMTU2ODI2NzY4NTY0NCIsImJsb2NrVHlwZSI6InBhcmFnc ...
  • MySQL是一個多用戶管理的資料庫,可以為不同用戶分配不同的許可權,分為root用戶和普通用戶,root用戶為超級管理員,擁有所有許可權,而普通用戶擁有指定的許可權。 MySQL是通過許可權表來控制用戶對資料庫訪問的,許可權表存放在mysql資料庫中,主要的許可權表有以下幾個:user,db,host,tabl ...
  • Sqoop是個命令行工具,用來在Hadoop和rdbms之間傳輸數據。以Hadoop的角度看待數據流向,從rdbms往Hadoop是導入用sqoop import命令,反之從hadoop往rdbms下發數據用sqoop export命令以oracle hive為例子,命令舉例:sqoop impor... ...
  • 遇到這個報錯,就使用asmm一般先裝庫,再opatch到最新補丁,最後dbca建庫,物理記憶體大於4G不能用AMM只能用ASMM記憶體越大,全自動管理就越費勁,出錯概率就越高,記憶體抖動oracle的記憶體管理:9i PGA自動管理SGA手動管理,10g PGA自動管理 SGA自動管理(ASMM 自動共用內... ...
  • 1.背景 Apache Flink 和 Apache Storm 是當前業界廣泛使用的兩個分散式實時計算框架。其中 Apache Storm(以下簡稱“Storm”)在美團點評實時計算業務中已有較為成熟的運用(可參考 Storm 的 可靠性保證測試),有管理平臺、常用 API 和相應的文檔,大量實時 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...