mysql數(shù)據(jù)庫的設(shè)計(jì)

MYSQL自增:查看步長 show session variables like 'auto_inc%'

修改步長 set方法(會(huì)話步長)

set session auto_increment_increment = 2;

修改全局步長:set global auto_increment_increment = 2;

TIRM 去除左右邊空格:select concat(TRIM(列名),id) from 表名;

條件判斷:當(dāng)滿足age>50這個(gè)條件,返回age否則返回0

select 列名 ,case when age >50 then age else 0 end from 表名

拼接字段:

concat()函數(shù): select concat(name,id) from 表名

數(shù)據(jù)庫的設(shè)計(jì):有三個(gè)范式

1、列不可在在分,盡量細(xì)分,去拆分每列

2、一個(gè)表必須要有一個(gè)主建(這個(gè)主鍵可以由單個(gè)列或多個(gè)列組成)

非主鍵的列必須完全依賴于主鍵,而不能部分依賴主鍵

3、首先在2范式的基礎(chǔ)上,非主鍵必須直接依賴于主鍵,不能存在傳遞依賴.

E-R E:實(shí)體? R:關(guān)系

設(shè)置外鍵實(shí)例:

CREATE TABLE USER(

id int auto_increment,

name varchar(10) not null,

waijian int not null,

primary key(id),

constraint SFZ_id foreign key(waijian) references 另一個(gè)表的名字(id)

);

CREATE TABLE shenfenzheng(

id int auto_increment,

id_num varchar(20) not null

primary key(id));

總結(jié): 本節(jié)說明了計(jì)算字段在字符串拼接和算術(shù)計(jì)算中的用途。此外,還講述了如何創(chuàng)建和使 用別名,以便應(yīng)用程序能引用計(jì)算字段。

數(shù)據(jù)處理函數(shù):

數(shù)學(xué)函數(shù)

name? ? desc

ABS(X)? 返回X的絕對值

MOD(X,Y)? ? 返回X被Y除后的余數(shù)。

FLOOR(X)? ? 返回不大于X的最大整數(shù)值。

CEILING(X)? 返回不小于X的最小整數(shù)值

ROUND(X)? ? 返回參數(shù)X的四舍五入的一個(gè)整數(shù)。

TRUNCATE(X,Y)? 返回X中小數(shù)點(diǎn)Y位后面的數(shù)

字符串函數(shù)

name? ? desc

LENGTH(str)? ? 返回字符串str的長度。

CONCAT(str1,str2,...)? 返回來自于參數(shù)連結(jié)的字符串。如果任何參數(shù)是NULL,返回NULL??梢杂谐^2個(gè)的參數(shù)。一個(gè)數(shù)字參數(shù)被變換為等價(jià)的字符串形式。

TRIM(str)? 刪除字符串兩側(cè)的空格。

REPLACE(str,s1,s2)? 字符串str中所有出的s1字符串由s2代替。

SUBSTRING(str,pos,len)? 從字符串str的起始位置pos返回一個(gè)長度未len的子串。

REVERSE(str)? ? 返回字符串反轉(zhuǎn)順序后的結(jié)果。

LOCATE(substr,str)? 返回子串substr在字符串str第一個(gè)出現(xiàn)的位置(起始位置)

日期和時(shí)間函數(shù) 日期和時(shí)間采用相應(yīng)的數(shù)據(jù)類型和特殊的格式存儲(chǔ),以便能快速和 有效地排序或過濾,并且節(jié)省物理存儲(chǔ)空間。 一般,應(yīng)用程序不使用用來存儲(chǔ)日期和時(shí)間的格式,因此日期和時(shí) 間函數(shù)總是被用來讀取、統(tǒng)計(jì)和處理這些值。由于這個(gè)原因,日期和時(shí)間函數(shù)在MySQL語言中具有重要的作用。

name? ? desc? ? exprote

DAYOFWEEK(date)? ? 返回日期date的星期索引(1=星期天,2=星期一, …7=星期六)。? ? select DAYOFWEEK('1998-02-03'); select DAYOFWEEK(now());

DAYOFMONTH(date)? ? 返回date的月份中的日期,在1到31范圍內(nèi).? ? select DAYOFMONTH('1998-02-03');

DAYOFYEAR(date)? ? 返回date在一年中的日數(shù), 在1到366范圍內(nèi)? ? select DAYOFYEAR('1998-02-03');

MONTH(date)? ? 返回date的月份,范圍1到12。? select MONTH('1998-02-03');

DAYNAME(date)? 返回date的星期名字。? ? select DAYNAME("1998-02-05");

MONTHNAME(date)? ? 返回date的月份名字。? ? select MONTHNAME("1998-02-05");

QUARTER(date)? 返回date一年中的季度,范圍1到4。? ? select QUARTER('98-04-01');

YEAR(date)? 返回date的年份,范圍在1000到9999。? ? select YEAR('98-02-03');

HOUR(time)? 返回time的小時(shí),范圍是0到23。? select HOUR('10:05:03');

MINUTE(time)? ? 返回time的分鐘,范圍是0到59。? select MINUTE('98-02-03 10:05:03');

SECOND(time)? ? 回來time的秒數(shù),范圍是0到59。? select SECOND('10:05:03');

CURDATE? ? 以‘YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取決于函數(shù)在一個(gè)字符串還是數(shù)字上下文被使用。? select CURDATE();

CURTIME? ? 以‘HH:MM:SS’或HHMMSS格式返回當(dāng)前時(shí)間值? ? select CURTIME();

NOW()? 以‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回當(dāng)前的日期和時(shí)間? select NOW();

DATE_ADD(date,INTERVAL expr type)? 進(jìn)行日期增加的操作,可以精確到秒? ? SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 SECOND); SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL "1:1" MINUTE_SECOND);

DATE_SUB(date,INTERVAL expr type)? 進(jìn)行日期減少的操作,可以精確到秒? ? SELECT DATE_SUB("1998-01-01 00:00:00", INTERVAL "1 1:1:1" DAY_SECOND); SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);

條件判斷函數(shù)

name? ? desc? ? exprote

IF(expr1,expr2,expr3)? 如果 expr1 是TRUE 則返回 expr2,否則返回expr3? SELECT IF(age>30,1,0) FROM studentinfo;

IFNULL(v1,v2)? 如果v1不為NULL則返回v1,否則返回v2? select IFNULL(phonenum,'123') as phone FROM studentinfo;

CASE value WHEN 條件 THEN 結(jié)果END? 如果value的值滿足WHERE后面的條件,則返回THEN后面的結(jié)果,否則返回ELSE后面的結(jié)果? ? SELECT student_name,CASE WHEN age>50 THEN age ELSE 0 END FROM studentinfo;

加密函數(shù)

name? ? desc? ? exprote

PASSWORD(str)? 函數(shù)可以對字符串str進(jìn)行加密。一般情況下,PASSWORD(str)函數(shù)主要是用來給用戶的密碼加密的。? ? SELECT PASSWORD('abcd');

MD5(str)? ? MD5(str)函數(shù)可以對字符串str進(jìn)行加密。MD5(str)函數(shù)主要對普通的數(shù)據(jù)進(jìn)行加密。? ? SELECT MD5('abc'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容