網(wǎng)站如何做竟價(jià)廣州seo公司品牌
一.函數(shù)?
1.定義?
? ? ? ? 函數(shù)是指一段可以直接被另一段程序調(diào)用的程序或代碼。
2.字符串函數(shù)
? ? ? ? 常見如下:
-- 字符串拼接
SELECT CONCAT('hello','MySql') AS CONCAT
-- 將字符串全部轉(zhuǎn)為小寫
SELECT LOWER('HEllo MYSql') AS LOWER
-- 將字符串全部轉(zhuǎn)為大寫
SELECT UPPER('Hello MYSql') UPPER
-- LPAD(str,n,pad) 左填充,用字符串pad對(duì)str的左邊進(jìn)行填充,達(dá)到n個(gè)字符串的長度
SELECT LPAD('11',5,'-') LPAD
-- 右填充
SELECT RPAD('11',5,'-') RPAD
-- 去掉字符串前后的空格
SELECT TRIM(' 1.11 ') TRIM
-- 截取子字符串
SELECT SUBSTRING('Kyrie Irving',1,5) SUBSTRING
3.數(shù)值函數(shù)?
? ? ? ? 常見如下:
-- 向上取整
SELECT CEIL(1.1) CEIL
-- 向下取整
SELECT FLOOR(1.6) FLOOR
-- 取模
SELECT MOD(10,2) MOD
-- 返回0-1之間的隨機(jī)數(shù)
SELECT RAND() RAND
-- ROUND(x,y) 求參數(shù)x的四舍五入值,保留y位小數(shù)
SELECT ROUND(3.1458,2) ROUND-- 例題
-- 生成隨機(jī)的六位驗(yàn)證碼
SELECT LPAD(ROUND(RAND()*1000000,0),6,0) AS num
4.日期函數(shù)
?
-- 返回當(dāng)前日期
SELECT CURDATE()
-- 返回當(dāng)前時(shí)間
SELECT CURTIME()
-- 返回當(dāng)前日期和時(shí)間
SELECT NOW()
-- 獲取指定date的年份
SELECT YEAR(NOW())
-- 獲取指定date的月份
SELECT MONTH(NOW())
-- 獲取指定date的日期
SELECT DAY(NOW())
-- 返回一個(gè)日期/時(shí)間值加上一個(gè)時(shí)間間隔expr后的時(shí)間值
SELECT DATE_ADD(NOW(),INTERVAL 10 DAY)
-- 返回起始時(shí)間date1和結(jié)束時(shí)間date2之間的天數(shù)
SELECT DATEDIFF('2022-10-21','2022-9-22')
5.流程函數(shù)?
二.約束
1.概述?
a.概念:約束是作用于表中字段上的規(guī)則,用于限制存儲(chǔ)在表中的數(shù)據(jù)。?
b.目的:保證數(shù)據(jù)庫中數(shù)據(jù)的正確性、有效性和完整性。
c.分類:
注:約束是作用于表中字段上的,可以在創(chuàng)建表/修改表的時(shí)候添加約束?。
2.外鍵約束?
a.語法
①
CREATE? TABLE? 表名(
? ? ? ? 字段名? 數(shù)據(jù)類型,
? ? ? ? ...
? ? ? ? [CONSTRAINT]? [外鍵名稱]? FOREIGN? KEY(外鍵字段名)? REFERENCES? 主表(主表列名)
)
②
ALTER? TABLE? 表名? ADD? CONSTRAINT? 外鍵名稱??FOREIGN? KEY(外鍵字段名)? REFERENCES? 主表(主表列名)
eg:
-- 添加外鍵約束后,在對(duì)表中的數(shù)據(jù)進(jìn)行任意操作,不能導(dǎo)致外鍵列和主鍵列對(duì)應(yīng)不上
-- CONSTRAINT 約束名(有固定的約束名規(guī)則)
ALTER TABLE student ADD CONSTRAINT fk_student_major_majorid FOREIGN KEY(majorid) REFERENCES major(id)
b.刪除/更新行為
ALTER? TABLE? 表名? ADD? CONSTRAINT? 外鍵名稱??FOREIGN? KEY(外鍵字段名)? REFERENCES? 主表(主表列名)? ON? UPDATE? CASCADE
注:ON? UPDATE? CASCADE?設(shè)置在進(jìn)行刪除行為進(jìn)行的操作