1剥槐、mysql自增
可以設(shè)置設(shè)置auto_increment一個(gè)起始值
ALTER TABLE 表明 AUTO_INCREMENT=180460
改變自增的步長(zhǎng):
修改步長(zhǎng):
SET SESSION auto_increment_increment=2(設(shè)置步長(zhǎng)的值)////會(huì)話步長(zhǎng)
修改步長(zhǎng):
SET global auto_increment_increment=2(設(shè)置步長(zhǎng)的值)///全局步長(zhǎng)
2吝秕、創(chuàng)建計(jì)算字段
拼接字段
CONCAT():
拼接( concatenate) 將值聯(lián)結(jié)到一起構(gòu)成單個(gè)值。 解決辦法是把兩個(gè)列拼接起來(lái)挥等。在MySQL的SELECT語(yǔ)句中薛躬,可使用CONCAT函數(shù)來(lái)拼接兩個(gè)列。
SELECT CONCAT(student_id,student_name) AS name_id FROM studentinfo;
SELECT CONCAT(student_id,'(',student_name,')') AS name_id FROM studentinfo;
注意:這里使用拼接函數(shù)將兩個(gè)不同的列憑借在了一起,并且新起了一個(gè)別名為name_id
RTrim()
RTrim()函數(shù)去掉值右邊的所有空格敌买。通過(guò)使用RTrim(),各個(gè) 列都進(jìn)行了整理阶界。
SELECT CONCAT(student_id,'(',RTRIM(student_name),')') AS name_id FROM studentinfo;
3虹钮、加密函數(shù)
name desc exprote
PASSWORD(str) 函數(shù)可以對(duì)字符串str進(jìn)行加密。一般情況下膘融,PASSWORD(str)函數(shù)主要是用來(lái)給用戶的密碼加密的芙粱。 SELECT PASSWORD('abcd');
MD5(str) MD5(str)函數(shù)可以對(duì)字符串str進(jìn)行加密。MD5(str)函數(shù)主要對(duì)普通的數(shù)據(jù)進(jìn)行加密氧映。
4春畔、條件判斷
(1)if(a1,a2,a3)如果a1為 TRUE,則返回a2,否則返回a3
例題:select if(age>30,1,0) from 表名
(2)if null (v1,v2)如果v1 不為null,返回v1,否則返回v2
例題:select if null(phonenum,'123') from 表名
(3)select 列名岛都,case when age>50 then age else 0 end from 表名
注意:當(dāng)滿足條件age>50時(shí)拐迁,返回age 否則返回0
5、三范式
1NF:列不可再分(盡量細(xì)的去拆分每一列)
2NF:1.一個(gè)表必須要有一個(gè)主鍵(這個(gè)主鍵可以由單個(gè)列疗绣,或者多個(gè)列組成)
∠哒佟2.非主鍵的列,必須完全依賴于主鍵多矮,而不是及部分依賴于鍵
3NF:在第二范式的基礎(chǔ)上缓淹,不能存在傳遞依賴,非主鍵的列塔逃,必須直接依賴
6讯壶、E-R模型
E:Entry 表示實(shí)體,其實(shí)就是根據(jù)某一個(gè)事物的體征湾盗,添加描述信息伏蚊,我們將
這些描述信息添加在一個(gè)表(table)里面,那么這個(gè)表就相當(dāng)于一個(gè)實(shí)體格粪。
R:Relationship 關(guān)系躏吊,在這里其實(shí)就是指的表與表之間的關(guān)系
一對(duì)一:個(gè)人信息與身份證
7、外鍵
constraint SFZ_ID foreign key(外鍵列) references 另一個(gè)表的名字(id)on delete cascade
添加外鍵: alter table表名 add constraint SFZ_ID foreign key(外鍵列) references 另一個(gè)表的名字(id)on delete cascade
刪除外鍵:alter table 表名 drop foreign key 外鍵名
8帐萎、連結(jié)查詢
內(nèi)聯(lián)結(jié)比伏?
inner join 表名 on 表名.外鍵=表名.主鍵
select * from students inner join classes on students.clsid=classes.id;
添加條件
select * from students inner join classes on students.clsid=classes.id where classes.id > 1;
為表添加別名
select s.id,s.name,c.name from students as s inner join classes as c on s.clsid=c.id where c.id > 1;
外聯(lián)結(jié)?
左聯(lián)結(jié)
left join 表名 on 表名.外鍵=表名.主鍵
select s.id,s.name,c.name from students as s left join classes as c on s.clsid=c.id where c.id > 1;
右聯(lián)結(jié)
right join 表名 on 表名.外鍵=表名.主鍵
select s.id,s.name,c.name from students as s right join classes as c on s.clsid=c.id where c.id > 1;
9疆导、子查詢和組合查詢
子查詢中特定關(guān)鍵字使用
in 范圍
格式: 主查詢 where 條件 in (列子查詢)
select * from students where clsid in(select id from classes);
any 相當(dāng)于或條件(只要滿足的any中的任意一個(gè)條件即可)
select * from students where clsid>any(select id from classes);
格式: 主查詢 where 條件 (比較運(yùn)算符) any (列子查詢)
all 相當(dāng)于and(必須同時(shí)滿足and括號(hào)里面的條件)
select * from students where clsid!=all(select id from classes);
格式: 主查詢 where 條件 (比較運(yùn)算符) all (列子查詢)
union組合查詢
UNION:使用UNION連接的查詢語(yǔ)句赁项,會(huì)將查詢到的結(jié)果匯總并去重(去除重復(fù)的記錄)
select * from students where id > 180506 UNION select * from students where gender=1 order by id desc limit 3;
=>
select * from students where id > 180506 or gender=1 order by id desc limit 3;
UNION ALL:使用UNION連接的查詢語(yǔ)句,會(huì)將查詢到的結(jié)果匯總不去重,假如有形同的記錄會(huì)返回多條
select * from students where id > 180506 UNION ALL select * from students where gender=1 order by id desc limit 3;