溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql有哪些基本語法

發(fā)布時間:2020-05-19 14:55:38 來源:PHP中文網(wǎng) 閱讀:207 作者:三月 欄目:MySQL數(shù)據(jù)庫

下面講講關(guān)于mysql有哪些基本語法,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完mysql有哪些基本語法這篇文章你一定會有所受益。

                                                          

-- 增,刪,改 insert  delete  update

-- 增  必須向所有列填充數(shù)據(jù),除了(自增列,有默認(rèn)值列,允許為空)可以不填充
INSERT [INTO] 表(列列表) values (值列表)


-- 刪
DELETE from 表[where 條件]
DELETE from student

-- 改
UPDATE 表 set 列 = 值,列 = 值 [where 條件]
update student set name = '張亮',set  sex = '女' where studentno = '4'

-- 查詢 模糊查詢  分頁  
like between in is null


-- 查詢  排序  分組  連接
-- 排序 order by 默認(rèn)是升序:asc  降序:desc
-- 按多個列來排序,先按第一個字段排序,在此基礎(chǔ)上再按第二個字段進(jìn)行排序.
select * from student order by age,studentno
-- 分組 聚合函數(shù) sum avg max min count
select sum(age),avg(age),max(age),min(age) from student;
-- count 是統(tǒng)計有多少數(shù)據(jù)行,如果是統(tǒng)計某個列,則會忽略列中的NULL值。
select count(email) from student
-- 統(tǒng)計有多少學(xué)生沒有錄入郵箱信息??
select count(*) from student where email is null


-- 分組,group by  是把數(shù)據(jù)進(jìn)行分類再匯總,必須要配合聚合函數(shù)使用,
-- 關(guān)鍵點(diǎn):按什么進(jìn)行分組,用什么聚合函數(shù)進(jìn)行統(tǒng)計。
-- 如果某個列出現(xiàn)在from關(guān)鍵字前,且沒有包含在聚合函數(shù)中,則此列必須出現(xiàn)在group by 子句中
-- 統(tǒng)計每個年級有多少學(xué)生?
select gradeId,count(*) from student group by gradeId
-- 統(tǒng)計每個年級男女學(xué)生各有多少?  按年級和性別進(jìn)行分組,用count函數(shù)
select gradeid,sex,count(*) from student group by sex,gradeId;
-- 統(tǒng)計每個年級有多少課時?
select gradeid,sum(classHours) from subject group by gradeid
-- 統(tǒng)計每個年級有多少課程?
select gradeid,count(*) from subject group by gradeid
-- 統(tǒng)計每個學(xué)生的總成績和平均成績?
select studentno,sum(result),avg(result) from score group by studentno


-- 連接查詢 內(nèi)連接 外連接 交叉連接
-- 當(dāng)數(shù)據(jù)來自兩個或兩個以上的表時,則才用連接查詢來實現(xiàn)。
-- where 條件是兩個表的主鍵列相等。
select * from student s,grade g where s.gradeid=g.gradeid
-- 建議使用下面的寫法,性能好一些。
select * from student s inner join grade g on s.gradeid=g.gradeid
-- 查詢姓名,學(xué)號、課程名、分?jǐn)?shù)  數(shù)據(jù)來自于3個表?
select name,s.studentno,subjectname,result from student s
 inner join score c on s.studentno = c.studentno
 inner join subject j on c.subjectno= j.subjectno


-- 外連接  左外連接  右外連接
/* 左外連接,在前面的表是主表,后面的表是子表,主表的數(shù)據(jù)全部顯示,
 再用子表的數(shù)據(jù)進(jìn)行填充,如果子表中沒有對應(yīng)的數(shù)據(jù),則用NULL來填充 */
select * from student s
 left join score c on s.studentno = c.studentno


-- 查詢有哪些學(xué)生沒有參加過考試,用左外連接實現(xiàn)??
select * from student s
 left join score c on s.studentno = c.studentno
 where c.studentno is null
-- 查詢哪些學(xué)生沒有參加考試,用子查詢實現(xiàn)??
-- 子查詢的結(jié)果只能是返回一列值,返回的值如果有多個,就只能用in 不能用 =
select * from student where studentno
not in( select studentno from score)

對于以上mysql有哪些基本語法相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI