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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...