欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql常用函數(shù)與視圖索引全面梳理

 更新時(shí)間:2022年10月19日 11:07:58   作者:顧輕舟。  
這篇文章主要介紹了mysql的常用函數(shù)與視圖索引的特點(diǎn)與作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

常用函數(shù)

函數(shù)的概念及特點(diǎn):

與java,js中的函數(shù)概念一致

特點(diǎn):數(shù)據(jù)庫(kù)函數(shù)必須要有返回值(一行一列)

幾種函數(shù)類型

1、日期函數(shù)

now() 獲取當(dāng)前日期;

示例:selectnow();

day() 獲取指定日期的日部分;

示例:select day(now());

month() 獲取指定日期的月部分;

示例:select month(now());

year()獲取指定日期的月部分;

示例:selectyear(now());

date_format() 將日期按指定的格式轉(zhuǎn)換為字符串;

示例:selectdate_format(now(), '%Y-%m-%d %H:%i:%s');

str_to_date():將特定格式的日期轉(zhuǎn)換成日期;

示例:select str_to_date('2017-01-06 10:20:30','%Y-%m-%d %H:%i:%s');

綜合示例:

1)直接按年份計(jì)算學(xué)生年齡
    SELECT t.sname, YEAR(NOW()) - YEAR(t.birthday) FROM t_student t
2)按照出生日期來(lái)算,當(dāng)前月日 < 出生年月的月日則(說(shuō)明月份還沒(méi)到),年齡減一
SELECT sid,sname,birthday,YEAR(NOW())-YEAR(birthday) '年齡',
       YEAR(NOW())-YEAR(birthday) + IF(CONVERT(DATE_FORMAT(NOW(),'%m%d'),SIGNED)-CONVERT(DATE_FORMAT(birthday,'%m%d'),SIGNED)<0,-1,0) '真實(shí)年齡'
FROM t_student;
3)查詢本月過(guò)生日的學(xué)生信息
SELECT * FROM t_student t WHERE MONTH(NOW()) - MONTH(t.birthday) = 0;

2)示例 運(yùn)行結(jié)果如下:

2、字符串函數(shù)

upper() 轉(zhuǎn)換成大寫字符

示例:select upper('faafafa')

lower() 轉(zhuǎn)換成小寫字符

示例:Sselect lower('FEFEFF')

replace() 搜索并替換字符串中的子字符串

示例:select replace('www.google.net','w','n')

substring() 從具有特定長(zhǎng)度的位置開(kāi)始的最一個(gè)子字符串

示例:

  • select substring('abcdefghijk', 1, 3)
  • select substring(('abcdefghijk', 4);
  • select substring(('abcdefghijk', -3);

trim() 去除首尾空格

示例:select trim(' fdfdfdfd ');

length() 獲取字符串長(zhǎng)度

示例:select length('abcdef');

3、數(shù)字函數(shù)

floor()向下取整

示例:select floor(123.8934);

ceil() 向上取整

示例:select ceil(123.8934);

round() 四舍五入

示例:select round(123.8934, 2);

4、聚合函數(shù)

特點(diǎn):常用group by一同使用,也可單獨(dú)使用,如需求過(guò)濾,可以使用having子句

SUM 求和

COUNT 統(tǒng)計(jì)記錄數(shù)

AVG 求平均值

MAX 求最大值

MIN 求最小值

合并

關(guān)鍵字:

union 將所有的查詢結(jié)果放在一起,并去掉相同的記錄

union all將所有的查詢結(jié)果合并在一起,不去掉相同的記錄

合并的前提:結(jié)果集列數(shù)個(gè)數(shù)相同

使用場(chǎng)景:在項(xiàng)目統(tǒng)計(jì)報(bào)表模塊,用來(lái)合并數(shù)據(jù)

select 'abc', 123 
union
selet 'def',456
select 'abc', 123
union 
select 'abc', 123
select sid fromt_score where cid = 1
union
select sid from t_score where cid = 2
# 注意此處去掉了重復(fù)的值,可以與下面的語(yǔ)句執(zhí)行結(jié)果比較
select sid fromt_score where cid = 1
union all
select sid from t_score where cid = 2
select 'abc', 123
union all
select 'def', 456
select 'abc', 123
union all
select 'abc', 123

視圖索引

視圖

概念及特點(diǎn)

視圖是一種虛擬表,是從數(shù)據(jù)庫(kù)中的一個(gè)或多個(gè)表中導(dǎo)出的表

數(shù)據(jù)庫(kù)中存放視圖的定義,而不會(huì)存放視圖的數(shù)據(jù),數(shù)據(jù)依然存放在原來(lái)的表中。 使用視圖查詢數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)會(huì)從原來(lái)的表中獲取數(shù)據(jù) (注意:此處并沒(méi)有包括物化視圖,目前mysql默認(rèn)不支持物化視圖)

視圖作用

1)簡(jiǎn)化操作

2)增加數(shù)據(jù)的安全性

3)提高表的邏輯獨(dú)立性

基本語(yǔ)法

createview 視圖名 as select 語(yǔ)句

示例:

create view stu_score_statistics as
select t1.sid, t1.sname, t1.ssex, t2.courses, t3.total total_score from t_student t1 
left join (select sid, count(*) courses from t_score group by sid) t2 on t1.sid=t2.sid
left join (select sid, sum(score) total from t_score group by sid) t3 on t1.sid=t3.sid

索引

概念

索引是由數(shù)據(jù)庫(kù)表中一列或多列組合而成,其作用是提高對(duì)表中數(shù)據(jù)的查詢速度

可以理解為書本的目錄的作用

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):對(duì)于中型或大型表,恰當(dāng)?shù)氖褂盟饕梢燥@著提高查詢性能

缺點(diǎn):增加了索引維護(hù)的工作,使的插入,修改,刪除操作變慢

分類

普通索引(基本索引,目的就是提高查詢性能)

唯一索引(除提高查詢性能外,還可起到避免列值出現(xiàn)重復(fù))

主鍵索引(特殊的唯一索引,一個(gè)表只能有一個(gè)主鍵,不允許有空值)

組合索引(多列組合生成的索引,使用是需要注意索引順序)

全文索引(用于支持全文搜索(FULLTEXT))

索引維護(hù)

創(chuàng)建

語(yǔ)法

CREATE [UNIQUE|FULLTEXT] INDEX 索引名 ON 表名(字段名[(長(zhǎng)度)][ASC|DESC])

示例

CREATE INDEX sname_inx ON t_student(sname);

修改

語(yǔ)法

ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT] INDEX 索引名(字段名[(長(zhǎng)度)][ASC|DESC])

示例

ALTER TABLE t_student ADD INDEX birthday_inx(birthday);

刪除

語(yǔ)法

DROP INDEX 索引名 ON 表名

示例

DROP INDEX birthday_inx ON t_student;

常見(jiàn)的錯(cuò)誤代碼

1075

有自增鍵,但不是未將其設(shè)置為主鍵

1142

操作被拒絕,一般是沒(méi)有權(quán)限

1064

一般是存在語(yǔ)法錯(cuò)誤,如關(guān)鍵字錯(cuò)誤,缺少空格,sql腳本中sql語(yǔ)句后缺少;等原因

1048

列不能為空

1055

不在GROUP BY中

1265

保存數(shù)據(jù)的格式與定義是不同

1366

數(shù)據(jù)編碼

1451

違反外鍵約束

到此這篇關(guān)于mysql常用函數(shù)與視圖索引全面梳理的文章就介紹到這了,更多相關(guān)mysql常用函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql遷移DM國(guó)產(chǎn)達(dá)夢(mèng)數(shù)據(jù)庫(kù)完整步驟記錄

    Mysql遷移DM國(guó)產(chǎn)達(dá)夢(mèng)數(shù)據(jù)庫(kù)完整步驟記錄

    最近工作中用到國(guó)產(chǎn)數(shù)據(jù)庫(kù)達(dá)夢(mèng),簡(jiǎn)稱DM,下面這篇文章主要給大家介紹了關(guān)于Mysql遷移DM國(guó)產(chǎn)達(dá)夢(mèng)數(shù)據(jù)庫(kù)完整步驟的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • CentOS7離線安裝MySQL的教程詳解

    CentOS7離線安裝MySQL的教程詳解

    這篇文章主要介紹了CentOS7離線安裝MySQL的教程,在安裝之前需要我們先刪除原有的mariadb,文中也通過(guò)命令給大家介紹了,需要的朋友跟隨小編也看看吧
    2019-07-07
  • 使MySQL能夠存儲(chǔ)emoji表情字符的設(shè)置教程

    使MySQL能夠存儲(chǔ)emoji表情字符的設(shè)置教程

    這篇文章主要介紹了使MySQL能夠存儲(chǔ)emoji表情字符的設(shè)置教程,關(guān)鍵在于utf8mb4字符集的設(shè)置,需要的朋友可以參考下
    2015-12-12
  • mysql 行列轉(zhuǎn)換的示例代碼

    mysql 行列轉(zhuǎn)換的示例代碼

    這篇文章主要介紹了mysql 行列轉(zhuǎn)換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 安裝MySQL后include目錄下沒(méi)有找到libmysql.lib

    安裝MySQL后include目錄下沒(méi)有找到libmysql.lib

    安裝了MySQL后,在其安裝目錄下的include文件夾并沒(méi)有找到libmysql.lib,主要原因是在安裝MySQL的時(shí)候,沒(méi)有勾選develop component這一選項(xiàng)造成的
    2014-08-08
  • Mysql學(xué)習(xí)之?dāng)?shù)據(jù)庫(kù)檢索語(yǔ)句DQL大全小白篇

    Mysql學(xué)習(xí)之?dāng)?shù)據(jù)庫(kù)檢索語(yǔ)句DQL大全小白篇

    這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)檢索語(yǔ)句DQL大全,本文適合數(shù)據(jù)庫(kù)初學(xué)者,小白也能看懂,有需要的朋友可以收藏閱讀,希望可以有所幫助
    2021-09-09
  • 修改MYSQL最大連接數(shù)的3種方法分享

    修改MYSQL最大連接數(shù)的3種方法分享

    MYSQL數(shù)據(jù)庫(kù)安裝完成后,默認(rèn)最大連接數(shù)是100,一般流量稍微大一點(diǎn)的論壇或網(wǎng)站這個(gè)連接數(shù)是遠(yuǎn)遠(yuǎn)不夠的,增加默認(rèn)MYSQL連接數(shù)的方法有好幾個(gè),這里簡(jiǎn)單分享下
    2011-05-05
  • mysql全面解析json/數(shù)組

    mysql全面解析json/數(shù)組

    這篇文章主要介紹了mysql全面解析json/數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MySQL 語(yǔ)句執(zhí)行順序舉例解析

    MySQL 語(yǔ)句執(zhí)行順序舉例解析

    這篇文章主要介紹了MySQL 語(yǔ)句執(zhí)行順序舉例解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-06-06
  • MySQL恢復(fù)誤刪數(shù)據(jù)圖文教程

    MySQL恢復(fù)誤刪數(shù)據(jù)圖文教程

    MySQL誤刪數(shù)據(jù)庫(kù)造成了數(shù)據(jù)的丟失,這是非常尷尬的,下面這篇文章主要給大家介紹了關(guān)于MySQL恢復(fù)誤刪數(shù)據(jù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06

最新評(píng)論