久久www免费人成看片老司机_母亲4在线观看完整版 百度_波多野结衣久久_亚洲午夜成人片_天美传媒国产精品果冻

 
您現(xiàn)在的位置:首頁(yè) ? 知識(shí)庫(kù) ? 軟件開(kāi)發(fā) 軟件開(kāi)發(fā)
python進(jìn)階第八篇-Mysql高級(jí)操作(連接查詢(xún)、函數(shù)、事務(wù)、視圖)
發(fā)布日期:2018-05-16
連接查詢(xún)
連接查詢(xún)分類(lèi)如下:
表A inner join 表B:表A與表B匹配的行會(huì)出現(xiàn)在結(jié)果中
表A left join 表B:表A與表B匹配的行會(huì)出現(xiàn)在結(jié)果中,外加表A中獨(dú)有的數(shù)據(jù),未對(duì)應(yīng)的數(shù)據(jù)使用null填充
表A right join 表B:表A與表B匹配的行會(huì)出現(xiàn)在結(jié)果中,外加表B中獨(dú)有的數(shù)據(jù),未對(duì)應(yīng)的數(shù)據(jù)使用null填充
在查詢(xún)或條件中推薦使用“表名.列名”的語(yǔ)法
如果多個(gè)表中列名不重復(fù)可以省略“表名.”部分
如果表的名稱(chēng)太長(zhǎng),可以在表名后面使用' as 簡(jiǎn)寫(xiě)名'或' 簡(jiǎn)寫(xiě)名',為表起個(gè)臨時(shí)的簡(jiǎn)寫(xiě)名稱(chēng)
例子
查詢(xún)學(xué)生的姓名、平均分
select students.sname,avg(scores.score)from scoresinner join students on scores.stuid=students.idgroup by students.sname;
查詢(xún)男生的姓名、總分
select students.sname,avg(scores.score)from scoresinner join students on scores.stuid=students.idwhere students.gender=1group by students.sname;
查詢(xún)科目的名稱(chēng)、平均分
select subjects.stitle,avg(scores.score)from scoresinner join subjects on scores.subid=subjects.idgroup by subjects.stitle;
查詢(xún)未刪除科目的名稱(chēng)、最高分、平均分
select subjects.stitle,avg(scores.score),max(scores.score)from scoresinner join subjects on scores.subid=subjects.idwhere subjects.isdelete=0group by subjects.stitle;
字符串函數(shù)
查看字符的ascii碼值ascii(str),str是空串時(shí)返回0
select ascii('a');
查看ascii碼值對(duì)應(yīng)的字符char(數(shù)字)
select char(97);
拼接字符串concat(str1,str2...)
select concat(12,34,'ab');
包含字符個(gè)數(shù)length(str)
select length('abc');
截取字符串
left(str,len)返回字符串str的左端len個(gè)字符
right(str,len)返回字符串str的右端len個(gè)字符
substring(str,pos,len)返回字符串str的位置pos起len個(gè)字符
select substring('abc123',2,3);
去除空格
ltrim(str)返回刪除了左空格的字符串str
rtrim(str)返回刪除了右空格的字符串str
trim([方向 remstr from str)返回從某側(cè)刪除remstr后的字符串str,方向詞包括both、leading、trailing,表示兩側(cè)、左、右
select trim(' bar ');select trim(leading 'x' FROM 'xxxbarxxx');select trim(both 'x' FROM 'xxxbarxxx');select trim(trailing 'x' FROM 'xxxbarxxx');
返回由n個(gè)空格字符組成的一個(gè)字符串space(n)
select space(10);
替換字符串replace(str,from_str,to_str)
select replace('abc123','123','def');
大小寫(xiě)轉(zhuǎn)換,函數(shù)如下
lower(str)
upper(str)
select lower('aBcD');
數(shù)學(xué)函數(shù)
求絕對(duì)值abs(n)
select abs(-32);
求m除以n的余數(shù)mod(m,n),同運(yùn)算符%
select mod(10,3);select 10%3;
地板floor(n),表示不大于n的最大整數(shù)
select floor(2.3);
天花板ceiling(n),表示不小于n的最大整數(shù)
select ceiling(2.3);
求四舍五入值round(n,d),n表示原數(shù),d表示小數(shù)位置,默認(rèn)為0
select round(1.6);
求x的y次冪pow(x,y)
select pow(2,3);
獲取圓周率PI()
select PI();
隨機(jī)數(shù)rand(),值為0-1.0的浮點(diǎn)數(shù)
select rand();
還有其它很多三角函數(shù),使用時(shí)可以查詢(xún)文檔
日期時(shí)間函數(shù)
獲取子值,語(yǔ)法如下
year(date)返回date的年份(范圍在1000到9999)
month(date)返回date中的月份數(shù)值
day(date)返回date中的日期數(shù)值
hour(time)返回time的小時(shí)數(shù)(范圍是0到23)
minute(time)返回time的分鐘數(shù)(范圍是0到59)
second(time)返回time的秒數(shù)(范圍是0到59)
select year('2016-12-21');
日期計(jì)算,使用+-運(yùn)算符,數(shù)字后面的關(guān)鍵字為year、month、day、hour、minute、second
select '2016-12-21'+interval 1 day;
日期格式化date_format(date,format),format參數(shù)可用的值如下
獲取年%Y,返回4位的整數(shù)
* 獲取年%y,返回2位的整數(shù)
* 獲取月%m,值為1-12的整數(shù)
獲取日%d,返回整數(shù)
* 獲取時(shí)%H,值為0-23的整數(shù)
* 獲取時(shí)%h,值為1-12的整數(shù)
* 獲取分%i,值為0-59的整數(shù)
* 獲取秒%s,值為0-59的整數(shù)
select date_format('2016-12-21','%Y %m %d');
當(dāng)前日期current_date()
select current_date();
當(dāng)前時(shí)間current_time()
select current_time();
當(dāng)前日期時(shí)間now()
select now();
視圖
對(duì)于復(fù)雜的查詢(xún),在多次使用后,維護(hù)是一件非常麻煩的事情
解決:定義視圖
視圖本質(zhì)就是對(duì)查詢(xún)的一個(gè)封裝
定義視圖
create view stuscore asselect students.*,scores.score from scoresinner join students on scores.stuid=students.id;
視圖的用途就是查詢(xún)
select * from stuscore;
子查詢(xún)
查詢(xún)支持嵌套使用
查詢(xún)各學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)的成績(jī)
select sname,(select sco.score from scores sco inner join subjects sub on sco.subid=sub.id where sub.stitle='語(yǔ)文' and stuid=stu.id) as 語(yǔ)文,(select sco.score from scores sco inner join subjects sub on sco.subid=sub.id where sub.stitle='數(shù)學(xué)' and stuid=stu.id) as 數(shù)學(xué),(select sco.score from scores sco inner join subjects sub on sco.subid=sub.id where sub.stitle='英語(yǔ)' and stuid=stu.id) as 英語(yǔ)from students stu;
事務(wù)
當(dāng)一個(gè)業(yè)務(wù)邏輯需要多個(gè)sql完成時(shí),如果其中某條sql語(yǔ)句出錯(cuò),則希望整個(gè)操作都退回
使用事務(wù)可以完成退回的功能,保證業(yè)務(wù)邏輯的正確性
事務(wù)四大特性(簡(jiǎn)稱(chēng)ACID)
原子性(Atomicity):事務(wù)中的全部操作在數(shù)據(jù)庫(kù)中是不可分割的,要么全部完成,要么均不執(zhí)行
一致性(Consistency):幾個(gè)并行執(zhí)行的事務(wù),其執(zhí)行結(jié)果必須與按某一順序串行執(zhí)行的結(jié)果相一致
隔離性(Isolation):事務(wù)的執(zhí)行不受其他事務(wù)的干擾,事務(wù)執(zhí)行的中間結(jié)果對(duì)其他事務(wù)必須是透明的
持久性(Durability):對(duì)于任意已提交事務(wù),系統(tǒng)必須保證該事務(wù)對(duì)數(shù)據(jù)庫(kù)的改變不被丟失,即使數(shù)據(jù)庫(kù)出現(xiàn)故障
要求:表的類(lèi)型必須是innodb或bdb類(lèi)型,才可以對(duì)此表使用事務(wù)
查看表的創(chuàng)建語(yǔ)句
show create table students;
修改表的類(lèi)型
alter table '表名' engine=innodb;
事務(wù)語(yǔ)句
開(kāi)啟begin;提交commit;回滾rollback;
示例1
步驟1:打開(kāi)兩個(gè)終端,連接mysql,使用同一個(gè)數(shù)據(jù)庫(kù),操作同一張表
終端1:select * from students;------------------------終端2:begin;insert into students(sname) values('張飛');
步驟2
終端1:select * from students;
步驟3
終端2:commit;------------------------終端1:select * from students;
示例2
步驟1:打開(kāi)兩個(gè)終端,連接mysql,使用同一個(gè)數(shù)據(jù)庫(kù),操作同一張表
終端1:select * from students;------------------------終端2:begin;insert into students(sname) values('張飛');
步驟2
終端1:select * from students;
步驟3
終端2:rollback;------------------------終端1:select * from students;
  • 1.公司登記注冊(cè)于2003年1月27日,清遠(yuǎn)市桑達(dá)電子網(wǎng)絡(luò)媒體有限公司
    2.公司2006年起成為清遠(yuǎn)市政府定點(diǎn)協(xié)議供貨商,電子采購(gòu)供貨商
    3.公司2007年被清遠(yuǎn)市相關(guān)政府部門(mén)評(píng)為安防行業(yè)狀元
    4.公司2007年起成為長(zhǎng)城電腦清遠(yuǎn)如意服務(wù)站(SP368)
    5.公司2007年承建清遠(yuǎn)市橫河路口電子警察工程,開(kāi)創(chuàng)清遠(yuǎn)電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠(yuǎn)金牌代理(伙伴編號(hào):30030013)
    7.公司組團(tuán)隊(duì)參加南方都市報(bào)組織的創(chuàng)富評(píng)選,獲廣東80強(qiáng)。公司申請(qǐng)多項(xiàng)軟件著作權(quán)、專(zhuān)利權(quán)
    8.2016年起公司成為粵東西北地區(qū)為數(shù)不多的雙軟企業(yè),確立“讓軟件驅(qū)動(dòng)世界,讓智能改變生活!"企業(yè)理想
    9.2016-01-29更名為廣東互動(dòng)電子網(wǎng)絡(luò)媒體有限公司
    10.2021-01-13更名為廣東互動(dòng)電子有限公司
  • 投資合作咨詢(xún)熱線(xiàn)電話(huà):0763-3391888 3323588
  • 做一個(gè)負(fù)責(zé)任的百年企業(yè)! 天行健,君子以自強(qiáng)不息;地勢(shì)坤,君子以厚德載物;
    為用戶(hù)創(chuàng)造價(jià)值! 讓軟件驅(qū)動(dòng)世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對(duì)客戶(hù)負(fù)責(zé),對(duì)員工負(fù)責(zé),對(duì)企業(yè)命運(yùn)負(fù)責(zé)!幫助支持公司的客戶(hù)成功;幫助忠誠(chéng)于公司的員工成功!
  • 聯(lián)系電話(huà):0763-3391888 3323588 3318977
    服務(wù)熱線(xiàn):18023314222 QQ:529623964
  • 工作QQ:2501204690 商務(wù)QQ: 602045550
    投資及業(yè)務(wù)投訴QQ: 529623964
    微信:小米哥 微信號(hào):qysed3391888
    騰訊微博:桑達(dá)網(wǎng)絡(luò)-基石與起點(diǎn)
  • E-MAIL:222#QYSED.CN ok3391888#163.com (請(qǐng)用@替換#)
在線(xiàn)客服
  • 系統(tǒng)集成咨詢(xún)
    點(diǎn)擊這里給我發(fā)消息
  • 網(wǎng)站\微信\軟件咨詢(xún)
    點(diǎn)擊這里給我發(fā)消息
  • 售后服務(wù)
    點(diǎn)擊這里給我發(fā)消息
  • 投資合作
    點(diǎn)擊這里給我發(fā)消息